背景介绍
本人本硕985材料科学与工程,学了六年材料,从我本科舍友转行,到我硕士师兄转行,到认识越来越多转行的人,终于,也带动了我这颗躁动的心,明白了什么叫及时止损,最后一年醒悟,自学计算机,怒转码农。我选择的是Java开发入手学习,一是因Java的生态比较成熟,学习资料也比较多;二是因为Java的市场需求特别大,更加容易上岸一点。
在lzy,lyq,yp等同学的帮助下,学习了一年半,也算是成功上岸。
春招:
阿里,腾讯,快手,招行信用卡中心
秋招:
快手,腾讯,字节跳动,百度
转行之路
为什么要转行?
兴趣爱好
这个理由看似空泛,但其实对我来说却真实存在,因为化学材料这种实验性学科具有太大的不确定性,需要经过大量重复试错才有可能取得小成果,甚至继续不会,大家小时候都听说过爱迪生制作电灯的故事,失败99次才成功,虽然是个故事,但也告诉了我们,这条路注定 大部分都是在试错,只有经过不断的试错,才有可能取得成功,大家都知道爱迪生,但是更多的是失败了99次 还在继续失败的科研人员没人关注。
因此 我选择一个容易取得成就感的方向,比如写出一道算法题,开发一个系统 都容易让人取得成就
行业安全系数
材料化学等行业,充满着许多潜在的危险,比如我本科毕设节出的二氯甲烷、三氯甲烷,以及很多实验室存在的氢氟酸等,都需要学生去操作,如果毕业后进入对应企业上班,同样需要操作这些,生命可贵,为什么同样是寒窗苦读,怎么有些专业就要用自己的身体去奉献呢?
具体可移步知乎霍华德大佬的回答:https://www.zhihu.com/question/452810376/answer/1828501401
薪资待遇
薪资待遇也确实是考虑的一部分,同样的大学毕业,谁想比别人薪资低一半呢?当然也有人说计算机是青春饭,材料机械越老越吃香,确实如此,请看下图
生化环材越老越吃香
当然上图可能是开玩笑,但是人在这一辈子最需要用钱的时候是20-30岁的时候,这个时候不赚钱,娶不到老婆,买不起房子,等五六十岁再来赚钱有什么意义?
及时止损
前两天看到个词,叫温水煮青蛙,回顾自己大学研究生生活,说的太对了。选志愿的时候,听说材料是21世纪有前景的专业,听说计算机饱和了,听说找工作不看专业,看个人能力,成功的被第一志愿—材料录取,大学研究生阶段步步温水煮青蛙,沉浸在自己学院出了多少个院士,发了多少篇sci,争取保研,心中不断安慰自己:”都是混不好的才劝退,我们985材料应该混的不会太差“、”读完研究生就好了“、”计算机是青春饭,35岁就失业了“,在这样一种自我安慰下带着但行好事 莫问前程的原则,直到研究生阶段,在某些朋友的劝退下幡然醒悟,也曾想过学了六年材料再转是不是很亏,但是这里我想说,及时止损,错误的方向前进就是一种进步,何必要继续错下去呢?
综上:开始转行
开始转行
在没开始面试前,我是从来不敢想自己能进入大厂的,一开始的目标只是进一个三线互联网或者硬件公司,只能说闷头只管努力,当你抬起头来的时候发现自己已经到了曾经不敢想的地方。
19年4月开始,认识到科研做不下去的时候,就准备开始转程序员。我选择了当下最热门的人工智能开始学习(再一次盲目跟风),瞎学了一个月python,深度学习,tensorflow,感觉就是闭门造车,东学一下,西学一下,完全找不到方向,而且毫无成就感,也不知道在做什么方向。直到认识了一个大佬同学,大佬告诉我,我这样学算法,明年找工作只能成为失业大军中的一员,给我讲了很多算法的现状,什么诸神黄昏,天地寂灭等。告诉我及时换方向,虽然有点不舍,但是这个时候我已经明白了及时止损的道理,于是放弃了一个月的算法学习,开始走java后端的路线(这个时候是5月中旬)。
执于表面,不究原理
Java基础,mysql基础,servlet,spring框架,mybatis框架,springmvc框架
第一阶段就冲的很快,完全不理解原理,只知道照写代码,甚至觉得短短一个月多学这么多感觉计算机也不是那么难(太年轻==)。学了点java,html,sql语法就急于找一个实习证明自己,于是上boss直聘去学校旁边的一家外包公司面试,面试啥都不会。问我JAVA的三大特性我都不知道,当时就感觉自己忽略了很多细节,在外包公司干了几天,啥都不会,代码也看不懂,再此期间小哥告知我去学习ssm。于是就一头扎进了ssm的学习,照着操作一遍还是似懂非懂,后来在b站看的黑马视频课程,总算是大概明白了ssm怎么操作和基本原理。
复盘: 无人指路,瞎猫乱撞,会白学很多无用的东西,也没有找资源的途径
讯飞实习,开始实践
当时趁着,暑假出去玩了一趟,这个时候已经8月中旬了,在boss直聘上收到来自科大讯飞的一条消息,问我愿不愿意去实习,随后就去参加了面试,这个时候已经能答出来一点基础东西了,包括synchronized的用法,事务的ACID这些,答得一般般,可能看到我学校不错,还是让我过了面试。进去之后做了一个运营管理平台,大概用到的技术栈就是ssm,加上Shiro,Redis这些,因此学习了一些权限管理框架和Redis。在讯飞做的就基本是这个事情,一些CRUD,在当时也做得挺开心。这个时间段是比较辛苦的一个时间段,因为公司离学校是12公里,所以我早上6点多起床,然后坐车一个多小时到公司上班,晚上下班七点多到学校还没吃饭,有时候晚上回来还要做点实验。不过那个时候总归是开心的,这个时间段,很幸运的认识了一个重要的同学,zy同学(目前就职于拼多多),在这之后,我终于不再是闭门造车,有人给我讲就业行情,有人给我讲大厂招聘消息,有人帮我改简历。元神给我提供了很多有用的资料,还教我如何去描述项目,并且让我少走了很多弯路 。
在此期间学习了一些RedisCluster架构,参考https://www.nowcoder.com/discuss/364714?type=post&order=time&pos=&page=0
复盘:有人带路,视野会开阔不少,了解行情和正确的学习方式很重要
自学微服务、分布式、高并发
11月底十二月初,快三个月了,我就从讯飞离职,学了点中间件,准备自己做一个项目,当时不知道做什么,我从网上找了,是一个微服务项目,用的技术栈还挺繁杂,SpringBoot,SpringCloud,RabbitMq,Redis,MongoDb、ElasticSearch等,之后我再自己加入了一些功能,包括延时队列、分布式锁、消息队列重复消费、消息丢失、幂等性等方案解决办法,这也成为了我春招能吹的一些微服务,分布式的一些东西。不过后面事实证明,这种项目漏洞还是很多,幸运的是面试官都没有深究。
复盘:SpringCloud还是太重了,个人感觉小公司用的多,可以学习Dubbo、Grpc这些,并去阅读源码或了解原理,能够更好的跟面试官交流。
巩固基础
操作系统、网络、数据结构、以及Java相关基础
1 | Java基础:缓冲池,String,hashcode和equals,抽象类和接口,static,final,多态; |
面试阶段:
因为一开始就没想着去大厂实习(导师不可能同意),听说阿里可以直通车,2月底,投了阿里巴巴试试,也没打算过,就想着练习练习,结果很顺利的面的两个部门通过了,当时想多试试,又投了腾讯,结果都过了,当时是出乎我意料之外的。当时我是第一批拿到意向书的人,拿到阿里意向书的时候,那天晚上高兴的没怎么睡着。因为听说阿里流程很慢,要很久才能入职,于是投了个流程快的快手,所以上半年在快手实习,之后又去了阿里实习一阵,后续秋招开启就没什么太多惊喜的了,因为无非就是重复春招的流程,很幸运的时候,面过的公司都拿到了offer。那么在这半年面试期间,其实也是穿插有一个学习和复习的过程的,主要是针对源码和面经主要如下:
1 | 需要了解的源码: |
面经不附了,牛客一堆。
复盘:面试经验的积累和思考非常重要,有些知识是在面试中学到的,所以一开始就要多去面试
offer选择
offer选择需要考虑的很多,待后续贴出~
总结
以上就是我为什么转行,以及转行的经历,开发这一行不需要很强的天赋,只需要踏踏实实的学上一年就可以,正确的学习路线非常重要,欢迎大家关注本公众号,并后台回复”后端学习路线“获取学习脑图~