一直没有好好的介绍过自己,这里写一篇文章来介绍下自己。

我是普通学校出身,硕士期间自学Java,秋招最终斩获 12 个 offer,包含中大厂、初创公司、国企 等各类型公司。自学路上遇到不少问题,但最终结果还是满意的,最终是在北京某互联网厂从事一线开发。

本科阶段(接触编程)

我是非科班出身,本科学的不是计算机,本科的专业是通信工程;虽然不是计算机专业,但也被认为是计算机相关的专业。课程基本都是和电子、电路原理、模电数电、通信原理等有关的。有几门课是和计算机有关的,分别是C语言、数据结构 和 计算机网络。还记得刚上C语言课程时,是一头雾水,课程作业也是同学之间互相借鉴的,这可以算得上是我第一次接触编程,可能是C语言太底层,太难学,或是没能做出什么东西,当时就没有提起我的兴趣。

但我当时对计算机网络比较感兴趣,于是就系统性的学习了相关知识,还记得当时为了考CCIE这本证,也是没日没夜的敲思科命令(有经历过的同学都懂,OSPF,MPLS、VPN等等),考证还花了不少钱。当时敲命令的感受是:卧槽通了,开心;怎么又不通,是没有路由吗,还是ACL没写。

在学完这些知识后,开始有点自信了,觉得自己有点能力了,就开始去找相关的比赛参加。还记得当时参加了中国高校计算机大赛网络技术挑战赛、新华三杯、华为ICT大赛,也都拿奖了;

不过这里要吹华为的一点是,华为的二等奖三等奖的奖品价值比华三一等奖的价值高出5倍+ 。

在大三暑假,也就是大四开学前,又参加了深信服的网络技术挑战赛,比赛过后直接参加了深信服的提前批校招,于是在暑假就收到了深信服的offer,收到offer就摆烂了,我的本科阶段就没有参加秋招了。。。

一年工作(决定转码)

深信服是个安全厂商,于是在进入深信服工作后,就开始往网络安全方向发展了,当时在深信服干的是技术方面的工作,并非开发。和编程有关的就是写过shell脚本,写过python代码,当时对Java基本不熟;当时听到最多的词就是:漏洞,加固,安全,逆向...

在深信服干技术时,经常想的一个问题是,这个为什么是这样。

公司的安全产品有bug就找开发,于是我就开始考虑我为什么要找开发,我想知道原理,想知道这个为什么这样,那我就成为开发。这就是我决定转码的直接原因。

既然决定转码了,那也得花时间学,那不如顺便考个研,在研究生期间学吧,于是我就考研了。

硕士阶段(开始自学)

我研究生阶段是科班了,但读过研究生的朋友们应该都知道,真正研究生的生活 并不是天天和教授们讨论技术,探索学术前沿,导师能教的东西很有限,而且有非常多的杂事要去做。特别是计算机,因为技术变化太快,高校里的教授们对代码的印象都是十几年前了,很少有能紧跟技术迭代的(但也不是没有,就是很少)。所以对于研究生来说,科班和非科班的差别不大,都是自学,几乎所有知识都是自学。

既然已经决定自学编程了,那么我应该学习哪一种语言呢?当时有三个选择:c++,Java,python。

首先本科学 c 已经劝退我了,C++直接排除了;而python比较火,并且科研基本都用python,但是经过多方打听,python就是打算后续工作往算法岗方向发展,而算法岗要多卷就有多卷,对于我这个没什么计算机基础,且是双非院校的来说,确实难度较大。于是经过一番深思熟虑之后,还是选择了Java。

为什么选择Java呢?比较重要的一点是市场需求大,学习难度适中,我的目标很明确,就是为了找一份开发的工作。而相比科班同学来说,我缺乏系统的计算机基础知识,所以还是选择学习难度低一点的Java。确定方向后,便开始制定学习路线。不得不说,Java要学的东西是真的多。。

关于Java学习路线,校招的同学可以看这里的内容校招Java后端开发学习路线

硕士阶段搞自学还是蛮有压力的,导师比较push,科研压力比较重。说难听点就是在学校还得和老师斗智斗勇,既要能满足老师的科研要求,又要自学Java,我当时基本就是按照这个学习路线来的。整个研一阶段是断断续续的在学,当时由于要应付每周的组会,同时还要有论文产出,只能尽量的在挤时间学。

在硕士阶段也积极的参加比赛,虽然当时没拿到什么好比赛的名次,但至少也把Java用上了,与团队写了个系统,算是提交了一个作品,也是一个经历。

几点建议

说几点自己的建议,共勉:

  1. 确定好自己的方向:搞清自己是要搞科研还是要找工作。如果是要搞科研,继续读博的话,需要好好搞发论文,发好论文。如果你是要找工作的话,尽早确定好自己的方向,什么时候开始秋招,秋招之前还有多久时间学习,规划好时间。
  2. 以求职为导向来学习:针对性的学习,可以大概率减少自己处在迷茫的时间,很大程度上还可以让自己少走很多弯路。有兴趣可以跟着我的校招Java后端开发学习路线进行学习。
  3. 想进大厂尽量早些开始刷算法题,这是一块难啃的骨头,我个人认为这一关是最难临时抱佛脚的。可以每天刷一两道,让刷算法题贯穿整个学习周期。
  4. 把握秋招:不要因为实习或者其他原因例如准备的不充分,直接放弃秋招,想着春招在上岸。不要认为准备好了才能去面试,春招机会更少,多的机会都在秋招,一定要把握住!
  5. 面试复盘:每次面试完之后及时复盘,发现哪里不太会要及时查漏补缺。

有些厂确实卡学历:比如现在的阿里要211以上的,考虑到招聘成本和时间,公司肯定是更愿意优中选优。但其实在互联网里,学历已经算是相对于其他专业要更加公平一点的。双非,二本进大厂也很多,例如美团、快手、字节等等都有很多普通学校出身的同学。

后记

Q:关于读研阶段的科研 和 找工作自学方面 如何平衡?

有些导师确实挺恶心的,你不听话,就以“延毕”,“退学”,“换导师” 等各种方式来威胁说教你。

有的导师看学生如果特别能干活就疯狂压榨,你越想完成毕业要求尽快毕业,导师就会把毕业要求提的越高。“你越能干,就越能干

没读过研的朋友可能会想,导师给自己安排任务,还能学到东西,这不是挺好的事情,为啥不愿意干呢?但其实读研时导师安排的事情,大概率是和自己求职没关系的,而且还要花很多时间。有的是做很多横向项目,说白了就是外包,只不过你是学生,价更低;有的是做科研项目,但现在的科研项目很多都是人工智能相关的,也就是未来目标是算法岗的,如果发不了好文章,或没有算法类比赛加持,求职时也很难(进大厂)。

如果遇到特别能压榨的导师,例如通过观察师兄师姐们的处境,那么要切记,不要在导师面前逞强! 越能干换来的就是越要干,我认为人是要学会装弱的,即:不是自己不想干,是自己真没能力干。

和导师相处 最好的状态是 :要做个能力很差的好人!就是除了能力差,对导师尊重,节假日带一句问候,正常回导师的信息,正常回导师的电话,实验室老师看到你时你就正常看他要求的(他走了再学求职的内容),就是表现出端正的态度

面试题专栏

Java面试题专栏已上线,欢迎访问。

  • 如果你不知道简历怎么写,简历项目不知道怎么包装;
  • 如果简历中有些内容你不知道该不该写上去;
  • 如果有些综合性问题你不知道怎么答;

那么可以私信我,我会尽我所能帮助你。


seven97_top
53 声望4 粉丝

程序员seven,记录seven的菜鸟成长之路。在线阅读网站:www.seven97.top