Dathoner分享:我是如何从机械工程师转行至数据分析的

(干货满满!文末有资料领取)#大数据#  #数据分析#  #Python#  #开源#  #编程#  #人工智能#

       Hi,我是小匿。

       近期我会邀请一些Dathoner来分享下转行找工作真实面试经验,帮助大家一起提高知识拿到满意的offer

     摘要

       我的专业是动力工程及工程热物理,19年6月毕业,校招进了一个本专业相关的行业里工作了20个月。20年9月份的时候,决定转行数据分析,开始了前期的资料收集和学习。期间,报了群主的课程,在下班和周末的时候开始学习。但是效率很低,一方面是因为有一些本职工作需要处理,出差频繁;另一方面是自己本身的惰性,有时候工作结束下班后,只想躺倒不动。还有一些心理的因素,彻底放弃之前所学和经历,沉没成本确实很大。21年3月初,我裸辞了,全心全意准备转行。目前收到了几个offer,我从中选择了一家,将在21年5月末入职。

     技能

       入门技能学习方面,我的计划是跟着课程的主线,辅助书籍/各类官网/百度/谷歌/知乎/CSDN,建立相对完善的基础。现在简单梳理一下我所获得的内容,主要有几大部分,分别是:ExcelMySQLPython统计学数据思维数据挖掘项目实践

     Excel

       Excel也没什么好说的,我在面试过程中,没有遇到问Excel相关内容的。对于我来说,过往的经历基本很少涉及到Excel,所以学得相对比较认真,重点掌握VLOOKUP数据透视表。除了课程之外,也看了一些其它的视频资料,网易云课堂免费课程王佩丰Excel实战课1800分钟可以作为补充,这个课程太长了,针对自己的弱项,挑着看就好。

      MySQL

       数据分析岗位面试前一般都会有笔试,MySQL是笔试的一个重要考察对象。知识点主要是增删查改,核心是“”。面试过程中,除笔试外,问到较多的问题如下:

SQL执行顺序

SQL优化方法

窗口函数相关

       需要注意的是,SQL学完,如果不经常练习,很容易忘记。建议学完之后,每天坚持练习牛客和LeetCode的习题,保持知识点的熟悉程度。网上有很多优秀的总结材料,也可以参考。最好是自己边做题,边总结题型。

     Python

       Python在面试的时候很少有直接的考察,只是简单的聊一下。但作为数据分析师的核心技能,必须要不断地精进。需要熟悉pandas, matplotlib,pyecharts,numpy,scipy等常见的库。我自己的话,以课程为主线,边看课程,边总结,边实践操作。pandas学了很久,其它的库之前都有接触,学的相对较快。

      统计学

       统计学主要内容包括:描述统计概率抽样与区间估计假设检验卡方检验方差分析A/B Test等内容。

       统计学的内容在面试中很少单独考察,主要是结合具体的情境和案例来考察。我遇到的比较典型的问题如下:

简述贝叶斯定理?该定理有什么作用?再深入一点,Naive Bayes相关问题?

为什么要进行区间估计/假设检验?

第一类错误/第二类错误的概念及两者之间的关系

A/B test。A/B的目的?流程?每个环节需要注意的点?样本量如何确定?

