秋招督学:把求职准备拆成每天可执行的动作

2913 字
15 分钟
秋招督学:把求职准备拆成每天可执行的动作

秋招督学:把求职准备拆成每天可执行的动作#

一个面向嵌入式 C/C++ 秋招的个人学习与求职管理 App。它把目标倒计时、每日任务、专注计时、能力地图、复习记录和求职进度放在同一条执行链路里,帮助我回答一个很具体的问题:今天最应该做什么,以及做完之后留下了什么证据?

项目背景#

准备嵌入式岗位时,学习内容往往同时横跨 C/C++、数据结构、Linux、MCU、驱动、RTOS、网络、项目和面试表达。传统待办应用只能记录“要做什么”,却很难持续回答下面几件事:

  • 今天应该优先补哪一个能力短板?
  • 任务延期后,如何保留原计划并重新安排?
  • 学过的知识是否真正掌握,什么时候需要再次复习?
  • 投递、笔试、面试之后,是否完成了复盘并形成下一步行动?

“秋招督学”就是在这个背景下做的一个个人工具。它不试图替代课程、题库或招聘平台,而是专注于把“目标—计划—执行—复盘”串成闭环。

核心功能#

1. 首次设置与目标倒计时#

首次打开 App 时,可以设置称呼、目标岗位、目标准备完成日、每天可投入时间和当前阶段。保存后,系统会生成当天的起步计划,并在首页展示距离目标日期的剩余天数。

目标岗位支持多选,内置嵌入式软件、嵌入式 Linux、单片机 / RTOS 和 C++ 开发等方向。计划中的任务数量由用户自己决定,不强制固定为“三件事”,更强调可兑现的承诺。

2. 今日作战台#

首页只保留最重要的信息:

  • 距离目标日期还有多少天;
  • 当前备战阶段;
  • 今日任务完成进度;
  • 今日有效专注分钟数;
  • 待复习知识点数量;
  • 开始专注、今日复盘和历史复盘入口。

任务的创建、编辑和删除统一放在“计划”页,首页负责快速确认状态,减少打开 App 后的决策成本。

3. 计划与逾期补救#

任务包含标题、日期、预计时长、类型、关联能力域、完成标准、优先级和“当日必做”标记。支持学习、算法、项目、复习、简历、投递、面试准备和复盘等类型。

历史未完成任务不会被自动挪到今天,而是按原计划日期保留在“历史未完成”视图中。这样既能看到真实的延期记录,也可以继续编辑、完成或删除,避免因为漏做一天而丢失上下文。

4. 专注计时#

专注模块支持正计时和倒计时两种模式:

  • 正计时:从 00:00 开始累计,适合自由投入;
  • 倒计时:支持 25、45、60、90 分钟预设;
  • 两种模式都支持暂停、继续、最小化和结束;
  • App 进入后台或锁屏后,重新回到页面仍能根据时间戳恢复准确状态;
  • 结束后记录有效专注时长,关联任务时可以继续填写成果和掌握程度。

进行中的计时状态保存在 localStorage,历史专注记录写入本地数据库。少于 1 分钟的片段默认不计入有效专注,避免统计被误触或短暂试用污染。

5. 能力地图与间隔复习#

能力页内置 10 个能力域,包括:

能力域示例知识点
C 语言与底层语义指针、内存、位运算、未定义行为、编译链接
现代 C++RAII、移动语义、智能指针、STL、并发
数据结构与算法链表、树、排序、二分、动态规划
操作系统与 Linux进程线程、同步、虚拟内存、GDB、strace
MCU 与计算机体系Cortex-M、中断、DMA、启动文件、链接脚本
驱动、接口与硬件调试GPIO、UART、I2C、SPI、CAN、设备树
RTOS 与实时系统调度、队列、信号量、优先级反转、FreeRTOS
网络与通信TCP/IP、Socket、MQTT、抓包与故障定位
工程、构建与质量Git、CMake、交叉编译、测试、Sanitizer
项目表达与求职项目职责、技术难点、量化指标、面试复盘

