为不考虑读研的 CS/非科班学生撰写的本科就业指南:可供后端,前端,算法,测开四个方向做参考
本教程专注于直接就业的路径规划,不适用于有读研计划的受众
作者情况:自动化专业 自学转码 目前从事后端开发工作
- 收益率与风险:为什么要不读研工作?有什么数据能支撑这个选择?本科就业的收益和风险如何?
- 四年时间线:本科的 timeline 是什么?如何分配大一到大四的时间?
- 具体就业方法:简历怎么写?去什么平台投递简历?面试的自我介绍 + 八股场景题 + 手撕算法 + 反问环节分别如何处理?
- 附加题:有哪些成就/技能点是可以用于增加面试通过率的?这些技能点需要多少 cost?
- 收益分析:
- 本科就业,可比读研节省约2.5年的时间。多出2.5年工作经验 + 2.5年收入
- 风险分析:
- 高端技术岗位或管理层面,研究生学历可能被视为更具竞争力的条件,需要通过持续学习或在职进修来弥补。
- 数据支撑:
- 根据2019年的数据,互联网行业程序员中,本科学历占比约69.27%,硕士学历占比约14.53%
- 一般情况下,研究生的起薪高于本科生,但差距并非绝对。实际薪资水平还受个人能力、工作经验影响。学历固然重要,但个人能力和持续学习更为关键。
- 大一:数据结构与算法 + 计算机网络 + 操作系统 + 数据库
- 大二:确定具体就业方向:前端、后端、算法、测开、网安,建议优先选择后端或前端,针对选择的方向 按照相关书籍+网课的方法做出完整项目(要求达到能够写在简历中的复杂度),寻找自己的第一份实习(可选,取决于个人实力)
- 大三:至少刷完LeetCode Hot100,掌握基础八股,寻找自己的第一份实习,在大三暑假进行 实习转正 / 正式秋招
- 大四:大四上9月 - 历年5月是秋招 + 春招时间段,主要复习八股+算法题+完善项目
仅代表个人观点:
- 如果学校层次>=中等985 && CS专业,建议在正常修读校内课程的前提下进行相关自学,若二者条件有任一不满足,建议直接自学,放弃学校课程
- 简历撰写与投递:
- 如何突出项目经验和核心技能?
- 自我介绍:
- 必须写稿背下来
- 重要性一般来说和面试官打过招呼之后第一项就是自我介绍的环节。可能有的面试不会手撕代码,可能有的面试不会问八股,可能有的面试不会问项目,但所有的面试都有自我介绍。好的自我介绍不仅能给面试官留下初步的良好印象、展示自己的优势,更重要的是能够 引导和控制面试官在后续面试中会问你的问题,从而提高问题回答正确率,在整场面试中掌握主动权
- 自我介绍公式:开场句 + 名字 + 学校(211 985 双一流 top 必须注明) + 专业(可选) + 教育经历中的亮点(高GPA / 奖学金) + 实习经历(有则必说) + 开源经历 + 自己做的项目(必须强调亮点) + 竞赛奖项 + 结束句
- 自我介绍样例:面试官您好,我叫xx,是xx大学xx届的毕业生,(我的专业是软件工程)。(在校期间我成绩优异,排名xx,获得xx奖学金)。(此外,我在xx公司实习过xx时间,是在xx部门做xx方向的业务,实习期间主要做了xx项目)。(另外,我还参加了xx开源社区,做了xx项目/解决了xx问题)。(另外,我还自己做了一个xx项目,背景是xx,用到了xx等技术)。(同时,我也参加过一些竞赛并且拿到了一些奖项,比如xx竞赛x等奖)。非常高兴能得到这次面试的机会,希望您接下来能多多指点,谢谢。
- 埋钩子及作用:在自我介绍环节通过强调和突出等方式把你比较擅长、或者是希望被问的部分传达给面试官,在他心里埋下一个钩子,待到他在后续问你问题的时候想到了你介绍中的某些内容,从而提问。埋钩子能让你有一定的几率控制面试官的提问方向,从而引导到你擅长回答的问题,从而讲的出彩,提高最终的面试通过率。
- 如何埋钩子:需要让面试官感兴趣,例如项目亮点/竞赛/实习亮点,在介绍时提前埋下某些可以提问的技术点
- 八股场景题:
- 手撕算法题:
- 推荐跟着下列教程刷LeetCode : https://labuladong.online/algo/intro/how-to-learn-algorithms/
- 如何练好手撕算法 :三部分,刷LeetCode,Hot100/面试150积累的基础 + 刷你面试的公司的历史题库 + 刷Google上搜到的公司近年的算法手撕题面经
- 刷LeetCode公式 : 拿到题先思考暴力解,如果3min内想不到暴力解就直接去看题解,如果想到了暴力解就想优化解,如果5min内想不出优化解也直接去看题解,LeetCode并非比拼智商,而是比拼熟练度,不要通过死磕一个小时某道题目来试图证明自己有多努力,这是无效时间。
- 对于重要或有难度的题目,隔一段时间重新练习