要不要读研?
本科能拿到大厂offer要不要读研?
这个问题可以说相当典型了,很多计算机专业的同学到了大三都有这个疑惑,也回答了不少私信。
当然了,我既不鼓励读研,也不劝退读研。
仅仅是针对可能会影响大家做决策的一些因素发表一些看法,是否正确都要靠大家自己去分辨。
先来聊聊学历
首先,看看读研可能会带来什么好处:
一、学历的提升
这一点毋庸置疑,尤其是针对:
双非 -> 211/985
普通 211/985 -> C9甚至Top2
这样的学历提升算是比较大的。
二、逻辑能力的提升
读研两三年,专注一两个领域课题,对于提升个人的专注力、思辨力都是好处的。
并且研究生期间做的最多的就是写论文和汇报,所以你的表达能力、从实验数据概况、抽象、总结成论文的能力都会得到巨大的锻炼。
当然了,逻辑能力的提升不一定要读研,就算是工作,只要你是在不断保持学习、思考的,我觉得都会不断提升的。
但是读研恰恰是创造了这样一个环境,毕竟工作后,大家下班了应该是被抖音、B站、知乎之类的APP填满的。
三、更多的机会和可能性
比如有些地方考公就是要研究生起步,又或者你在某个大厂996不爽了,想要考公进体制,那么研究生学历可能会有加成。
又比如相亲、进一步读博等…
读研可能存在什么问题:
一、遇到无良导师
这就不展开说了,每年都有一些类似无良导师压榨学生的新闻爆出来,要是遇到这种了,那就是当两三年的廉价劳动力,还不如工作。
二、时间成本
大多数人读研之后还是要走上工作岗位的,那么你就比你大学毕业就工作的同学少了三年工作经历,导致很多事情都慢半拍。
假如你的同学14、15年本科毕业就去字节了,而你选择读研三年后17、18年加入字节,那么很有可能你的本科同学是你的leader,并且在收入、期权上也有很大的差别。
当然了,这种情况不多,但是确实客观存在,尤其是互联网行业,日新月异,每隔两三年就有几家独角兽、行业巨头崛起,能把握住这样的机会,那么财务自由也不远了。
三、为了论文浪费时间
有些学校读研有硬性的论文要求,并且你研究的方向和你以后找工作的方向毫不相关。
但是不得不每天花大把时间去读论文、做实验、分析数据、写论文,就是为了毕业。
一旦毕业了,这些论文你可能再也用不上了,和你找工作更是没一毛钱关系。
相信有不少读研的同学都有下面的困惑:
一边准备着Java/C++/前端 找工作,一边还要为了毕业准备研究方向的论文,真的还是挺心累的。
薪资和发展
好了,好坏都分析完了,再来聊聊大家最关心的:薪资、发展。
1、先谈钱
现在互联网的趋势是本硕同价,鹅厂从今年起,研究生和本科生应届入职已经同级同薪了!
决定你薪资的只和你的面试表现有关,也就是大家常说的白菜、SP、SSP之类的,和学历基本脱钩了。
所以千万不要想着「读研后收入更高」而去读研,因为等你读研毕业出来,很可能是比本科工作+三年经验的同学薪资低的。
2、发展
说完了薪资,再说下发展吧,由于我也才毕业,所以到底研究生是否有加成,也不敢随意给出是或否的回答,只说我观察到的现象:
在大公司内想要晋级,一般会有答辩的流程,你需要从平常工作中举证,证明你的技术能力是够格的,能和下一个职级的要求相匹配。
答辩不会看你的学历,都是围绕你的工作、解决了什么难题,技术含量、输出这些维度来进行的,基本只和你的能力有关,学历在工作几年后会被逐渐的弱化。
当然,这说的是大厂技术岗,至于公务员这类不在其中。
那么是不是找工作和内部晋升完全和读研无关呢?
直接关系确实没那么大,但是确实有间接的影响。
比如从我自己身边的一起找工作的朋友拿到的offer来看,研究生普遍有更大的几率拿到大厂offer/高评级的offer。
一个主要原因是大部分研究生学习时间和准备时间更加充裕。
因为对于本科生来说,如果高中没打过NOI之类的,也没编程基础的话,大一基本处于适应期、迷茫期。
而大二大三这段时间则是因人而异,有些同学能迅速转变,找到科学的、适合自己的学习编程方式,有些则是继续一路玩下去,而且玩下去的比例还不低。
那自然一路玩下去这部分大四春秋招的时候很难拿到大厂offer,这也就是为什么本科生中拿到大厂offer的学生比例会低很多。
对于玩下去的那部分如果想进大厂,读研肯定是最好的选择,可以多两年的时间去学习,基本上等于本科就很认真学习同学的时间(大二、大三两年左右)。
另外,某位大厂总监说的,在他们内部晋升中,一般研究生的答辩通过率更高,不是因为他们是研究生。
而是研究生同学在表达能力、总结能力等方面总体上会更强一些,这其实也印证了前面我所说的读研带来的「逻辑能力」的提升。
因为读研期间你会有很多机会写论文,并且在导师、小组内、甚至各种会议做报告,这其实和工作中的答辩差不多。
所以核心还是能力,读研只是可能会帮助你提升这方面能力,但是也有不少同学本科毕业这方面能力也很强。
3、读研和工作有什么不同
还有就是很多同学关心技术的提升,读研和工作有什么不一样。
个人感觉是工作更加注重技术的产出,也就是是否能快速掌握一项技术,并且用于解决业务中的实际问题。
而读研则偏向于在一些细分领域深入探索,去解决存在的问题,比如图形学、System、AI等。
但是呢,理想很饱满,现实很骨干,往往工作到后面就成了重复性搬砖,读研也成了看网课自学、做项目……
但是无论读研还是工作,要在计算机这个行业长远发展,一些基础的理论知识还是要掌握的。
就是我们常说的CS基础课:
操作系统
计算机组成
软件构造、设计模式等
编译原理
计算机网络
数据结构与算法
面向对象编程、函数式编程等
像在MIT这样的学校,研究生入学如果没有学习过这些基础课,是会安排去和本科生一起上课补齐的。
另外还有很多通用的技能,包括VSCode、Jetbrains全家桶这些IDE,gcc、gdb这些编译调试软件,文档编写Markdown、Git等版本管理工具。
SSH远程登录、端口转发,Ngrok内网穿透等等这些提高你开发效率的工具,都算是技能,这个没啥好说的,平时用到多学习多积累就好了。
还有一些软技能,比如沟通能力、理解能力、提炼表达能力等等,无论读研还是工作都非常重要。
总结一下
1、读研比较适合哪类同学?
喜欢读书、想提升一下学历
本科玩废了,找不到满意的工作,没有成功培训;读研多三年的时间学习,相当于弥补本科的时间
有志于做科研的同学
抱着这三个目的去读研的同学,最后的结果也大多比较满意,很多同学通过三年读研,毕业成为大厂收割机。
2、什么情况下可以不去读研?
本科能拿到大厂offer
不在乎学历的提升
不在乎硕士学历在社会上带来的一些潜在加成(比如相亲、考公进体制之类)
不做算法岗
不想进一步读博
如果满足上面,那我觉得你可以不去读研。
3、一些建议
要想本科毕业就成为大厂收割机其实也不难,关键在于你对于互联网校招要有这个意识。
不少同学往往是到了大三下,发现身边有同学都拿到头条、腾讯的实习offer了,突然意识到,好像快要找工作了。
然后才匆匆开始认真捡起来学习,而平时都是把老师布置的作业完成就好了。
所以对于还在校的学弟学妹,有几点建议:
提高信息搜索、采集能力
多看信息密度大、质量高的资料(经典的书籍、课程)
想要拿到满意的offer,就早点开始认真学习、好好准备、刷题,面向就业学习蛮好的
每个人都能学好计算机,你需要的是持续不断的努力
我们会在各种论坛上看到一些前辈侃侃而谈他们的经验,也许有很多技巧、有天赋。 但最本质的一定是他们持续不断的付出,一万小时定律我一直坚信。
写代码很多情况下,就是无他,唯手熟尔。