每个能力域包含具体知识点。用户可以逐项点亮自己确认掌握的内容,等级按“已点亮知识点 / 总知识点”自动计算为 0~5 级,不依赖一个看似精确但缺少依据的主观分数。

完成学习任务后,可以填写 1~5 级掌握程度,并将任务加入复习队列。复习结果分为“忘记、模糊、基本掌握、熟练”,系统按照 1、3、7、14、30 天间隔计算下一次复习日期。

6. AI 每日计划建议#

AI 计划不是自动写入待办的黑盒功能,而是一个“候选生成器”:

  1. 前端收集目标岗位、当前阶段、剩余天数、能力掌握度、已点亮 / 未点亮知识点、今日已排任务和剩余时间;
  2. Kotlin 原生层通过 WebView Bridge 将请求转发到 CloudBase 云函数;
  3. 云函数调用腾讯混元 MaaS,要求模型返回 4~8 个具体、可验收的任务候选;
  4. 客户端再次校验任务类型、能力 ID、时长、重复标题和总时长;
  5. 用户勾选后,候选任务才会真正加入今日计划。

云函数不会使用本地规则伪装成模型结果。当网络、云函数或模型异常时,界面会显示真实失败原因,而不是返回一组看起来像 AI 生成的假数据。

7. 求职看板与复盘#

求职页用阶段看板管理岗位记录,阶段包括“意向、已投递、笔试、一面、二面 / 终面、Offer、结束”。每条记录可以保存公司、岗位、下一步日期和备注,并一键创建准备任务。

每日复盘记录当天收获、未完成原因、明天最重要的一件事以及明天计划做几件事。历史复盘按日期倒序保存,避免复盘变成一次性弹窗。

“我的”页面提供最近 7 天的执行周报,包括有效专注时长、任务完成率、学习天数、新增求职记录和每日柱状图,并支持调用 Android 分享能力输出纯文本周报。

技术架构#

本地 HTML/CSS/JavaScript

IndexedDB

localStorage

进行中计时与内容缓存

Kotlin WebView Bridge

通知、闹钟、分享、文件导入导出、RSS

CloudBase HTTP 云函数

Tencent MaaS / 混元

本地 HTML/CSS/JavaScript

IndexedDB

localStorage

进行中计时与内容缓存

Kotlin WebView Bridge

通知、闹钟、分享、文件导入导出、RSS

CloudBase HTTP 云函数

Tencent MaaS / 混元

Android 原生壳#

  • Kotlin + Android SDK;
  • minSdk 26,targetSdk 35,Java / Kotlin JVM 17;
  • 单 Activity 承载本地 WebView 页面;
  • 通过 AndroidBridge 暴露通知、闹钟、分享、文件选择、行业资讯和 AI 请求等能力;
  • 使用 AlarmManager 实现专注结束提醒和每日计划 / 复盘提醒;
  • 外部 HTTP(S) 链接交给系统浏览器打开,应用内只加载受信任的本地资源。

本地 Web 应用#

  • HTML + CSS + 原生 JavaScript,无运行时 CDN 依赖;
  • 页面资源随 APK 打包在 app/src/main/assets/www;
  • 使用 IndexedDB 保存 profile、tasks、skills、sessions、applications、reviews、settings 七类数据;
  • IndexedDB 不可用时回退到 localStorage,保证浏览器预览和部分受限环境仍可工作;
  • 使用响应式布局、深色主题、语义化按钮和 aria-* 属性,适配移动端屏幕。

云端 AI 服务#

CloudBase 函数 cloudbase/daily-advice/index.js 同时提供两类能力:

  • daily-plan:根据能力短板和剩余时间生成今日任务候选;
  • 行业资讯学习建议:基于真实 RSS 文章生成摘要、关联能力、练习和面试自测问题。

模型密钥只配置在云函数环境变量 TENCENT_MAAS_API_KEY 中,不写入 Android 工程、前端资源或 Git。

关键实现取舍#

本地优先,而不是先做账号系统#

