Java干了半年,我机智地跳到了大数据开发

今天这位是我学习群的一位同学,他在六月份找我交流了一些关于大数据学习方向,学习的时候也给予一定的帮助。经过几个月的学习,目前已经入职一家新公司做大数据开发,所以让他总结一下分享给大家。

---

我的情况
我大学之前基本没有接触过电脑,连打字都不会的那种,大学胡乱报了机械专业。 大二的时候,偶然接触到编程。 先后学了 C++、前端、Java。 其实大学里面没有一个明确的方向,导致无论是后端还是前端,总是学一会这个学一会那个,没有多少积累,所以明确一个学习的方向很重要。 找实习那会儿,连测试的实习都找不到。 了解到学 Java 比较容易找工作,所以开始学习 Java。 大三暑假,淘宝买了一套黑马的 Java 课程,学了半个多月,校招找到一家传统的公司做 Java Web 开发。 大四上学期实习了一段时间,大四下学期请了两个月的假回学校做毕设。 在学校花了 20 多天的时间,刷了一遍《剑指 Offer》。 但是由于春招基本上已经过去了,再加上毕设的压力,也没有找到新的工作。 方向思考
也就是回学校做毕设的那段时间,也一直在想将来往哪个方向发展比较好。 无意间了解到大数据,碰巧我在微信搜索里面搜大数据相关时,搜到了锋哥的文章。 然后就加入了锋哥的星球,也加了锋哥的微信、并且进了学习群。 抱着试试看的态度,向锋哥说明了一下情况,锋哥让我学习他给的一些资料项目,也跟我说面向找工作的学习和实际工作的学习是不一样的,这点是我以前没有意识到的,也是很重要的一点。

Java干了半年,我机智地跳到了大数据开发_第1张图片

