我是一名大一新生,我应该如何确认自己的学习方向?

本文首发于我的微信公众号:我是一名大一新生,我应该如何确认自己的学习方向?

本文暴论较多,仅代表个人意见,如有不同意见,欢迎讨论。

经常在学校或者网上带一些新生入行,听到他们问过最多的问题便是:"如何确定自己的学习方向?"其实第一次听到这个问题的时候,我的内心首先是不解,其次是愤恨:"你连你自己的路怎么走都不知道,那你当初这个专业又是怎么选的?"诚然,中国的绝大多数科班生在上大学前甚至可能从来没有接触过计算机,他们选择这个专业也不一定是因为"喜欢干这行",作为一个非科班生,我更无权评价他们的选择,因为首先,在选择我自己的大学专业之路上,我就没能选对。

但是对于这个问题,也许作为半个"过来人",我可以凭我的经验,给予那些还初出茅庐的学生一些小小的启发。当然,这篇文章也许也适合一些尚未找到自己目标的高年级,甚至研究生在读同学。

你醒啦?一切都已经晚了!

你可能不知道的是,如果你在上大学前没有接触过编程,那么其实你已经远远落后于其他同龄人了。也许你不知道的是,很多人早在高中甚至更早就自学过编程,有的人很早以前就参与过信息学奥林匹克竞赛(OI),有的地区高考前甚至会考 Python! ------ 因此我个人从来不以一个人的年龄大小来判断这个人的技术能力强弱,比你年龄大的人可能技术能力比你差,但更可怕的是一个初中生的技术能力也许等你大学毕业了都望尘莫及(我身边真实的例子)!

你可能会说,这些比我强得多的人肯定都去大厂了,我毕业找个普通公司干活就行了,我们是两个世界的人,毫不相关,关心干嘛

但是如果你试着投一投简历,你就会发现,即使你投小公司,也会有无数的 985 研究生跟你抢一个职位,因为行业实在是太卷了,僧多粥少 。而且从另一个角度来讲,我认为任何一个计算机科班生都应该以进互联网大厂作为自己的最终目标,即使这个目标最终不一定能实现:因为你对着 80 分考试,一般也就只能得个 60 分,如果你对着 60 分考,那就直接不及格了

考研 or 就业?

我到底应该继续深造还是直接就业?我个人觉得还是得分情况来看:

  • 如果你是 985,两电一邮,或是类似重邮、杭电、深大这种在计算机专业上深有造诣的院校的学生,我个人建议直接就业。因为考研对你的提升也许并没有那么大,大多数人考研不是为了"搞学术"(如果你是,当我没说),而只是为了博个学历罢了,但是以这些院校的学历背书,已经满足了大多数大厂的门槛(硬卡双9或者研究生的除外)。
  • 如果你是普通院校的科班学生,如果你的技术实力足够,我个人建议直接就业。对于一些不卡学历的大厂(例如字节,腾讯,美团等),只要你的技术够硬,是绝对有机会进去的,而选择考研实际上是赌 2-3 年后互联网行业得行情不会变得更差 ------ 可以往回倒推 3 年,想想你们的老学长找工作有多么容易,再看看现在的行情变成了什么样。
  • 如果你是民办院校或专科院校的学生,我个人建议能考研还是考研。并不是说这些院校的学生一定进不了大厂,但是这样的机会会非常少,而且对你技术的要求也非常高,考研也许是一个降低难度的最好方式。
  • 如果你是普通院校的非科班学生,我建议你考研。企业筛选简历时,一般会遵循"学历 > 专业 > 实习 > 项目"的优先级来对候选人进行排序,如果你学校不是那么好,专业也不匹配,那实际上你已经输了一大半,后面的东西也很难弥补这些缺失。
  • 如果你没技术,没学历,我建议你考研。其实大部分人选择考研的另一个原因就是,本科啥也没学到,读研再缓冲几年,多学几年知识,再去拿着应届生身份就业。

当然这也并不完全绝对,比如像我这种双非+非科班的 bg,按上面的情况完全应该考研,但我却选择了硬刚就业,这么做的结果就是路越走越窄,越走越崎岖,而且再也没有回头路。

三创/大创赛怎么样?我应该打算法竞赛吗?