这是一个个人使用工具,核心数据不依赖登录和云同步。离线时仍然可以创建任务、计时、复盘和复习;只有行业资讯和 AI 建议需要网络。这样既降低了首版复杂度,也减少了学习记录被上传的隐私风险。

时间戳驱动计时,而不是依赖定时器累计#

JavaScript 的 setInterval 只能负责刷新界面,真正的计时依据是 startedAt、runStartedAt、elapsedBeforePauseMs 和 endAt。因此页面进入后台、被系统挂起或重新打开后,都可以重新计算实际经过的时间。

AI 负责建议,人负责承诺#

AI 只生成候选任务,用户必须明确勾选后才会写入计划。这一设计保留了 AI 的拆解能力,同时避免模型在不了解真实精力和临时安排时替用户做决定。

真实数据优先于“看起来完整”#

行业资讯只接受真实 RSS 内容;AI 失败时不返回本地假候选;能力等级由知识点点亮比例计算。项目更关注数据口径可解释,而不是让页面始终显示一个漂亮但不可信的数字。

测试与验证#

项目提供 tools/webview-smoke-test.mjs,通过 WebView 调试协议覆盖主要交互链路,包括:

  • 底部导航和页面切换;
  • 目标设置、任务新增 / 编辑 / 删除;
  • AI 候选生成与仅添加已勾选任务;
  • 逾期任务按原日期展示;
  • 正计时暂停、恢复、最小化和结束;
  • 能力知识点点亮与等级更新;
  • 求职记录新增、阶段更新和删除;
  • 每日复盘与历史复盘;
  • Android 原生 Bridge 是否可用。

本地构建 Debug APK:

Terminal window
./gradlew assembleDebug

Windows PowerShell:

Terminal window
.\gradlew.bat assembleDebug

生成的 APK 默认位于:

app/build/outputs/apk/debug/app-debug.apk

项目结构#

.
├─ app/
│ └─ src/main/
│ ├─ java/com/qiuzhao/supervisor/
│ │ ├─ MainActivity.kt # WebView 容器与原生桥接
│ │ ├─ FocusAlarmReceiver.kt # 专注结束通知
│ │ └─ DailyReminderReceiver.kt # 每日提醒通知
│ ├─ assets/www/
│ │ ├─ index.html # 页面结构与弹窗
│ │ ├─ css/app.css # 主题与响应式样式
│ │ └─ js/app.js # 状态、数据和交互逻辑
│ └─ AndroidManifest.xml
├─ cloudbase/daily-advice/
│ ├─ index.js # AI 计划 / 行业建议云函数
│ └─ DEPLOY.md # 部署说明
├─ tools/webview-smoke-test.mjs # WebView 端到端冒烟测试
└─ REQUIREMENTS.md # 产品需求与验收标准

当前状态与后续方向#

当前版本已经完成个人使用场景下的 MVP 主链路:本地数据、任务计划、专注计时、能力地图、间隔复习、求职记录、每日 / 历史复盘、原生通知、RSS 行业资讯和 AI 任务建议。

后续可以继续完善:

  • 更丰富的日 / 周 / 月统计和图表;
  • 周报图片分享、桌面小组件和通知快捷操作;
  • 简历版本管理与求职数据导出;
  • 可选的端到端加密云同步;
  • 更细粒度的岗位能力模板和计划模板。

写在最后#

下载#

下载 Android APK

这个项目对我来说,重点不只是“做了一个待办 App”,而是尝试把自己的求职方法固化成一套可执行、可追踪、可复盘的工具:

把目标拆成任务,把任务变成专注记录,把记录沉淀成能力变化,再把复盘结果带回下一次计划。

它仍然是一个个人项目,但也正因为使用者就是我自己,很多交互取舍都来自真实使用中的摩擦,而不是先假设一个理想用户。

秋招督学:把求职准备拆成每天可执行的动作
https://benjian.xyz/posts/autumn-study-coach/
作者
JIAN
发布于
2026-09-04
许可协议
CC BY-NC-SA 4.0