今天分享经验的是学习群一位即将毕业的材料学博士,他去年年底开始学的大数据,目前已成功入坑,也收了一些大厂的offer。
一、自我介绍
本硕博都是985材料化学专业(一条路黑到底。。。),之所以一直读化学专业是因为学得还好,一路保送读研、读博,温水煮青蛙,就这么一路走来了。我想着有博士文凭,总归不会混的太差。
直到完成了博士学业开始打算找工作的时候才知道行情是多么的惨淡、多么的坑,费了很大劲儿,找到了化学材料类的目前最好的企业的offer,开的薪水一年打包下来和计算机专业类硕士的起薪差不多。薪水低就算了,还是在偏远的工作地址,工作环境恶劣,对身体危害极大,各种接触有毒有害的化学品,考虑到以上种种,果断选择跳出这个大坑。
我平时爱折腾,也写过python啥的,参加过数学建模竞赛拿了奖,对编程了解些。之后看了峰哥的微信公众号文章,加了微信,峰哥也蛮热心和负责的,反复询问我是否坚定了转大数据的决心,毕竟现在已经是博士了。我回顾了之前读研经历,打消了顾虑,毅然决定转行。
二、学习面试过程
按照峰哥提供的学习路径: Java SE -> 项目 -> 多线程 -> JVM->大数据框架的路线 开始学习。有不懂的地方,我先去搜索引擎查,查不到了再去请教峰哥。
大数据框架的很多,需要根据自己下兴趣选择框架学习,也尽量结合企业的需求学习。我选择的方向是数仓开发方向,包含离线和实时数仓,因此学习了Spark和Flink这两个框架,以及对应的实战项目。
一边学习一边面试, 通过面试倒逼着自己去学习和理顺知识点,还有刷算法题 。听了峰哥的建议,我先从上海的初创公司开始面试,刚开始比较顺利,直到面试到一家D轮的公司,之前都面试的还好,技术二面问了两道简单的算法题,没写出来,结果直接挂掉。因此我意识到,算法的重要性,开始补充数据结构和算法的知识,狂刷算法题。
春招开始之后,广投大厂的实习岗位。有一点要注意的是,很多企业的大数据岗位招聘是放在后端开发或者软件开职位里面的,比如阿里就有数据研发岗和Java开发大数据方向,这些岗位都可以投递。
具体面试题,我就不罗列了,牛客网上面经帖子很多。我就说下面试的几个点:
Java语言基础及JVM :
越是大厂越是注重基础知识的掌握情况,基础的知识一定要会,峰哥提供的面经就是很好的资料。针对面经,有不懂的再去看书、看帖子进一步理解;最好准备一两个高频面试题的源码解读。
JVM是大厂的必考项,阿里,网易都是一上来就问JVM的。这部分内容比较抽象,我自己学习是看JVM视频入门的,在结合JVM书籍深入理解。JVM知识也很重要,后期学习内存型的大数据框架(Spark、Flink)都需要用到JVM的知识作为基础。
讲解框架的时候可以结合简历上的项目去说,这样的话,即使你将框架知识卡壳了也可以通过项目实例讲解来糊弄过去(仅个人经验)。大数据的岗位主要有两类,业务岗和技术平台开发岗:
面业务岗的话,要好好准备SQL和业务模型这一块,数据流的走向,数仓业务建模等。技术开发岗的话对大数据框架的基础知识掌握很高,我面阿里云的时候全程深扣MapReduce原理和底层细节,被虐的很惨。(面完后,两天内把MR的原理前前后后啃了个好几遍,对,就是面试倒逼着你去学习去啃书)
计算机基础知识:
数据结构和算法:这一块内容也是重中之重,而且要想走好IT这条路,是很重要的。我学的是极客时间上的数据结构与算法之美这们课,讲的还蛮不错(善用搜索引擎,很容易就能找到学习资源)。学好这部分内容,也能加深理解框架的设计思想,也能看懂一些源码。
算法题的话,剑指offer要好好刷,要多刷,好多公司真的就是直接出原题。 《程序员代码面试指南-左程云》这本书也建议去刷,按照算法题考点进行了分类讲解,正好是Java语言写的答案,答案解析写的通俗易懂。这本书总结的都是高频题目,这本书刷透了,国内大厂算法面试都不是事儿了。
计算机网络和操作系统看面试题学习就行了,高频考点就那么几个题目。操作系统可以和jvm放在一起学,很作点都是相通的。
数据库要好好学,因为我自己是往数仓这一块发展。
要提前准备好自我介绍,最好两份,一份针对技术面,多说点技术项目方面的内容;一份准备HR面,多说些自己的学习,项目经历,自己的感悟以及学习、心得总结。
面试对话过程中的套路,我也是从峰哥学到的,尽量往自己知道的、懂的内容引导。一场面试也就40-60分钟左右,你答的内容多,占据的时间长,面试官问的自然也就少了。尽量用下沉式的对话方式,比如问是否了解HashMap,你就可以回答这个式是什么,有什么特点,底层的实现,数据结构的知识;
如果面试官没打断,还可以接着往下延申,讲讲CocurrentHashMap在不同jdk版本的实现以及并发等问题。面试中,你能主动说出来,面试官会认为你的基础是很扎实的,这是个加分项。
到技术主管面或者HR面,对于转行的,一般都会问到你为何转行这个问题。这个要实现做好准备,这个回答还蛮重要的。我阿里技术boss面的时候,回答的不好,被一通diss。其实这个也不是学历歧视,算是一种压力面吧;提前准备一些说辞,在压力面试之下,承认自己非科班的不足,同时能够有理有据的回答,展现出自己的自信和底气,这应该就是面试官想要的答案吧。
最重要的一点是面试后要及时总结复盘,针对面试总暴露的不足,赶紧查缺补漏,做到考后一百分。面试过程就是个升级打怪的过程,不断反思总结,才会有提高。
三、总结
我现在也还在不断学习和面试中,目前拿到了华为,网易以及好几个创业公司的offer。校招求职之路还在进行中,接下来还得复习之前所学和深挖框架原理,同时还要多刷算法题(要认识到自己的不足,赶紧弥补~~)。希望秋招能拿更好的offer。
刚开始做决定,以及之后的学习过程,一路走来都不容易,身边朋友同学的质疑以及刚开始刷算法题的那种怀疑到自我智商是不是欠缺。。。尤其是读到博士才想到转行,压力和阻力也是蛮大的。转行一定要趁早,别像我这样温水煮青蛙到现在,压力会大很多。执行力很重要,执行力就是定时定量的去做,去完成。多向优秀的人学习,峰哥就是个很好的例子,多和优秀的人学习、交流,自己慢慢也会精进起来。
--end--
特别推荐一个分享架构+算法的优质内容,还没关注的小伙伴,可以长按关注一下:
长按订阅更多精彩▼
如有收获,点个在看,诚挚感谢