开始学习
从 7 月开始真正开始学习,但是因为前期没有什么计划安排之类的,基本也没复习多少。 差不多从 7 月底开始制定一些计划,把面经上的内容又重新整理了一下、总结了之前刷过的题、学习了三个项目。 我是先整理的面经和总结的算法题目,后面才开始学习项目的。 学习过程中感觉面经上的内容真的是很多,记不住。 把面经上常见的内容整理之后,也差不多忘完了。 然后开始学习项目,每个 Live 听的差不多有 10 遍。 Live 对应的常见题目,看的应该有几十遍,像 Hadoop 相关的流程,也都在纸上画了不下 5 遍,最后基本上都背了下来。 知识准备 9 月底的时候感觉准备的差不多了,也快国庆放假了,所以打算在国庆之后投简历。 国庆 7 天,花了半天时间去公园转了转,剩下的时间用来模拟面试,自己问自己答,用手机给自己录音。 刚开始发现自己基本上回答地不行,然后就把常见的内容都背了下来。 顺便也更新了一下招聘网站上的微简历。 简历投递 国庆之后(10 月 8 号)开始投简历,前期主要在 Boss 直聘上沟通,因为 Boss 直聘上对方回复之后才能发送简历,很多都显示已读,并没有任何回复。 第一周(10 月 8 号-10 月 12 号),前两天沟通了大概 10 来个岗位,但是并没有收到回复,感觉心里有点凉凉的。 然后就跟锋哥聊了聊,改变了沟通时候的招呼语。 收到了个别的回复,聊了几句之后,就没了下文。 跟锋哥倾述了一下,锋哥对我说,你才沟通了 10 个,等你沟通了 60 个、70 个再说。 第二周(10 月 14 号-10 月 18 号),我在便签中写好了常见的打招呼用语,比如,“您好,请问该岗位还招人吗? ”、“您好,请问招一年工作经验的吗? ”。 中午吃过午饭之后,差不多 12 点,到下午 1 点多是午休时间,我就趁着这个时间,疯狂地去沟通,只要是大数据相关的,我提前复制招呼语,直接复制粘贴。 想联系的时候,联系个 20 家以上,心情不好时,少联系一些。
这周结束的时候,差不多联系了 120 个岗位。 其中有 7 成的没有回复,有 2 成的直接回复不招应届生或者不符合要求,最终只有 1 成 15 家投出去了简历,但是简历投出去之后没有之后的回复。 这个时候,心态真的是炸了,无心复习,刷了一步电视剧。 周末我又联系了锋哥,锋哥也帮忙看了简历,最后说可能是毕业没有几个月的原因。 锋哥劝我稳住,继续投。 第三周(10 月 21 号-10 月 25 号),继续沟通职位,同时也在拉钩上和智联招聘上沟通。 Boss 上感觉剩下的都是重复的,一看就感觉是之前沟通过的公司,就又沟通了 20 多家。 拉钩上,把搜出来的大数据相关的,全都投了一遍。 智联招聘上,也沟通了 100 多家。 21 号下午的时候,发现拉钩上有一个被放在了待沟通,其他仍然基本上没有回复。 我又查看了那个待沟通的职位,发现招聘针对的是 20/19 届的应届生,暂时叫做 A 公司吧,突然感觉有点希望。 笔试
22 号下午,突然收到了 A 公司的笔试邀请邮件,邀请 23 号下午笔试,因为好久没有做过笔试题了,心里也有点紧张。 本来晚上有个同事过生日要一起吃饭的,一下子无心吃饭,说自己有事,回住的地方复习。
不知道如何准备,跟锋哥沟通了下,然后在网上看准之类的网站上搜到了一些信息。 只是知道了题型,有简答题、英文题、SQL 题、和三道编程题。 稍微复习了一下,图个心里安慰。 23 号早上请了假,早上过了一遍常见的算法,下午就开始笔试。 笔试 90 分钟,都是一些基础,数据结构、网络、算法、SQL 之类的。 英文题问了设计模式、让用英文作答,虽然之前就知道会有英文题,但还是有些吃力。
SQL 题的话,因为平时练习比较少,第二问分组过滤的没有做出来。 三道编程题,第一道没思路,瞎写了一些文字; 第二道有思路,但是忘了具体如何用代码实现,写了思路; 第三道考尾递归优化、缓存中间计算结果的,做了出来。 面试准备 感觉自己做的不是很好,有点担心。 25 号下午 4 点多的时候,还跟一个同学在 QQ 上聊到笔试做的不好的事情。 过了没多久,突然接到 HR 打来的电话,说是通过了笔试,让去面试,问我什么时候方便。 因为当时都已经周五了,下周的话放在哪天感觉都差不多,感觉不如速战速决,就约了下周一,刚好周末可以再复习一下。
周末主要是写了一套英文的自我介绍,因为网上有了解到这家公司会让英文自我介绍。 把中英文自我介绍又重新略作修改,背了下来。 把项目三、二、一上面的常见面试题又重新背了下,在纸上又画了画执行流程之类的。 一面
第四周(10 月 28 号-11 月 1 号),周一早上 6 点就起床了,把自我介绍和项目介绍又熟悉了一遍。 一面的时候,首先还是常规的自我介绍。 因为自我介绍中提到业余时间会看一些书籍之类的,问我都看哪些书,最近看的是哪一本,具体的书名是什么。 问了我公司大数据部门的情况,我胡乱说了有 10 个人,他竟然说比他人大数据的人多,突然感觉自己是不是说错话了。 让我画一下项目的架构图,面试官提示我可以分层来描述,比如展示层、处理层、数据存储层,我就画三个方块,分别写了数据库、Hadoop、前端。 他看到说,怎么没有资源调度的东西,我说用的是 Yarn,他说这么重要的东西应该画出来的,我只好说忘了画了。 看我画的架构图不行,主动给我画了他们的。 问了我数据规模多大,大概处理多少小时,这我哪知道,胡乱说了日增 20 多个 G,离线处理不到 1 个小时,也不知道对不对,就过去了。 后来了解到这个大数据部门成立不到一年,现在还在做底层搭建、数据展示层之类的东西,用的是 Spark、MongoDB 之类的。 这位面试官以前是搞微服务的,被拉来搞大数据,怪不得 Hadoop 的东西基本没问,怕不是他不太了解,Hadoop 我准备的很充分,但是没有被问道,实在是感到可惜。 后面就是根据我的笔试试卷问我,因为有道 SQL 题目做的不好,被质问说,这道题目也不难啊,经常写 SQL 的话,不应该写不出来。 笔试之后我又重新私底下造了数据试过了,跟他说确实不难,先分组然后再过滤然后再关联查询,只不过当时不知道为什么没有想起来,就跟提笔忘字一样真奇怪。 后面面试官根据我写的技术栈,专业技能挨着问的,比如说你简历上写的熟悉 Git 常用命令。 就问我问题,假如两天前做的一个需求有问题,需要回滚,应该用哪个命令。 我一下子没想起来,就问是生产环境的还是测试环境的,面试官说跟环境无关,我就问你这个,这是一个很常见的问题,你从来没遇到过吗? 你们部门没遇到过吗? 我只好说自己没用过,要是真出了这个问题,是个重大的问题,都是由技术负责人解决的。 然后我简历上写的比如掌握计算机网络、数据结构、操作系统之类的,真的是每个东西都问几个问题。 后面提问的时候,我也不知道问啥,就问了部门情况,技术栈之类的,面试官讲了很多。 一面结束后,他出去联系 HR,我看了一下时间,差不多 75 分钟。 二面 HR 过来了,告诉我他们这个职位只招一个人,所以会严格一些,一共四轮面试,后面还会有项目经理面、技术总监面、HR 面。 当时那个心情啊,明明之前网上搜的都是说只有两轮,技术面和 HR 面。 二面项目经理,也是顺着自我介绍问的,我竟然说最近买了一本《快学 Scala》,我周末刚买的书。 然后就问我 Scala,突然发现自己说错话了,自己根本不了解 Scala,只好说自己之前接触的都是离线计算,最近打算学习 Spark,因为 Spark 使用 Scala 写的,我想先了解一下 Scala,最近才开始了解,了解不深。 说了一下 Scala 的特点,函数式编程和面向对象,其他的还在学习。 然后就开始问我函数式编程,我也不知道如何回答,就说之前只在 Java 中用过 Lambda 表达式,是一种函数时编程之类的,然我说为什么要用函数是,有什么优点之类的。 问我之前做过什么,我说做过订单系统,订单基本统计信息(日粒度)、商品复购率、由销售部门发券带来的新用户分析之类的,然后就问我这些分别是怎么计算的,我就讲了商品复购率、新用户分析如何计算。然后竟然跟我说这些他们部门将来也会用到的,跟他们职位要求很符合。
然后问我之前项目中遇到的花费时间最长的一个问题是什么,我问工作之外自己搞的项目可以吗?我就胡乱说了一个由 JS 跨域造成的问题,说当时搞了一个多星期,不想用 JSONP 解决,因为感觉有点 low,尝试寻找其他解决方案。中间也跟一些同事交流过,也请教过一些前端的同事,最后没有找到优雅的方法,还是使用 JSONP 处理的。
然后顺便说了句,我觉得解决问题的能力一直是我认为比较重要的能力,正如刚才一面面试官说的那样。之后又问了部门情况之类的。因为也到了饭点,这次只面了 25 分钟左右。 HR面
HR 跟我说技术总监出差,需要电话面试,让我下午先进行 HR 面,能在现场面的尽量一次性面完。 下午 1 点,去公司等 HR,HR 面了大概 50 分钟。 问我说上午二面的项目经理面的时间有点短,他都问了哪些东西之类的。 HR 真的是很能说,学校、上家公司、家庭父母感觉都问了一遍,这个还是只能随机应变吧。 尽量往解决问题的能力、工作踏实的方面去说吧,重点要突出学习能力比较强。 我跟她说了很多大学里面自学的事情,如何顺便保持成绩,最后还能保研,最后选择工作的事情。 最后 HR 告诉我前两场面试,面试官对我的评价都比较好。 然后加了我微信,给我推荐了技术总监的微信,让我加他,后面方便协调电话面试的时间。 四面
电话面试约在了周三上午,使用微信的语音。 因为担心蓝牙耳机会出现信号不稳定的因素,专门带了一个有线耳机。 上午收到“可以语音吗? ”的消息后,就到楼下一个有太阳的地方,边晒太阳边聊,因为最近上海的天气上午有点凉。 听声音感觉面试官年纪不大,最多也就 30 岁左右。 他问的内容就跟一面面试官不一样,一面面试官问的内容比较广,他问的比较深,问的都是一些原理的东西。 同样也是先针对自我介绍问的,因为我有说到对分布式比较了解,然后就问我很多分布式的内容。 后面也问了其他比较底层的,比如垃圾回收、为什么要分代、数据库索引底层实现之类的。 同样也是拿我笔试的那道 SQL 题目问我,很简单的题目为什么没有写出来,我同样也是说应该怎么做,当时就跟提笔忘字似的之类的。 后面问了一些 Spring、Vue.js前端之类的内容。 最后,同样是问了他部门情况、使用的技术栈,如果我去了会做哪些内容。 面试官也跟我说了一些技术栈,说我可以自己先了解一下。 这次语音大概 30 多分钟,感觉回答的差不多在 80% 以上,感觉应该是稳了。 收割offer
面试虽然结束,但是没有收到 Offer 之前,心里还是有些担心。 下午快下班的时候,突然收到 HR 的微信消息,说是明天会给我发 Offer,这时候心才真正放下。 这一天晚上,失眠了,翻了一夜没睡着,应该是最近压力有些大吧。 总结 最后我想总结几点: 1.学习上要明确一个方向,然后去积累; 2.学会面向面试学习; 3.一定要坚持下来,不管是学习上还是心态上,心态崩了是常事,但还是要坚持; 4.基础知识要扎实,技术栈不需要会那么多,挑几个深入学习理解就可以。
5.机会很多,市场需求很大,自己去试试才知道。 --end--
推荐阅读: 五年Java外包转型大数据架构 北美零基础转行开发求职面经 一位材料专业研究生的Java转型复盘 从车辆工程到大数据开发,我经历了什么? 传统金融IT男转型互联网大数据码农,图啥?
从安卓主管转型大数据开发,我经历了什么? 两年车间技术员转型大数据开发,说说转型这点事儿
扫描下方二维码
添加好友,备注【交流群 拉你到学习路线和资源丰富的交流群

你可能感兴趣的:(Java干了半年,我机智地跳到了大数据开发)