欢迎光临企业型网站建设公司网站,为您提供专业的一站式建设服务。

企业型网站建设公司

品牌网站建设开发,专业营销网站设计价格

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

作者:jcmp      发布时间:2021-04-23      浏览量:0
今天这位是我学习群的一位同学,他在六月份

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

---

我的情况

我大学之前基本没有接触过电脑,连打字都不会的那种,大学胡乱报了机械专业。大二的时候,偶然接触到编程。先后学了 C++、前端、Java。其实大学里面没有一个明确的方向,导致无论是后端还是前端,总是学一会这个学一会那个,没有多少积累,所以明确一个学习的方向很重要。

找实习那会儿,连测试的实习都找不到。了解到学 Java 比较容易找工作,所以开始学习 Java。大三暑假,淘宝买了一套黑马的 Java 课程,学了半个多月,校招找到一家传统的公司做 Java Web 开发。大四上学期实习了一段时间,大四下学期请了两个月的假回学校做毕设。在学校花了 20 多天的时间,刷了一遍《剑指 Offer》。但是由于春招基本上已经过去了,再加上毕设的压力,也没有找到新的工作。

方向思考

也就是回学校做毕设的那段时间,也一直在想将来往哪个方向发展比较好。无意间了解到大数据,碰巧我在微信搜索里面搜大数据相关时,搜到了锋哥的文章。然后就加入了锋哥的星球,也加了锋哥的微信、并且进了学习群。抱着试试看的态度,向锋哥说明了一下情况,锋哥让我学习他给的一些资料项目,也跟我说面向找工作的学习和实际工作的学习是不一样的,这点是我以前没有意识到的,也是很重要的一点。

开始学习

从 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 题的话,因为平时练习比较少,第二问分组过滤的没有做出来。三道编程题,第一道没思路,瞎写了一些文字;第二道有思路,但是忘了具体如何用代码实现,写了思路;第三道考尾递归优化、缓存中间计算结果的,做了出来。

面试准备

周末主要是写了一套英文的自我介绍,因为网上有了解到这家公司会让英文自我介绍。把中英文自我介绍又重新略作修改,背了下来。把项目三、二、一上面的常见面试题又重新背了下,在纸上又画了画执行流程之类的。

一面

第四周(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.机会很多,市场需求很大,自己去试试才知道。