机械硕士转计算机,我是怎么做的?
大家好,我是Simon郎
的学弟Snow坤
,我秋招时靠着学长给我分享的学习资源在校招时拿到了许多一线互联网大厂的offer,其中包含百度
、阿里
、美团
、携程
、bilibil
等。
我本科专业是机械工程及其自动化,硕士专业是机械电子工程,从进研究生开始,我就意识到机械行业发展缓慢,就业前景远不如互联网。
思来想去,我最终确定了互联网
作为我未来的就业方向,但是互联网职业是个很宽泛的概念,我应该主攻那一方面呢?
于是乎,我打开boss直聘
、智联招聘
、猎聘
等主流的招聘平台,结合我浅显的认知,最终确定了开发和算法二选一
,
对于这两个方向,我一直思考着这样几个问题:
1、我喜欢算法,但是算法竞争太大了,开发可能更适合我?
2、我是研究生,如果不走算法岗,读研的意义在哪里那?
3、我是非科班,7年机械转计算机,我应该学些什么?
1、算法 VS 开发
1.1 自我衡量
根据自己的调研,我发现在大多数情况下,算法岗需要五大标配:即「论文、比赛、实习、项目、学历」,一般想进大厂的话,五者至少得有其三。
所以我认真衡量了自己的核心竞争力:
末流985,非名校
机械专业,没有系统学习计算机的背景
实验室大多数是仿真项目,项目拉垮,工程能力差,毫无亮点
没有比赛,论文较水
经过以上的总结,我发现除了学校是985(末流不知名)以外,可能在简历投递时不至于减分,其它的都是减分项,这样的我很难达到大厂的门槛。
1.2 认知开发和算法
我是一名研究生,如果我不搞算法,我心里总是很难受,我觉得研究生白上了,这样的心理状态在我脑海中挥之不去。
最终,我把我的想法和学长彻夜交谈,学长说现在的我进入了一个很大的误区:
做开发不是做了几个课设的小项目,就算入门开发了的,
「开发的难度比我们想象的高很多」
。
首先,他举了个最简单的例子,做算法,用tensorflow
或者pytorch
,没有开发人员写好这些工具我们用什么呢?写出这两个工具比构建一个神经网络难多了。再比如,大数据下,我们都在集群上跑训练数据,没有开发人员创造这些大数据平台,我们用什么跑代码呢?
不仅如此,「开发岗的范围比算法岗大、岗位更多、可研究的点更多」。所以,并不是说硕士或者博士就一定要做算法,开发也有很多值得研究的东西,难度也非常大。
目前算法和开发的
「薪水差不多」
,所以不存在为了高薪选择算法的说法算法和开发从头学起的
「难度差不多」
,所以不要觉得哪个入门快就选哪个就目前的形式来看,
「算法确实比开发竞争更大,就业难度更大」
算法和开发都要加班,不存在哪个加班少,加班情况主要看公司和部门
所以,如果你转计算机是为了更容易的就业,你就选开发。其他所有的考虑,都取决于你的个人兴趣。从事一项自己喜欢的工作,真的是非常非常重要的。
经过和学长认真交流并结合自己的实际情况,我确定了开发作为我的职业方向。
2、开发岗的学习路线
选好了就业方向,下一步就是在学长的帮助下,结合自己的实际情况一步一个脚印的制定好学习计划并坚定不移的执行下去。
我认为学习路线没有最好的,只有最适合自己的,关键是坚持下去。
我可以简单的分享一下我的学习路线:
Java基础——数据库使用(主要是MySQL)——框架使用(主要是SSM,SpringBoot等)——中间件使用(redis、mq等)——Java深入(并发、虚拟机)——MySQL深入——源码(JDK、Netty等)——分布式相关(一些相关的概念,框架如SpringCloud、dubbo等)——开源中间件(dubbo、arthas等)。
因为我主攻Java开发,所以是Java相关的路线。
总的来说,这条路线是由浅入深,从使用到原理,视野也越来越开阔。
当然,如果你想在秋招中披荆斩棘,你还要学习数据结构与算法
、计算机网络
、操作系统
,这几门是贯穿整个学习路线,并且要反复的学习。比如会了Java的基本语法后,就可以开始看数据结构与算法了,差不多有概念了就可以去刷题了。
3、笔试与面试心得
笔试其实没什么捷径好走,刷刷刷!但是不能闷头刷,还得在刷题的时候有自己的总结,相同类型的题做到举一反三,这样刷题的效率才高。同时,不大理解或者一知半解的题目,可以收藏下来,隔段时间反复刷。此外,从笔试的角度,可以在刷的过程中选择一些热门的题目优先去做。
对于应届生而言,技术面试最多的还是基础+项目
,也有一些开放性的题。
不同的面试公司,可能由于技术栈、风格的不同,面试内容也会有所区别。比如字节比较偏计算机基础和算法
,阿里美团比较偏Java基础和项目
,腾讯比较偏计算机基础
等。了解不同公司的面试风格,有利于自己有针对性的复习。
面试的过程中我觉得比较重要的一点是要自信
,有时候印象分也很重要,想象一下自己如果是个面试官,想招聘的是什么样的学生。还有就是要坦诚,不会的不能乱说,面试官都是老江湖了,一眼就能看出来。此外,最好还得为自己准备一点加分项,比如项目亮点
、竞赛
等,在面试的过程中主动引导面试官去提问你的加分项。
4、学习资源分享
在最后部分,我要把我学习的视频
、文章
、面经
、笔记
、电子书
籍等相关资料分享给你们,我分享的视频不仅仅局限于秋招,在日后的工作中也可以进行查漏补缺。
除此之外,我把我收藏的架构师、大数据
的相关资料也分享给你们,有兴趣的可以自取。
Java秋招全套:公众号回复Java全套
包含Java基础、微服务、实战项目等。
Java架构:公众号回复Java架构
包含架构师基础阶段、中级阶段和进阶阶段的相关视频和资料。
大数据全套:公众号回复大数据
包含大数据必学的框架,大数据实战项目
电子书:公众号回复电子书
基本上包含开发中你所需用的电子书
算法和刷题笔记:公众号回复算法和刷题笔记
包含必学的数据结构,牛客网剑指offer题解笔记,LeetCode题解笔记
面经:公众号回复面经
好了,今天的文章就到这里了,我是Simon郎
,感谢学弟Snow坤
的分享,大家不要忘记获取资料哦,我们下篇文章见!
往期推荐