选择!

沉默王二

共 4798字,需浏览 10分钟

 · 2021-10-17

大家好,我是二哥呀!

时间如白驹过隙,过得真快。大一升大二,大二升大三,升入大三后,面临的最大问题就是:准备考研还是准备工作

这不,就有个读者私信问我:

最近大三了嘛,开始陷入纠结迷茫了,昨天整理了一下自己的思绪,觉得好多东西还是不清楚,想跟二哥说说。

以下是读者整理的一些问题,虽然每个人的情况不大一样,但我觉得挺具有代表性的,就征得他的同意,在这里给大家分享一下,相信对大家会有所启发。

以下是我的回答。


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 收割机。加上吉大的招牌,我觉得上岸大厂完全没有问题。

人到了选择的档口,最怕的就是犹豫不决,考研和找工作确实是单选项,不可能做到鱼和熊掌兼顾。我之前遇到过一个读者,考研失败,信心受挫,还错过了秋招的黄金时间,心里难受的一笔。

幸好后来及时听从了我的建议,沉下心来完成了二战,因为他心里的确是放不下考研这个结,那不如破釜沉舟,抛弃一切杂念,为心中的这份执念再拼一次。

你现在大三,要考研还是要工作,趁早决定下来。

希望能对你有所启发,你也可以和考研的学长学姐,以及毕业就参加工作的学长学姐交流一下,问问他们的感受,综合评估一下。


好了,二哥就简单说这么多吧,大家也可以在评论区给这位读者一些建议,说说你内心真实的想法和理解,有过类似经历的最好。

没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟

推荐阅读

浏览 47
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报