有一组数值型数据,怎样提取有效信息?这里可以从统计描述的角度出发,进行分析

     数据思维

       这是软性的技能,但也是面试官特别注意的点。由于新转行,没从事过相关的工作,这块很是欠缺,就是将课程内容死记硬背,有时间会翻一下《精益数据分析》这本书。我在这方面比较弱,只是学完了课程中相关的内容,但基本上课程中出现的,我都理解并记住了。后期还需要不断在实际工作中积攒经验,学习和掌握更多的技能。这一块的面试主要是结合实际业务场景展开的,后面会提到。

     数据挖掘

       这一块内容,多,相对比较难。但也没难到看不懂,需要循序渐进。这块的学习还是以课程为主线,看不懂不明白的地方,百度/谷歌/知乎/CSDN。对我来说,我比较喜欢钻研数学的东西,感觉原理的推导相对比较简单,难的是构造有效特征,以及后面的模型调参。没有思路、没有经验,进行的比较困难。

     项目实践

       对我来说,上述技能的学习没什么大的问题。简历上写什么?这是我最大的难题,我不可能面试的时候用嘴说,我会什么,会什么。如果没有相关的项目,基本上,简历筛选是不可能过关的。

       这方面,我完全是按照课程,跟着做了课程的两个项目。我做了两遍,第一遍,是跟着课程,厘清思路和每个步骤,跟着课程敲代码,总结一些通用性的技能。第二遍,自己新建一个文件夹,从头到尾自己实现了一遍,当然,其中充满了困难,用一步一坎来说也不为过。不知道怎样进行下去了,就对照课程资料回忆巩固一下,再返回来自己实现。

       做完之后,自己参考给出的模板,针对这两个项目做了数据分析报告算法报告自动化邮件日报系统的报告。这几个文件,每次面试的时候都会有针对性地展示给面试官,将话题向项目报告这个方向上引导。

       如果是偏业务分析的岗位,着重谈论自动化邮件日报的项目;如果是偏技术数据挖掘的岗位,着重谈论算法项目相关内容

     面试

       我3月初辞职(辞职之前已经学了一部分),准备的时间比较长,做好了简历和几份报告。但是,做完项目后,前面学的也忘得差不多了,特别是SQL统计学。不得已又重新复习一遍。好在前期做了详尽的笔记和练习,很快就捡起来了。下面是第二次回顾的时候,整理的一些资料。

       随后于5月10日(周一)上午开始投简历,主要在BOSS直聘上。目前陆续面试了8家公司。大厂基本上不鸟我,大多是100~500人的企业,也面过100人之内的小公司。以我仅有的面试经历来说,可分为三种,第一种是打着数据分析的名义招销售,第二种偏向业务,第三种偏向技术。

     第一种-钓鱼

       这种公司要好好甄别,既打击信心,又浪费时间,在投简历的时候要有针对性目的性,不要海投,没什么作用。

       我遇到了一家小公司,笔试全是概率计算,然后HR就问了:会sql吗?会python吗?会哪种BI?了解NLP算法吗(完全不知道NLP是什么)?会开车吗?能喝酒吗?我递给她的项目介绍也只是简单翻了下,没问一句相关的。随后讲了下公司在行业内多么牛逼,HR面就结束了。随后董事长来了,跟我说:你没有相关经验,非科班出身,概率和统计也没有基础。这时我心里就mmp了,你一个相关问题都没问,拿什么判断我没一点基础呢???很气,也很失落。

       随后跟我讲了一大堆他是怎么拉业务、搞项目的,接着说:小伙子,我看你很机灵,我们数据分析师的要求很高,但我这边很缺心思活泛的助理,你好好干,年薪50万不是问题。在前期,你需要好好学习,了解业务,大概能到手4k左右,但你要是能力强,能拉来业务,哪怕一年有一单就够了,提成是非常可观的。WTF???后面又逼逼叨叨了几句就结束了。

       回想这次面试,一点价值都没有,既没在面试过程中得到正反馈,浪费一上午的时间,又打击了信心。转行很困难,遇到这样的面试,心情差到了极点。当天做总结的时候,我应该在他说我不匹配数据分析这个岗位时,立马走人,何必听他哔哔,浪费时间。当时也是面薄,想着要有起码的礼节。现在想想,太天真。

       希望看到这儿的同学,引以为戒。在投简历的时候进行一定的筛选,远离这样的面试。

     第二种-偏业务

       JD是数据分析师,要求sqlExcelBI能力,对Python没有特别强调。这类公司一般都是互联网公司,有自己的数据中台,数据分析师岗位的职责主要是面向特定的业务场景,进行数据分析,以及一些报表的开发。

       其中一家的面试过程:

笔试-包括sql,统计,概率,极少数据挖掘

