选择!
大家好,我是二哥呀!
时间如白驹过隙,过得真快。大一升大二,大二升大三,升入大三后,面临的最大问题就是:准备考研还是准备工作?
这不,就有个读者私信问我:
最近大三了嘛,开始陷入纠结迷茫了,昨天整理了一下自己的思绪,觉得好多东西还是不清楚,想跟二哥说说。
以下是读者整理的一些问题,虽然每个人的情况不大一样,但我觉得挺具有代表性的,就征得他的同意,在这里给大家分享一下,相信对大家会有所启发。
以下是我的回答。
01、对于计软专业,为什么越来越多的人选择考研?
正如“一千个人眼里有一千个哈姆雷特”一样,不同的人,对待考研都会有自己不同的看法,甚至每个人在不同的人生阶段也会有不同的看法。
对于软件工程专业来说,并没有硬性的要求,必须是研究生学历以上的,反而本科毕业后直接参加工作的比较多。
你的方向是 Java 后端或者算法工程师,就我了解到的,有一点可以很确定:算法岗比 Java 岗更卷,我身边搞算法的好几个朋友都是研究生起步的,但 Java 岗的反倒不是特别多。
考研,有的人是为了保底,希望自己在学历上能有一个更高的起点;有的人是为了缓冲,大学四年没有好好安排,或者原来是大专,考了本科后觉得不稳,就冲一波研究生,补足自己在学历上的短板;有的人是为了考博等等。
02、在研发岗与算法岗,研究生和本科生薪资真的很大吗?大概有多大?对未来发展的影响有多大?长远来看学历是否相当大程度的决定未来几十年的高度?!
先说薪资差距。互联网的趋势是本硕同价,据我了解,鹅厂的研究生和本科生从今年起已经同级同薪了,决定薪资待遇的就只有面试表现了,是白菜价还是 SP,学历已经不是决定性因素了。
再说说我个人对研发岗和算法岗的看法,可能不准确,仅做参考。
围城外的人,可能会以为研发岗是工地搬砖的,而算法岗是指导别人搬砖的。但实际上,这种感觉肯定是不对的。
互联网飞速发展的今天,算法岗和研发岗本质上更像是两种不同型号的螺丝刀,各自拧着属于自己的螺丝而已。
以前,算法岗可能只是简单地做个调包侠就行了,现在,卷的一笔。
以一般的推荐/广告系统为例,有数据库→召回→粗排→精排→混排→前端等上下游模块。
算法岗的目标是通过各种手段提升对应的指标,比如说点击率、转化率、用户停留时间等。拿上面提到的这些模块来说,算法岗需要优化召回、粗排、精排等策略/模型结构,优化模型训练数据等各种方式来提升指标。
如果某个算法已经临近瓶颈,算法工程师就会过得无比难受,因为你做的很多优化可能完全是无用功,收益很低——心塞。
研发岗需要做的是根据具体的需求搭建/维护对应的线上模块,实现业务逻辑。开发岗更像是纯粹的“工程师”,开发、测试、上线,每项工作的目标都是确定的,比起算法工程师,开发工程师的工作量更好评估一些。
当然了,研发工程师也会遇到瓶颈,也会遇到技术难题,也会遇到业务多,时间短的情况,这时候也只能靠加班来解决了,身体容易吃不消。
算法岗,算法岗,顾名思义,必须要了解很多算法领域的知识。
要熟悉机器学习、深度学习的各种算法知识、算法策略、算法模型等等; 要具备过硬的架构能力、编程能力、数据分析的能力等等; 必要的时候,研发岗的进度延迟时,算法岗也是要能顶上去的,不能干等啊。
大体上来说,算法岗的内卷比研发岗更严重一些。
这是因为最近几年,AI 太火,导致很多专业都在往“算法”上挤,尤其是计算机视觉、自然语言处理等偏研究生性质且落地场景不多的算法岗位。
研发岗相对来说,大的方向可以分为前端和后端,后端又根据不同的技术栈分了很多方向,比如说 Java、Go、C++ 等。开发岗是硬性指标,不管大厂,还是小厂,算法岗可以没有,研发岗是万万不能没有的,所以内卷程度相对会比算法岗弱一些。
至于算法岗和研发岗在面试方面的要求,不外乎基础知识,项目经历,以及刷题八股文。
至于未来的发展,既取决于时代潮流,也取决于个人的天赋和努力程度,碰上好的公司,好的领导,自然都有“一骑绝尘”的可能性。
吉大本身是一所双一流院校,如果你选择研发岗的话,本科毕业后直接参加工作我认为是完全没有问题的。如果你选择算法岗的话,就另当别论了,建议考研。
相比于软件开发,算法更吃脑力,对学历的要求也更高。拿深度学习来说吧,早期搭建框架的阶段,对算法工程师的要求是很高的,既需要精深的数学能力,同时又需要超强的编程能力。
从长远的角度来看,我认为学历并不是一个人成长的决定性因素。真正的决定性因素我认为有这么两个:
解决问题的能力。不管是本科毕业还是研究生毕业,如果工作后总是解决不了核心问题,肯定不会受到公司的器重。 信息检索的能力。互联网时代,学习资源可以说是五花八门,信息检索能力强的人,可以学到最优质的资源,花最少的时间,快速成长;检索到的都是垃圾,那可想而知,差距会越来越大。
03、对科研没兴趣,为了提高学历而读研是否是对未来的一种“亵渎”?!
我个人是不建议为了提高学历而读研的,因为你本身的起点已经非常高了,吉大,双一流,要知道,我们河南可只有一所 211 院校,害,心酸😭。
有心读研是好事,因为读书是人生当中最没有压力的阶段的了。人一旦步入社会,就会面对各种人和各种事,纯粹的那种学习的环境再也不会有了。哪怕是搞科研,也会有一些令人心烦的明争暗斗。
考研如果只是为了提升学历,我觉得大可不必。
04、如果打算开始找工作,现在应该做些什么?!
对于你来说,大一和大二已经结束了,不知道你的课程是怎么安排的。关于大学期间的学习规划和路线,我画过这样一副思维导图。
大一(上):学好计算机基础。
推荐学习资料,国防科技大学的计算机基础课,详情可戳链接:
https://www.icourse163.org/course/NUDT-17003?tid=1465305450
目前第 15 次课已经开讲了,不得不说,这次的老师颜值真的高。
这课上的,我再也不困了。目前我学到了「第四周:三单元信息表示与编码——0 和 1 的故事」。
计算机科学速成课:
https://www.bilibili.com/video/av21376839
大一(下):编程语言入门,可以选择 C语言或者 Python。
大二(上):学习一门面向对象的编程语言,可选 Java 或者 C++。另外就是对数据结构于算法发起冲击。
大二(下):开始搞计算机组成原理、操作系统、计算机网络。
大三:继续理论知识学习的同时,投入更多时间和精力到实战上面,可以参与老师安排的项目,或者搞个人的开源作品,都 OK。
如果大三下半学期就有实习机会的话,可以提前去体验一下互联网的工作环境,应该会大有所获的,因为学校课程的学习和实际的工作之间会有比较大的差别。
大四:继续深耕,然后准备秋招上岸。
05、总觉得学校教的没什么用,每天的时间似乎都浪费在上没意义的课(因为自己上课也不听)和水作业上面,痛苦又无力挣扎的内种,又不知道自己该做些什么………
大学的课程本来就是有弊端的,哪怕考研也会遇到同样的困惑。因为学校的课程安排是针对所有的学生,必须具备普适性。
但每个人的能力不同,兴趣不同,学习的方法也会不同,如果只是单纯的跟着学校的课程一条路走到黑,肯定会陷入痛苦之中。
在保证自己不挂科的基础上,去互联网上检索一些更适合自己的课程我觉得是个好办法。
如果你英语功底非常扎实的话,推荐去看国外顶尖大学的公开课,毕竟计算机就是从人家那过来的,埋头去学一波不亏的。如果英语功底一般,建议你补一补,然后选择一些带中文字幕的视频,当然了,国内的一些公开课也有一些非常不错的。
我之前推荐过一次,这里再搬过来你看一下。
①、操作系统
国外的 MIT 6.S081 是一门公认的硬核课程,是理论与实践相结合的经典。
https://pdos.csail.mit.edu/6.S081/2020/schedule.html
国内的「清华大学公开课:操作系统」口碑也相当的不错。
https://open.163.com/newview/movie/courseintro?newurl=ME1NSA351
②、计算机组成原理
国外的安利一门 Coursera 上的课程,从与非门到俄罗斯方块,简单来说,这门课会教你怎么从与非门开始造一台计算机。
https://www.coursera.org/course/nand2tetris1
国内的推荐哈工大的这门视频课,整体评价非常高。
https://www.bilibili.com/video/BV1WW411Q7PF
③、计算机网络
国外的推荐斯坦福的 CS144,结合《计算机网络:自顶向下方法》这本书。
https://www.scs.stanford.edu/10au-cs144/
国内的推荐湖科大教书匠的《计算机网络微课堂》,制作得非常用心,是一部不可多得的佳作。
https://www.bilibili.com/video/BV1c4411d7jb
④、数据结构与算法
国外的推荐 MIT 6.006,是经典的数据结构和算法入门课程,涉及到排序、哈希、图论、动态规划。
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/
国内的推荐浙江大学的一个的课程,很系统很经典,适合小白入门。
https://www.bilibili.com/video/BV1JW411i731
当然了,只学理论知识肯定是不够的,也容易枯燥,建议搞一些实战。可以从以下这些方面着手。
1)参加比赛
比较有含金量的比赛大概有这么几个:
ACM 天池比赛 阿里巴巴中间件性能挑战赛
2)参与开源项目
如果有自主开发能力的话,可以自己搞一个,不要管 low 不 low,比如说图书管理系统、人脸识别系统等等。
当然也可以搞一些高端点的,比如 mini os,编译器等等。
或者,直接参与网上的一些明星开源项目,比如说 GitHub 上的 mall、miaosha、vhr,可以直接去搜这些关键字。
3)刷题
像浙大的 PTA,像牛客,像LeetCode,都是不错的刷题去处,不仅能提高编程的思维能力,还可以在找工作的时候“带一把刷子”。
4)实习
如果能在大三的时候出去实习,就去,感受一下互联网公司的环境、氛围,如果能有幸认识一些比较热心的前辈,那对以后的职业发展绝对是大大的利好。
如果你能按照我说的来,趁大三大四这两年把该补的补上,很难不成为 offer 收割机。加上吉大的招牌,我觉得上岸大厂完全没有问题。
人到了选择的档口,最怕的就是犹豫不决,考研和找工作确实是单选项,不可能做到鱼和熊掌兼顾。我之前遇到过一个读者,考研失败,信心受挫,还错过了秋招的黄金时间,心里难受的一笔。
幸好后来及时听从了我的建议,沉下心来完成了二战,因为他心里的确是放不下考研这个结,那不如破釜沉舟,抛弃一切杂念,为心中的这份执念再拼一次。
你现在大三,要考研还是要工作,趁早决定下来。
希望能对你有所启发,你也可以和考研的学长学姐,以及毕业就参加工作的学长学姐交流一下,问问他们的感受,综合评估一下。
好了,二哥就简单说这么多吧,大家也可以在评论区给这位读者一些建议,说说你内心真实的想法和理解,有过类似经历的最好。
没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟。
推荐阅读: