迎风而起——编程白纸转行后台开发的秋招总结帖
1.本人情况
先介绍一下本人情况,211本985硕,本硕机械工程,基本搞得都是些机械机构和控制之类的项目。19年年底决定转行,开始是看了些机器学习的东西,觉得自己毫无优势,便转向了后台开发,在秋招时也没有大范围海投,就是在深圳区域的公司基本投了一下,最终拿到了以下offer:
- 腾讯teg安全平台部go后台开发(实习部门转正)
- 阿里新零售icbu事业部java后台开发
- 美团基础研发平台go&java数据库开发
- 小米手机研发部性能解决开发-c++&硬件
- 腾讯cdg金融事业部c++后台开发
2.为什么决定转行
这是一个很现实也很纠结的问题。
我一开始选择机械是因为自己在机械方面比较开窍,相关的学科学的也都很不错,所以读研继续走了机械方向。但是后来慢慢学不下去了,感觉越来越吃力,加上找工作也变得越来越难,所以决定转行互联网,一是感觉学起来还好,二是赚的钱多嘛,所以毅然决然地开始转行。
关于选择什么方向,想说的只有一句:一定要尽快决定好。
我之所以选择后台开发是因为本身是机械,所以不可能发出相关计算机方向论文,走算法竞争力很低。而后台可以依靠实习和自己搞项目撑起简历,加上后台开发缺口比较大,对于我这样的非科班很友好。
语言选择c++是因为c++本身是一个很基础很庞大的语言,对于没有编程基础的我来说,可以培养出编程意识,且c++学会后一通百通,上手其他语言也很快(所以秋招的时候在java岗和go岗也能找到工作)。
你知道要去哪里,才能找到路。想好自己要干什么,然后坚定不移地走下去才是成功的关键。
3.我是怎么学的
我的学习道路说起来比较复杂,因为作为一个这么多年纯机械搞过来的人,除了大学c语言课,基本没接触过编程类的东西。
- 一开始只能从最基础的语言学起,就捧着c++ primer plus走上了这条路。学语言还是很痛苦的,后来配合着B站视频学起了语言,结合自己的上手会学得更快一点。
- 然后直接就开始了剑指offer刷题,语言学习的同时就做题,发现其实做题的过程中可以找到自己在语言学习上的不足,互相印证。
- 还有就是看源码,libevent的源码是很适合新手的,边看边查,可以迅速理解事件驱动之类的东西(记笔记是个很好的习惯,我是以博客的形式记录了下来。https://blog.csdn.net/yanchenzhi 附上我的博客吧)。其实基本是对着书、博客和源码花了较长的时间才搞定了下来。
- 再然后就是自己试着写一写简单的聊天器这样的小东西。
- 最后是搞一个高级点的项目放在自己的简历上。
由于我之前完全没有互联网知识,所以上述学习路线不适合所有人参考,看一下就可以了。
对于后台开发来说,需要学习的其实比较多,下面列出一些自己认为有用的书籍和课程:
c++
- c++快速入门系列-小甲鱼(B站):这个可能仅适用于我吧,之前什么语言都不会的新手快速上手课程,基本是两倍速下来的。
- 《c++ primer plus》:我也不知道第几版最好,反正对我这样的新手来说已经够了,更多的是当字典一样使用。
- 《STL源码剖析》:这个我没看全,为了追求速度很多是直接博客上赶出来的,不过书是真不错。
- 《effective c++》:看了一点被我搁置了,但是对于使用c++很有帮助。
操作系统
- 清华大学 陈渝老师公开课(B站):全面的讲述了操作系统的知识和原理,一些经典的操作系统问题都有涉及,强烈推荐(这个是有很多博主做了笔记的,我是二倍速配合着博客迅速搞定的)。
- 然后是很多博客了,操作系统方面我没看过太多,所以面试的时候也是我的弱项,大家可以自己去看看一些书籍(APUE什么的)。
计算机网络
- 遗憾,我B站看过的视频没了,是一个工作几年的老师讲的,从应用到实践,讲的比较透彻,让我这个门外汉迅速入门了。
- https://blog.csdn.net/iwanderu/article/details/103795715 这个博客是一个很全面的计算机网络整理博客。
linux
- 这个我学的比较杂,我看很多人推荐鸟哥的私房菜,但是我觉得太多了,因此直接看视频学习的linux编程,视频是一个什么王道程序员课,需要的话可以私信我。其实linux最快熟悉的还是上手练,学了就练,接受一个新系统的最好方法就是使用,装个虚拟机玩就行了
数据结构与算法
- 《大话数据结构》:这个是比较适合新手的书籍,可以很快带你了解这部分知识,推荐。
- 《剑指offer》:难度适宜,适合练手。
- 《程序员代码面试指南》:适合模块化练习,可以入手。
- leetcode+牛客:算法和数据结构只有靠刷题才能完全理解,做起来就完事了。
数据库
- mysql:必备知识库,除了会操作,还需要掌握一些相关知识,比如索引之类的,对理解数据结构也有很大的帮助。
- redis:也是比较常用的数据库,很多知识重叠mysql,掌握二者的不同即可。
- 这部分知识看博客也比较容易理解,书的话有助于你系统化的梳理:《redis设计与实现》。
设计模式
这部分我没有怎么认真看过,基本都是靠项目和博客来理解的,《大话设计模式》据说是不错的一本书。
4.我的秋招经验
面经什么的就不多说了,可以翻阅我之前的帖子。只能说一个好的实习经历还是很重要的,在秋招的时候会更有主动权,所以我拿到的实习offer之后也都拿到了秋招offer。
到现在其实也是一个门外汉,从没接触过任何计算机相关知识到现在秋招完毕也就大半年时间,囫囵吞枣学了很多知识,基本都是冲着面试学的,并没有系统地梳理过。
我觉得秋招就是:信息+实力+学历+运气。
- 信息:这是很重要的一个点,空位就那么多,先到先得,拿offer如此,到之后正式谈薪的时候也是如此,有一手信息才能占据主动权。
- 实力:无需多说,好的项目或者实习、竞赛、论文、成绩都是你实力的体现。这个时代已经不仅仅是对口找工作的年代了,学习能力也是重要条件,这也是转行人可以存活的主要原因。
- 学历:其实学历有没有那么重要这个事情不能一概而论,好的学历可以证明的只有你的学习能力,剩下的都是你的学校经历去丰富的,所以我把学历放到了第三的位置。
- 运气:这是一个玄学的事情,没有办法说明,但确实会有影响,所以放在了最后。
还有很多点需要注意,都是靠自己去打磨的。
这里想说的就是:坚持学习,放好心态。秋招是个双向选择的过程,不要因为一两次面试的失败就崩溃。这是一场拉锯战,跑到最后才能胜利。比如我实习offer都是4月多5月才拿到,前面失败过很多次,换了好几个部门才成功的。有时候不是你不行,是其他一些原因导致的,不要一味陷入自我怀疑中。
5.科班重要吗
实话实话,重要。当我秋招完回过头来看,自己相差的不止一点,在知识面和知识系统体系上要加强的还有很多很多。
但非科班不是限制你的因素。人不能给自己找借口,正如我之前说的,学习能力才是硬通货。
保持自信比你的出身更重要。打个比方,面试的时候无论谁问我觉得自己的优势是什么的时候,我都是回答:学习能力,同样的知识和时间下,我相信自己可以学的比很多人快。每个人都要有自己的标签,才能让对方记住你。
所以这也是我单独抽出这一点说的原因,保持自信,保持积极学习的态度。
6.迎风而起
当我隐藏了一些信息后,似乎我的转行之路是成功的,但其实:
- 字节实习简历挂&秋招提前批三面挂&秋招二面挂&秋招二面挂
- 华为一面挂
- 大疆笔试挂
- 深信服大牛批一面挂&提前批二面挂
- 京东简历挂
加了最多hr的华为直接一面挂无缘,投入时间最多的字节四战不成,说明自己还是不够优秀。
所以想说还是:要一直学习鸭!当你不学习的时候,你就是在退步。
由于本身机械,所以很多时候都是只能搞自己本行的东西,在一些机械装置上一耗就是好多天,加上论文的压力和课题组的其他工作,投入找工作的学习时间还是比较少的,所以很后悔自己在最有时间的研一和研二上半学期没有规划好目标,秋招结束后才发现还有好多东西没有来得及学习,在此引以为戒:最适合学习的时间就是现在开始。
到这里也说了很多,走上这条转行路上的很多感悟都是无法写出来的,只能自己消化。把我的座右铭送给大家一起勉励吧:当无法抉择时,就走最难的那条路。
希望大家都能有美好的未来,一起好好努力。
最后,起风了。今年的局势骤乱,风吹到了各行各业,无人幸免。躲不过的风,就只能迎风而起。于是,迎风而起,舞弄大势。
#秋招##内推##实习##面经##笔经##C/C++#