请做一下自我介绍

A/B Test的目的?原理?执行方法?结果分析?

数据指标体系的理解和实践?

谈一下你对埋点的认识?

会哪种bi?了解quick bi吗?

DAU突降,怎么查找分析?回答思路即可

挑一个你简历的项目,讲一讲思路和实现过程?

为什么从上家单位离职?

你的职业规划?

       回顾面试的过程,不难发现这类型的工作有很强的针对性,旨在找到有经验,在同一领域做过相同工作的人员。相对来说,整体工作难度不是很大,想要有经验,能极快上手的人员,对新转行人员不太友好。

       虽然这家最后也拿到了offer,但是薪资低,给出的理由是没有经验,需要人带,需要时间熟悉业务。

       对于这一类型的数据分析工作,个人感觉是更偏重于经验和实际的业务。若要应聘这类岗位,完全可以在数据思维学完之后,就开始投递和面试,没有必要将课程的数据挖掘部分全部学完之后再进行。另外,这类岗位对BI工具也有一定要求,需要自己学习一下。

     第三种-偏技术

       我遇到的这类公司只有一家,也是我即将入职的这家公司。现将面试过程整理如下:

     笔试

       有两种题型,选择和简答。试题集中在机器学习这块儿,没有sql。

       除了一些基础的问题外,我印象比较深的有:

选择题:Naive Bayes的假设?没接触过这个模型,凭感觉蒙了一个,并在选择题旁空白处写了目前知道的贝叶斯公式和作用。回来后查了下,蒙错了。Naive Bayes的假设是:各特征间相互独立,这也是Naive的来源。下来后把Naive Bayes的原理和实践学习总结了下。

简答题1:SVM的核函数有哪些?又是不知道。在空白处写了:暂时还没了解到SVM,我熟悉的算法有LR,DT,RF,Prophet,Kmeans(++)等。

简答题2:简述数据挖掘的一般流程及注意的点。唯一比较有把握的简答题。

简答题3:$y != x-(x-y)$在什么情况下成立?一脸懵,猜了一个,猜错了。百度得到的答案不全对,答案应该是:x和y是两个不相等的非空集合,并且,y中有不在x中的元素。测试如下,集合是支持减法操作的,相当于去掉交集。同时也测试了列表、元组和字典,这三种类型均不支持减号运算符。

     一面-研发中心经理

请先做一下自我介绍

python熟练吗?介绍一下python的基本数据类型?答:列表,元组,字典,集合。其实还有:数字/字符串/布尔

你对数据分析和数据挖掘的看法?

我看你简历中写,会一些基本的机器学习模型。你挑一个自己比较熟悉的,讲一下原理。我选了随机森林RF,按照自己的理解和记忆,依次阐述了:集成学习的分类、监督学习的分类、简单随机抽样(OOB)、决策树从ID3->C4.5->Cart的演变、ID3和C4.5的criterion及缺陷、分类模型的评估指标(混淆矩阵、四个率值、ROC/AUC/f1值)。追问:Cart有什么缺陷?一脸懵,没答上来。

讲一下你了解的聚类算法。回答了Kmeans的原理以及Kmeans++的改进。追问:为什么会有Kmeans++的改进?两者的优点和缺点各是什么?又懵一脸。。。

讲一下你算法比赛项目的思路和实现过程

现在有一个时间序列,共有30天的数据,每个样本间隔15min。你怎么预测未来7天的数据?听到这道题,已经有点慌了。答:目前我所知道的时间序列预测模型有:ARIMA和Facebook开源的Prophet。讲了arima的实现流程和prophet的一些特点。讲的有点啰嗦,面试官也没打断。讲完这两个模型,接着讲实操:先进行数据探索,看目标变量的分布,均值,百分位数等,看有没有异常值和缺失值,随后进行数据预处理,如果有缺失值,先处理缺失值。随后使用prophet进行预测。其它追问:怎么处理缺失值?prophet算法的输入和输出有哪些?你觉得它的优缺点有哪些?针对时间这个唯一特征,可以新构造哪些特征?这些特征的构造怎样用python实现?这部分问的很细,每个特征构造的思路以及python实现的代码细节。这应该是我本次面试中,表现最差的一部分,对于新构造特征,思路很狭窄,python实现也没有讲出来,代码能力欠缺。