相信大学生在大学期间听到最多的比赛就是"三创赛"或者"大创赛"了,老师通常会给出很诱人的例子,举例这些创业比赛为参赛学生带来多么大的机遇。但实际上,对于绝大多数学生来说,他们的参赛项目对于商业来讲极其幼稚,以至于他们连国赛都进不去,只能止步于省赛,而在这个阶段,你只是单纯的 PPT 写手,甚至不需要提交任何实质性的可行方案。对于时间极为宝贵的计算机科班学生来说,花近半年的时间参加一个甚至写不到简历上的比赛,实在太过鸡肋。当然,如果你打算保研,那当我没说,这些比赛还是很有意义的。

而对于算法竞赛,蓝桥杯和 ACM/ICPC 应该是大多数学生耳熟能详的两个竞赛,然而这两个竞赛的含金量和难度则有着天差地别 :蓝桥杯比 ACM 简单得多,但含金量也比 ACM 低得多。蓝桥杯的国一并不能为你的就业带来什么实质性的改变,但如果你有 ACM 的区域金,那么有的公司的 HR 就会疯狂找到你推荐你去他们的公司实习。看到这里可能一般的人都会选择去打 ACM 了,但是很遗憾的是,ACM 实在是太难了,很多人要花掉自己大学近一半的时间去集训,最终也不一定能打出来一个好的结果,更可怕的是,你的对手很可能又在你上大学前就已经有过类似的经历 ------ 没错我说的就是上面说过的 OI,如果你没有良好的程序语言和算法基础,我建议你不要轻易尝试。

如果选择就业,该选择什么方向?

对于我学校社团的社员,我一般会这么要求他们:首先,先把 C 语言学明白,然后,去看看有哪些就业方向是自己感兴趣的,在对着用人单位的招聘要求去针对性的学习

要求他们学 C 语言的原因是,C 语言语法和主流语言语法有共通之处,学会 C 语言对于学习其他语言有很大的促进作用,即使他们未来工作中不会使用 C 语言,也可以帮助他们在学习其它语言过程中了解不同语言在设计方面的差别,引发更深入的思考。

在这之后,就到了选择就业方向的时候了,计算机的就业方向很多也很杂,从软件到硬件,前端到后端,研发到测试,可以说是一盆大杂烩,不同的学习方向之间的差异也是较为显著的,因此,我一般会建议社团的社员们自行寻找感兴趣的方向,再针对性的学习。当然,除了对方向是否感兴趣外,也要时刻关注这个方向就业的难度:比如今年前端和测试就比后端好就业的多。

在学校什么该学,什么不该学?

在国内,无论你是顶级院校还是普通大学,或多或少都会有这样的问题:科班教育严重滞后,学的都是就业用不到的东西,你甚至可以看到有的高校还在教学生 JSP,甚至 Java Applet! 这时候肯定会有人说,学校教的都是通用的基础课,没有必要跟进新东西。但是,用人单位在招聘过程中需要的是实打实的能干活儿的人(当然另一个角度来说,校招其实更看重一个人的培养潜力),面试中也会涉及主流框架的使用和原理,如果你不了解这些,只会计网计组,这也是不够的。

但是你的时间就那么多,有的课学了也没用,那么什么该学,什么不该学呢?我个人建议:对于学校开设的计算机基础课程,例如计组,计网,操作系统,算法和数据结构,编译原理等,千万不要落下;但对于偏应用方面的课程,例如 Web 开发或是实训课程等,完全可以自己私下来学习

当你决定自己私下来学东西的时候,刚开始你可能会手足无措:我应该学什么?以下这些部分被认为是重要的:八股,算法和项目。八股指的是一些语言、框架或是中间件常问的面试问题,它更多是一种"捷径",如果你有足够的时间深入一门语言或是一个框架,那么最好,如果你没时间,那就背八股,"假装"自己好像懂了;算法指的是算法题,可以理解为上述蓝桥杯或者 ACM 的简单版,大厂技术岗基本都会或多或少的询问候选人算法题,如果面试答不出来,有可能会被直接挂掉;项目则指的是代码项目,尽管市面上很多人喜欢"走捷径",但我还是建议自己做比较好。

我应该花钱买课/报就业辅导班吗?

有的人到了大三大四的时候,发现再不学就要找不到工作了,正巧发现旁边有家 xx 机构正在开办"包就业辅导班",于是你二话不说就花钱进去学习,学了半年以后发现,这学的速度还没自己学的快,所谓"包就业"也是子虚乌有,最后白白浪费几万块钱。学计算机自学永远是第一解决方案,依赖他人是不行的

