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