一看到零基础转行成功,你们心中就会有疑问:你学了多久啊?你怎么学的啊?学了什么内容啊?找了多久的工作啊?等等这一系列的问题。下面我会尽可能的为大家描述下自己学习的整个过程,以及我自己犯得一些错误。然后,总结面试时遇到的一些问题(踩过的坑)。
(一)决定转行前的状态
我是17年毕业的,专业是建筑环境与能源应用工程。毕业后,并没有马上投入工作,而是在家继续备考雅思。在大三的时候,出国梦就在我的心里开始萌芽,促使着我去学习英语,那时候我的英语很垃圾(垃圾到无法想象),身边很多朋友都没有都不赞同我,觉得我选择了一条根本不能实现的梦。但是,从小我骨子里就有一股不服输的劲,我相信通过自己的努力一定可以实现的,因此走上一条雅思的不归路。虽然结果并不是那么如意,却让我的英语水平大幅度提高(口语从3.5-5.5,阅读5.5-7.5)。
正是因为这条不归路,才为我走上英语老师的奠定了基础。雅思总共考了6次,还是没有考出理想的成绩后,并去了魔都找了一份英语老师的工作(当英语老师的目的还是为了考雅思)。工作了两个月多后,就开始反问如果雅思过了,我应该申请什么专业呢?就在网上各种查资料,一次偶然的机会看到了data science,顿时就吸引了我的注意。下一步的行动就是咨询中介,看是否可以跨专业申请,得到的答案是申请的难度系数比较大,还要学习一些课程,最好有工作经验,决定放弃。我又把目光转向的国内研究生,在各院校的对比下。我选择了复旦大学大数据学院的统计学,这个专业是新开的专业,觉得报考人数比较少(可能每个人都是我这样想的)。就开始了我的考研之路,结果跟我的预期相差太多,初试一完心里差不多就有谱了(没戏了),接下来就是面临着找工作。着急,焦虑,迷茫等等负情绪涌上心头。
(二)探索数据分析之旅
人在着急,焦虑的情况就会一阵乱投医。我也不例外,在各个网站上寻找数据分析相关资料,期间还咨询过培训机构,因为价格太贵了就果断放弃。同时,会在简书和知乎上查看各位大佬的转行经验和心得,希望能给自己迷茫的转行之路带来方向。在简书上看到了凡人求索的 谈谈转行数据分析以及工作的心得 的文章后,结合这篇文章,跟凡人求索的沟通和自己查找的资料,给自己制定了学习计划(决定自学)。
step1: 学习MySQL
去年12月底,开始自学MySQL。我选择的是看的MYSQL必会知识电子版,前三天学习动力 十足,激情满满,学习效率相当的高。之后,激情和效率慢慢衰退,直到半个月后,完全没有动力去学习(主要原因是没有学进去,看了忘了)。这时候,又开始焦虑,烦躁。这时候,我把目光转向线上网课,经过再三对比,决定跟着数据蛙第一期强化班学习。选择的理由有:1.可以抱团学习 2.有助教在晚上进行答疑 3.有实战项目 4.价格实惠,内容比较全面,学期周期较短
报班学习后,主要以视频为主,我每天都按时完成任务。对我来说,看视频吸收效果比看书效率高很多。我觉得在学习MYSQL时,一定多通过做题来巩固知识点。我刷了经典45道三遍左右,leetcode的MYSQL两遍,还把视频里的案例分析做了两遍。经过做这么多题目后,MYSQL掌握的基本比较熟练。
MYSQL存在的难点知识点,也是以后面试中最常问到的问题:
1.分组排序(我面试时,基本每场都会问到)
row_number()over(): over()里头的分组以及排序的执行晚于 where group by order by 的执行。
rank()over():跳跃排序,有两个第二名时接下来就是第四名
dense_rank() over()是连续排序,有两个第二名时仍然跟着第三名
2.case when的用法
3.表与表连接的方式
4.表的创建
5.时间函数(难点):用在的地方是求:回购率(留存),复购率等等
step2: 学习Python
在Python编程学习中,我个人觉得最难的是遇到一个题目没有编程思维,这时候,我通过多看题目,模仿别人写的代码敲一遍,然后不看代码在敲一遍,同时把它的思路理清楚,弄明白。通过这种方法后,基础的编程,自己能写出了。在这期间,遇到了很多bug。这时,应该做的是自己去查找问题出在哪里(可以通过Google搜索),这样可以提高我们的搜索能力和解决问题的能力。我刚开始,并不是这样的,遇到问题就喜欢马上问别人,希望别人能直接给我答案,我觉得这会帮我省很多时间(后来发现这种做法是多么的愚蠢)。千万不要做伸手党
除了学习的Python编程,还学习了Python第三方工具包pandas、 numpy、matplotlib。学习这几个工具包,我还是通过看视频,然后把视频里出现的题目敲一遍,然后把pandas100题全部刷了两遍(一定要多做题目,才能熟练掌握所学知识点)
step3:统计学
我研究生考的是统计学,对于这部分知识,我没有花费很多时间,主要看了区间估计,假设检验。在简历上我写了ABtest,因此在面试的时候,面试官问了t检验和Z检验的区别,A/Btest的埋点,样本量怎么设计,带来的结果是什么?A/A test和A/B test的区别
step4:机器学习
我个人的强项是数学,但是没有充分发挥我这方面的优势。只是把机器学习的视频看一遍,但是根本就没有吸收进入。各算法掌握的也不扎实,例如决策树,随机森林,XGBoost,GBDT等等。
建议:一定要完整的完成一个项目,不要只看了代码,和思路。一定要思考别人为什么这样做,会带来什么效果。
在面试的时候,总是给自己挖坑,姬面试一问仔细一点,就是一脸懵逼,这就让面试官质疑你的能力和简历的真假。
面试官根据我写的项目内容问了这些问题:样本量多大、设置了哪些指标、怎么划分预测集和测试集、为什么选择随机森林,它的优点是什么?特征工程如何处理?用kmeans组合的新特征有什么用?得到的结论是什么?
step5:面试
学完课程是三月底,之后接开始着手准备简历。简历这关还是相当重要的,不然你连面试的机会都没有。我四月开始投简历,前面半个月投了至少几十分简历但是都石沉大海了,后来数据蛙群主对我的简历给出了建议并教我如何去修改简历。修改完简历后,又开始了海投模式,我记得我收到的第一家面试通知是腾讯外包。当时,好激动好兴奋,针对简历进行准备。但是,由于第一次面试,紧张又缺乏面试经验,总是给自己挖坑,不熟悉的东西千万不要往简历上写,简历上写的项目一定要熟记于心。这次面试让我做了SQL(掌握45道题和回购率就可以了),SQL写的还可以,但是面试的时候一塌糊涂主要问了算法,由于基础不扎实一说就漏泄。后来,面试官给出的评语就是项目经验有水分。
接下来,我针对简历上的项目又重新做了一遍(开源项目),再站在面试官的角度上会问什么问题?腾讯外包总共面试了6次,沃尔玛面试了1次(要求的工具是精通excel的VBA,熟练掌握SQL),百度外包1次,大大小小的面试加起来大概有20次,但是收到的面试通知几乎没有。焦虑,着急,自我怀疑等等情绪汹涌而上。由于这些原因,我就想只要有一个公司给我发offer,我就会入职。因此中间还入职了Python课程运营(助教),但是发现跟数据分析或者运营根本不挂钩,工作了5天就离职了。更加明确了我一定要找数据分析的工作。
然后,又进入到找工作的行列中,投简历—面试—总结面试—查漏补缺。四点一线又维持了将近半个月,说实话,这时候的心态已经很崩溃了,在21号的时候我都准备提着密码箱准备回家休息一段时间再来深圳找工作,就在我最绝望的时候腾讯外包给我打电话了说我面试通过,招商银行的外包也通知我面试过了。这时候,我兴奋的叫起来的,不管旁边的路人怎样看我,兴奋过后就蹲在马路边哇哇大哭起来。觉得自己这五个月的努力是值得的,山重水复疑无路,柳暗花明又一村。以后无论做什么事情一定要坚持下去,不要放弃。因此,在考研和雅思的路上,我也不要放弃,可能离出成绩的火候还差了一点点。