我不是计算机科班生,但是想干互联网,我应该怎么办?

正巧我就是这方面的"专家",我觉得如果有这样的想法,就应该猛猛的冲,而前提是,你对自己的技术水平有一定的判断,至少你觉得在有限的时间内你能够提升到被用人单位接受的水平。

我什么时候应该开始找实习?

这也算是一个老生常谈的问题了,答案并不一定,但是一般来说如果要找大厂工作的话,一般建议在秋招前至少有一段实习经历,这也就意味着:在大三下学期结束前,你应该已经拥有,或是即将拥有至少一段实习经历了。否则,你将无法赶上同年下半年的秋季校园招聘(简称秋招),只能在别人秋招的时间找实习,然后在春季校招补录(简称春招)时吃别人的残羹剩饭 ------ 而且这是你最后的机会!

一般来说找实习的时间线是这样的:

  • 大三上:开始投实习简历(因为你刚开始投有面的机会很少,早投早根据反馈修改你的简历),可以先拿小厂练手;
  • 大三下:开始投随当年应届生春招同时推出的暑期实习专项,暑期实习指的是在暑假期间进行的实习,一般会提供转正机会,如果转正成功,那一切就可以结束了,即使不成功,也可以攒一段实习经历;有的大厂可能并不单独设立暑期实习,或者暑期实习要求立刻到岗,如果有机会去,还是建议去的。
  • 大四上:投秋招简历
  • 大四下:(如果秋招没找到满意的工作的话)投春招简历

不是哥们,听你说的这些,计算机这群人也太卷了,他们到底哪来这么多精力搞这些玩意的?

虽然并不是对于所有人,但是我觉得拥有这个东西的人,应该会在学习计算机知识的过程中占据极大的优势:

那就是兴趣

如果你真的喜欢计算机,那么你学习这个东西的时候就会感觉十分轻松,如鱼得水;而如果你不喜欢,那你就不得不在痛苦的学习计算机的过程中,看别人像玩儿一样的做出了一个又一个新玩意,望尘莫及。

论信息差的重要性

计算机技术又被称为"信息技术",这便证明了"信息"的重要性,因此在计算机这行中,信息差显得尤为重要,有的人之所以快毕业了才发现自己差得远,正是因为他们根本不知道自己和他人的区别;或者有的人知道自己差得远,但是却完全不知道从何下手,而别的人可能已经"抱得美人归"了。

对此,我的建议是,一定要打破信息茧房,尽量减少信息差,多去加一些计算机实习群,或是积极参加学校的计算机社团活动,了解前沿的行业动态,参与一些开源活动(例如 GSoC 和 OSPP)。

最后...

其实这篇文章,酝酿了挺久,但是一直没机会提笔去写,今天突然想把这个东西写出来,于是一气呵成,一口气写了将近两个小时(从凌晨 0:30 写到 2:20),全文超 4000 字,总算是把我所有想说的都写了出来。

最后想说的是,这篇文章不是在散播焦虑,只不过是希望所有学生能够看清形势,了解现状,选择最适合自己的方向,我个人是很早就下定了决心要干这一行,但是直到现在对于我的就业方向也一直在摇摆,我相信大多数人也有这样的烦恼,因此特写下此文,希望能对一些人有所帮助。

相关推荐
且去填词31 分钟前
Go 语言的“反叛”——为什么少即是多?
开发语言·后端·面试·go
青莲8433 小时前
RecyclerView 完全指南
android·前端·面试
青莲8433 小时前
Android WebView 混合开发完整指南
android·前端·面试
37手游后端团队7 小时前
gorm回读机制溯源
后端·面试·github
C雨后彩虹7 小时前
竖直四子棋
java·数据结构·算法·华为·面试
CC码码8 小时前
不修改DOM的高亮黑科技,你可能还不知道
前端·javascript·面试
indexsunny9 小时前
互联网大厂Java面试实战:微服务、Spring Boot与Kafka在电商场景中的应用
java·spring boot·微服务·面试·kafka·电商
自燃人~10 小时前
实战都通用的 Watchdog 原理说明
redis·面试
boooooooom10 小时前
手写高质量深拷贝:攻克循环引用、Symbol、WeakMap等核心难点
javascript·面试
小鸡脚来咯11 小时前
Linux 服务器问题排查指南(面试标准回答)
linux·服务器·面试