了解哪些可视化库?答:比较了解matplotlib和pyechart。还有吗?暂时没有了。你自动化项目里是用pyechart做的图吧?为什么使用它?答:是的,Echarts是百度开源的工具,基本包含了所有的图表类型,被广泛使用。pyecharts库可以说是连接python和Echarts的桥梁,其语法相对简单,图表比较美观,不用太多的调整即可出图。

你的职业规划?

为什么从上家单位离职?

可以接受出差吗?

你有什么要了解的吗?我问了具体的项目和业务,以及公司数据部门未来的规划。

       一面感受:公司氛围较好。面试官真诚,没有咄咄逼人和居高临下,对我答不上来的问题,会进行引导,指出了我的问题,也肯定了我的部分能力。给我的评价:基础还行,代码能力和发散迁移能力有待提高,有较大潜力。结束之前,直接告诉我一面通过了,但你还需要不断地学习实践,发散思维。不管你最后来不来公司,希望你能有所收获。

       这次面试,是我选择这家公司最主要的原因。数据部门是核心的部门,有一个能力强的领导,有具体的业务和团队。

     二面-研发总监

请做一下自我介绍

你这两个项目是什么时候做的?数据来源?课程中已经讲过了这个问题,我说是大厂朋友给我的。没再追问

算法比赛的结果怎样?答:这是2018年的比赛,我用它来学习、实践数据挖掘的流程,我做的逻辑回归和随机森林模型,在使用模型调参器GridSearchCV的时候,总是报内存错误,还没有做完。这里实事求是了,不敢瞎说,对面大佬气场太强了。

谈一下你对数据行业的认识?

离职的原因?

职业规划?

你有什么想了解的吗?

       随后聊了下就结束了,总监面没有问很细节的问题。给我讲了下公司目前的业务和真实的数据产品,一些宏观的东西。后面就是常规的HR面试,谈薪。

     总结

       我能得到这个offer,自我分析原因为:①相对完备的数据挖掘基础,项目中有时间序列模型,比较契合公司的需求;②学历、专业与应聘岗位所在行业有关联;③自己的职业规划和公司想要的类型相符;④积极主动的态度;⑤自己和公司及面试官的价值观、工作态度比较吻合,传说中的气场相合。

       至此,踏出了转行第一步,实现了自己原来的计划,完成了从0到1的转变。经过多场面试,也对数据分析行业有了进一步认识,知道了自己还缺哪些东西。不论是理论还是经验,自己的专业能力积累远远不够,自我评价是堪堪达到了入门的水平,后续还需要付出更多的时间去学习和实践。

       转行很困难,大厂都是由于没有经验而过不了简历筛选。夯实基础,多投简历,多面试,练习sql,还是有机会的。

       建议不要裸辞,压力太大了。我面试到那家钓鱼公司后,心态快崩了。好在,自己转行的心很坚决,对自己目前的能力储备有比较清楚的认知和自信。当初之所以放弃之前的工作,想转到数据分析行业,是因为确实比较喜欢做这种归类、分析的工作,另外也很看好数据行业的前景。

       选择一个正确的方向,日拱一卒,不懈的努力。谨以此文,记录这个特殊的过渡阶段,自勉。

      结尾

       恭喜这位同学!每一位Dathoner来报喜时我真得非常的开心,一是替这位同学开心,二是让我感受到教学的意义。感谢每位Dathoner,数据之路长着呢,后续,我们一起加油!

       另外,准备了不少数据资料,需要的同学可以点击获取哈~

       适合小白学习的数据分析免费资料(持续更新)

你可能感兴趣的:(Dathoner分享:我是如何从机械工程师转行至数据分析的)