这篇文章源自 2018 年 10 月我对俱乐部的小朋友通过微信语音通话做的一个职业规划分享,因为当时不习惯语音这种方式,也没有准备 PPT,整个分享下来我时间控制做的很差,唯有 QA 环节弥补了一些交流空白。这里我会整理当时内容,再做些额外补充,既是聊补小小遗憾,也是留给后来者阅读。

首先必须强调我是没有任何资格做职业规划建议的,我不过是平庸一介开发工程师,未来十年可能也不过如此,但在大学四年路上确实踩过一些坑,有些艰苦的坑是需要自己咽下去的,但有些坑是起于信息不对等——工业界的信息与老师的信息存在隔阂,老师的信息又与学生的信息不一致,最终的结果就是企业的需求和学生的能力存在巨大不匹配。盲目学习,追求绩点,但基本功如哈希表的实现一问三不知。而基本功的缺失通常也意味着作为工程师基本素质缺失:不会解决问题。有些学生甚至多搭上研究生三年时光浪费其中,整整 7 年学习结果寥寥,面试只靠两个月突击——所以我想即便我没有资格宣传成功学,我也有理由来分享我所知道的关于学习的信息。

我们对这个问题的假设是教育的信息不对等对学习造成阻碍,排除那些自主选择离开技术道路,或是懒惰,或是不可抗力原因的同学,针对的是那些勤奋努力,有技术理想的,但苦于无人指点的同学。不限于计算机软件学院的同学,也可能包括通信,电子,自动化等未来希望从事互联网技术的同学。

对于大一的同学。

其实大一是很好的试错时期,所谓试错就是犹豫。你可以去犹豫自己是否读研,是否留学,是否转专业,是否把领域专注在图形学,是否投入做机器学习,是否加入老师的实验室,是否加入 I++,是否毕业后立即就业,是否打一年 ACM 的区域赛,是否考虑大牛教授的直博计划,是否去修双学位。但是你很难全部都做,甚至在大学时期同时保持高绩点,又能持续钻研在一个领域内的已经可以称作凤毛麟角。所以你能做的就是懂得明确目标认清轻重,必要的时候放弃一些东西。而轻重的判断本身就不容易,真正的决策落地即便是经历 2 年 3 年我认为都是可容忍的。方向太重要。

这里粗讲一下我的取舍。在第一个学期度过一半的时间点我即决定破釜沉舟,放弃本科之后的学历,短期用一年时间全情投入到 ACM/ICPC 的准备里。当初我对自己的 promise 是 “假如毕业后能够以平均 70 分(也就是 2.0 绩点)飘过毕业,我的大学就是成功的”,那说明我对 useless 的绩点投入足够少,对关键目标的投入足够大。最终我毕业的成绩单赫然写着一个明晃晃不到 2.1 的绩点,我想我是在某种意义上取得了成功的 。

对于大二的同学。

大二是积累基础知识的一年,这也是操作系统,数据结构等课程开设在这一年的原因。我个人不建议大家在理解基础知识前过早参加学术项目,比如研究 5G 网络优化,知识图谱,分布式图计算,等等。或许有同学已经初步了解其领域的基础名词,有的已经深入到算法细节,Paper Reading,甚至是框架源码。但我在这里真心相告:先打好基础

其实好高骛远是读大学再正常不过的事情,毕竟再也没有所谓“课时”这个概念,所有的课你都可以在一个月内结束战斗,但每一门课的学习都可以延续到将来的十年里,这样就没有所谓“课时”,不然大学毕业的人都不用学习了。也因此开始学习的时候就不要抱着学完的打算,而是标记好重点,划清基础的知识,通过实践一点一点把细节搞清楚,比如参照 open-jdk 把数据结构手写一遍,用 epoll 写一个尽可能高吞吐的 echo-server,用编译原理的知识写一个 JSON Parser —— 更多的可能因个人兴趣而异,但无论对谁而言,学习都莫不是 阅读 + 分析 + 实践 的过程,很多人在“阅读”这一步结束后就停止学习了,显然是根基不稳的。

对于大三的同学。

我认为大三是做项目的一年,当然前提是你把握好了前述的方向和基础。许多同学可能迷茫于自己应该做何种项目,有的可能为了立即的报酬而去做外包项目,有的可能盲从于兴趣而去做一些没有挑战的所谓“为了玩”而做的项目,有的可能投靠师兄和实验室去做老师布置的项目。这些做法我并不否定,但我个人不会给这样的建议。

我的建议是依照自身方向去选择比自己的水平稍高一些的项目,在确定项目前注意花时间做一下评估,做一下调研,不着急写代码,尽量避免浪费时间。如果你需要指导,或者需要推荐信之类的直接帮助,你可以选择实验室。其他的建议你在 I++ 俱乐部找到我们的联系方式,和我们直接讨论。

对于大四的同学。

有些话不妨直说。回想当初在学校,最后悔是没有辍学。当时(2016)南京没有好的互联网企业,实习所向无非是 NI(National Instruments),华为,英特尔,不像现在有阿里,字节跳动,小米,近几年还有越来越多 remote work 的机会。如果能回到过去,我会去争取能接受辍学生的公司。因为真实的情况是企业招人难,品质优秀的潜力股对多数公司来讲都不会介意学历,更不用说一些创业公司。可能我确实缺乏当机立断的魄力,在熬过半年后我才开始真正思考辍学这个选项,再过了半年后我才明白,有学历没学历对我来说根本没有区别(不考虑人才引进政策),然而此时我已经不需要想它了。如果你也同我一样,愿意承担辍学的风险,有自信找到愿意接受你的企业团队,并且珍惜时间,我认为你可以把辍学作为一个 option。

当然如果是想要继续深造,想要学历(或者说想要户口),或者单纯想在学校多留,我对你没有太多建议,好好学习,天天向上,到了大四这个时间点,不要太大压力。