写给后来者-大学4年的回顾和建议


大学4年有多长时间

4 year \times 365 day/year \times 24 hour/day = 35040 hour

也许看起来很多,但是

  • 生活
    • 睡眠,4 year \times 365 day/year \times 8 hour/day = 11392 hour
    • 饮食,4 year \times 365 day/year \times 1 hour/day = 1424 hour
    • 社交,4 year \times 365 day/year \times 1 hour/day = 1424 hour
  • 学业本身
    • 上课,1.4 hour/ week \cdot point \times 14week \times 150 point = 2940 hour
    • 作业,假设也是 2940 hour
  • 就业准备
    • 基础准备
      • 面经 70 hour
      • 算法 180 hour(3个月,每日2小时)
    • 实习
      • 面试 30 hour(10家公司,每家3小时)
      • 现场实习 6 mounth \times 24 day / mounth \times 8 hour / day = 1152 hour
      • 转正准备 50 hour
    • 秋招 140 hour

扣除这些必要的时间,还有大约 14000 hour,还要除去娱乐和放假。

有一个理论认为 master 一个技能需要一万小时。考虑到应届生,放宽一点要求,认为3000 \sim 5000小时可以熟练一个技能。

那么,大学期间,有大概 2\sim3 项技能可以成为核心竞争力。

如何决定前路

无非是先了解有哪些选择,然后了解优劣,最后根据自身情况判断。

对于就业来讲,目标职位的选择,比较可靠的信息来源有如下三条

  • 招聘标准 or 职位描述(也称JD)
  • 前辈经验
  • 网上分享

JD分析

后端开发工程师-飞书办公套件 为例:

后端开发工程师-飞书办公套件
职位要求
1、2022届获得本科及以上学历,计算机相关专业;
2、热爱计算机科学和互联网技术,熟练掌握至少一门编程语言,包括但不仅限于:Java、C、C++、PHP、 Python、Go;
3、掌握扎实的计算机基础知识,深入理解数据结构、算法和操作系统知识;
4、有优秀的逻辑分析能力,能够对业务逻辑进行合理的抽象和拆分;
5、有强烈的求知欲,优秀的学习和沟通能力;
6、有ACM、建模等主要竞赛获奖经历者优先。

可以得出这三点结论:

  1. 必须具有这些基础能力
    Linux使用 代码/文档管理 C/C++ 计算机组成原理 操作系统 计算机网络 etc.
  2. 招聘者的实际期望
    学习 沟通 提出解决方案
  3. 拔尖亮点
    竞赛 开源项目 实习经历 个人项目 奖学金 实验室经历 论文

即:想要毕业时找到这样的工作,必须在毕业时掌握这些基础能力的同时,表现出达到实际期望的可能。最好具有1到2个亮点。

经验收集

可能收集的范围有:

  • 学长
  • 亲戚朋友
  • 网上帖文

应当重点关注

  • 这个职业的工作内容
  • 这个职业的招聘要求
  • 这个职业的成就感&薪水

考虑&决定

我比较推荐考虑这几个问题

  • 对职业成就感的认同
  • 对工作内容的兴趣
  • 对达到招聘要求的自信
  • 已经达成的条件或其他优势

如何利用时间

这里大力推荐甘特图

工具的话百度/google一下,有很多的。

geek一点的同学可以考虑 plantuml 或 vscode 的 md preview enhanced插件。

在碰到问题需要搜索or求助时

  • 不要搜问题,要搜关键字
    • JavaScript 能够运行得比C++快吗?×
    • JavaScript C++ 运行速度 √
  • 优先查找文档&FAQ
    • C++ 延迟执行 ×
    • delay site:en.cppreference.com √
  • 当需要提问
    • 搜索 提问的智慧

其次就是花大概50小时粗略学习一下bash脚本or powershell脚本,自动化永远不亏,真的。

附加信息

建议学习一下 这些重要但是大学没开的内容