# 发展意向

- T 型人才结构
  System + Kotlin 移动端。

- 考研
  院校：初步结论，中科院计算技术研究所（ICT）
	- 院校水平
	- 是否有做系统方向的导师
  意向实验室与导师：？
	- 是否招人
	- 导师评价

>**考研导向**
>应当直接寻找一到两张专业课的试卷为例做具体分析，关于考研初试究竟在考什么。

- 项目
	1. `kLox` 解释器
	   该项目在代码上已经基本完成，只差 class 实现。问题在于项目太久没碰，需要==重读代码==，并理解其中囫囵吞枣的部分。应当有==博客产出==。建议直接在项目 2 中开始。
	2. 基于 `ESP32-C3` `Rust no-std` 的 OS 及其上的 `klox` 字节码虚拟机
	   该项目是主力，难度很大，需要==确定实现边界==。

- 时间规划：用两年时间准备高目标的考研与项目
  相比一年考研，该计划实际上难度更大，区别在于新计划有为之努力的理由，是主动的

- 态度
	- 把自己做的事情暴露到客观现实中接受考察，在失败时有接受的勇气，有进一步改进的恒心，有果断转向的魄力
	- 应当在在必要时不耻于寻求他人帮助
	- 我选择不同的路不是因为自己更厉害，而是因为自己的情况和别人不一样，如果走大路，我就需要削足适履

>**考研院校？**
>尽管还没有确认，但是目前看来，要考哪所院校的第一决定因素从“自己能考多少分”变成了“我要做的事要求我得考多少分”。

>**合适的导师与实验室？**
>导师：不是纯理论的学术大牛，不卡毕业，而应该工程能力强、业界联系多、
>实验室：有做项目的环境，避开横向

---
# System 的定义

系统软件是管理硬件资源、为上层应用提供抽象和服务的软件层。

有以下一些方向：

1. 固件与嵌入式
2. 操作系统内核
3. 虚拟化与容器
4. 编译器与运行时
5. 存储与数据库系统
6. 分布式系统
7. 系统安全
8. 其他

用实例对比来说：
- 电商后台管理不是，但写这类系统会使用的数据库引擎是
- 写微信小程序不是，但写小程序的运行时是
- 写游戏不是（尽管这很难），但写游戏引擎是
- 部署 Docker 容器不是，但写 Docker 是

---
# 对考研的需求

包括什么：
1. 前往机会和资源更多的大城市
2. 提升学历稀缺度
3. 希望从事的职业更具挑战性，更具长期价值
	1. 尽量避开手段 >> 能力的局面，自己不擅长
	2. 尊重自己对计算机的喜爱
	3. 计算机中的低门槛职业面临被替代的风险
4. 更多的时间
	1. 培养横向的 Kotlin 移动端能力作为保底
	2. 满足高难度方向经验积累的需求
	3. 我要做力量健身，还想学散打

暂时不包括什么：
1. 对写论文和讲故事的热爱
2. 对面向数百万人的科研评价体系的信任

不确定什么：
1. 喜欢做研究
2. 遇到认可自己的导师

>**学历贬值？**
>985 本科 + 系统方向的组合不适用于网上的讨论。
>正确的做法是==上招聘网站看一看要求==，如果有可能的话，==问真人==会更好。

---
# 个人情况

- 简历缺乏亮点，缺少常见的比赛经历等
- 计算机（甚至是其他领域）广度很广，但深度不深
	- 多语言理解：C++，Python，Java，Kotlin，Dart，Rust（学习中）
	- 有丰富的实践经验：嵌入式、Linux 运维等
- 已经接触过意向方向的相关项目，有成就感
	- 用实践熟悉技术是有效的
	- 更加底层的技术有意思
	- 硬件本身不是很有意思
- 精神状态：
	- “蓝量”上限低（尝试过为 1 年考研想计划，执行不通）
	- 管的越少，做的越好
	- 容易焦虑
- 学习上：
	- 在广度中建立联系
	- 遇到问题时追究深度和本质
	- 能够做结构化的整理，以及其他丰富的方法
	- 408 近似于生物
- 表达上：
	- 过度忽略阶段性成果展出
	- 自己在意的东西容易和别人想的不一样
	- 实际面谈中，靠自己一直说话容易紧张和不达意，但被提问时还不错

---
# 面临问题

1. 我的个人情况要求：
	1. 从事交叉性质的工作，发挥广度
	2. 抓住自己喜欢的方向，拥有深度与不可替代性
	3. 拥有体现能力的项目开发经历
	4. 避开其他人的进度压力
	5. 维护自己的健康与形象：力量训练、轻度有氧、饮食与睡眠习惯、皮肤、人际互助、心理咨询
2. 我意图发展的 System 方向要求：
	1. 更优秀的院校
	2. 更多的基础知识与经验积累
3. 我的时间计划要求：
	1. 毕业设计很耗时间，如果能用自己的研究项目代替最好
	2. 期末准备应当“适度”

>**专业课成绩？**
>数据结构：（98+93）
>计算机组成原理：86（80+92）
>操作系统：90（88+91）
>计算机网络：82（82+81）
>编译原理：？（本学期课程）
>实际上保证分数不要太低即可，实际面试中的提问和项目理解会更重要（毕竟期末卷子难不难老师都不知道）


---
# 沟通与展示

应当搭建一个==博客平台==，展示自己的成果。

好的==项目==需要好的说明：
- 做 Github 主页
- 做文档
- 提前联系导师
- 准备不同长度的面试稿

应当与==父母==进行正式的沟通。
- 转述自己在这个 MD 中的考虑
- 财务开销：？
	- 流：
		- 房租
		- 生活费（饮食、水电、电话费）
		- 考研开支（资料、报名费）
		- 项目开支（AI、硬件）
		- 学费
		- 应急（交给压岁钱）
	- 源：？
		- 需要低一些的时间压力
		- 象征意味更大，需要先确定家庭财政压力
		- 保留对家教这条的考虑
- 回家的最后那半年：如何处理最后半年突变的生活？

应当与==毕业设计==的指导老师进行沟通，提前知道该项目是否能作为毕业设计。

面对不能理解自己的人的==质询==，应当准备好话术，不应为此内耗。

面对考研==复试面试==环节，应当高度警惕。

--- 
# Checklists

计划需要有安排，需要有路线图。

预期路线图：？
- 三阶段：
	- 最小 MVP：
	- 毕设版本：能够运行一个远程终端
	- 复试版本：能够运行 lox 字节码 VM

复杂的计划需要有应对实际的鲁棒性，这要求有 Plan B。对 A 计划可以降级到什么程度，止损线是什么？

Plan B：
- 考研：调剂？直接找工作？三战？？

两个项目都很大，需要被拆分成具体的模块，这样才能区分优先级。

项目看板：？

---
# 具体参数

## 考研目标

记得考研是有大小年的。

考研流程：

```
报名 → 初试 → 出分 → 复试线 → 复试 → 录取 → 选导师 → 入组
```

准确数据项：

| 项目     | 备注              |
| ------ | --------------- |
| 统考剩余名额 | 总招生人数-推免人数      |
| 考试科目代号 | 如 11408 等       |
| 复试院线   | 国家线和校线的参考意义不是很大 |
| 拟录取最低分 | 录取分数线           |
| 拟录取平均分 | 不能光看最低分         |
| 复试差额比  | 拟录取人数 : 复试人数    |
| 初复试权重  | 差额复试            |
模糊数据项：
	
| 项目   | 备注                              |
| ---- | ------------------------------- |
| 导师   | 研究方向、招生名额、组内人数、是否卡毕业 / 放实习、学生去向 |
| 复试内容 | 机试、笔试、面试                        |


