前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从销售到 AI 算法工程师 | 转行人工智能 (含面经&裁员幸存指南)

从销售到 AI 算法工程师 | 转行人工智能 (含面经&裁员幸存指南)

作者头像
叶锦鲤
发布2019-05-15 13:22:26
1.8K0
发布2019-05-15 13:22:26
举报
文章被收录于专栏:悦思悦读

我叫王东,90后,和大家分享一下我的人工智能转型之路。

农学毕业,投身互联网做销售

机遇难求,养殖梦碎

我是土生土长的农村人,小时候经常和小鱼小虾打交道,上大学的时候就选择了农学专业,想着毕业之后回老家搞养殖种植。

大学期间,我看到了一些关于养殖龙虾、稻田套养的资料,就跟我父母商量,让他们承包一块稻田或者鱼塘,养殖龙虾。但当时我父母坚决不同意,就没有做成这个事情。

毕业之后,我想自己承包鱼塘搞养殖,但是没有资金,父母也不愿意支持我,所以最终还是没做成。

到了去年过年的时候,我们家那边很多人都已经开始在自己的稻田里面套养龙虾了。看到很多人做这个,我父母开始后悔为什么早没听我的。

可惜世上没有后悔药,总之我的农业梦想是暂时告一段落了。

果断决定,放弃读研

大学毕业之后,本来想直接工作,但是我的专业很少对口的岗位。大部分同专业同学都是去卖农药卖饲料之类的。

于是我选择了保送本专业读研。不过读了一年多一点,我就自己退学了。

在学校导师要求天天去实验室,但是去了实验室没有事情做。同学都是带着电脑去实验室,玩一天的手机电脑晚上回寝室。

我当时也不知道该学点什么,觉得这样读研很浪费时间,就退学了。

现在回头想想,当时对读研的事情认识得不太到位,不然的话现在的工资应该会高一点。

保险销售 & 银行客服

我研究生退学是在2016年的10月,出来之后先是在泰康人寿做了几个月的保险电话销售。

之所以选择一个和专业相差这么大的岗位,是因为我读过很多销售方面的书籍,也认识一些做销售的人,对销售工作很感兴趣,自己有心成为一个顶级的销售高手。

在泰康做了五个月,成绩不太理想。

之后又到银行当客服,具体工作是:信用卡的报账单到了,提醒客户还款日;客户欠款了,催他们还款;等等。

这两份工作都是在合肥的时候做的。

好友相邀,奔赴上海

我的一个大学同学在2016年8月去了上海,做人工智能、大数据的培训的招生顾问/课程顾问,其实就是销售。

他是学生物的,生物专业的本科毕业生也不太好找工作,所以他也转行了。

他在上海工作了一段时间之后,了解到我的工作状况不太好,就跟我说,可以考虑到上海这边做销售,比合肥容易赚钱一点。

在他的邀约下,我在2017年10月到了上海。

进阶互联网销售

到上海之后我做了两份销售的工作。

第一份工作是在宜信,通过电话方式推销贷款。这家公司办公区域二手烟很严重,而我对烟过敏,所以没做几个月就辞职了。

第二份工作是在一家教育机构做专升本的课程顾问。这份工作做得还可以,比我以往的销售业绩来好不少,每个月都能开很多单。

而以前在泰康人寿做电销,和在银行客服让客户办分期信用卡分期的时候,成交的单数都不多,工资也少得可怜。

这样,我在专升本课程顾问这个职位上工资还好,自我感觉有点满意。

转型之旅,向人工智能挺进

在2018年初的时候,我同学跟我说他想辞职了。因为他发现自己招进来的学员,零基础进来学大数据或者人工智能,培训完成后找工作,工资比他高了很多。他也想去做大数据技术岗位的工作。

2018年2月,我同学自己在他原本任销售的培训机构报名成了学员。到了2018年8月,他就找好了新工作,月薪16K!

我其实很喜欢做销售,梦想着有一天成为top sales,赚很多钱。但是,我也发现自己的销售工作做得并不好。

为此买了一些销售方面的书籍、课程学习,可是学完之后,并没有达到没有理想中的效果。应该是自己不适合做销售,于是,听到我同学的转行的事情后,我也决定转型了。

我听我同学说,人工智能(AI)还有大数据(Big Data)前景非常好,待遇也高,人才的需求量也大。

这时我就想,人生一定要善于抓住机会,看到可行机会一定要好好抓住,一旦错过就很难再挽回了。前些年,我错过了养龙虾的机会。不能再错过AI和Big Data的机会了!

于是,在接下来的时间里,我就一边上班做销售工作,一边自学相关课程。

整理基础,着手学习AI技能

制定学习计划

我问我同学:做人工智能,需要学什么课程?

他说:数据库要会一点;python也要会;数学基础要好;而且工作中多少会涉及到爬虫;还有就是数据分析机器学习深度学习都要会一些。

根据他的指导,我给自己制定了一个学习计划

1. 数学基础:导数、微积分;简单的矩阵运算(比如说矩阵的转置,乘积等),矩阵的求导、矩阵转置的求导;概率统计知识,比如全概率,贝叶斯公式等。

2. Python编程:基础数据类型(字典、列表、集合之类);循环(while)、条件(if)结构;函数;os、datetime等常用模块;面向对象;会多线程、多进程能提高效率;会爬虫更好。

3. 数据分析:数据库;python做数据处理的pandas、numpy库;会matplotlib等绘图库更好。

4. 机器学习:线性回归、逻辑回归、KNN 、KMeans、决策树、GBDT、朴素贝叶斯,隐马尔可夫;以及深度学习。

原有基础

其实学任何知识,如果有一点相关的基础,学得就会较快一些。

我之前在大学学过C语言,虽然不太深入,但多少了解过。算是有编程基础。

而且,我的数学比较好的。大学数学我都没有听过课,然而高数、线性代数,还有概率论,考试都是在95分以上。数学基础自我感觉还可以。

我的英语也还可以。阅读英文资料都没有问题。

我相信拥有这些基础是可以应付人工智能学习的。

决定自学

我没有上辅导班,全部都是自学的。

为什么不报培训班呢?主要两个原因:

  1. 我没有那么多钱;
  2. 我听那个转行成功的同学讲了需要学习的内容,觉得自学可以搞定。

业余用功

因为白天还在上班做销售,所以学习都安排在晚上下班之后,和周六周日不加班的时候(一般周六要加班)。

第一步,我学了数据库。

总共花了两周的时间,只学了MySQL的增删改查和建表。因为听我同学说,数据库大都差不多的,先学个基础,工作中遇到不懂的再问、再搜索就可以了。

这些内容不太难,而且很多网上平台都有视频或者免费课,收费课程也很便宜。

第二步是Python编程。

也是在网上平台,找的课程。分为几个部分来学习:

最开始学基础的东西:数据类型,控制结构,函数,和面向对象等。

当时没有学太深入的东西,很多模块(比如OS模块),我学习的时候都不知道。那些模块是在工作之后,需要用时才学的。

之后,学了一点点爬虫。只看了爬虫中发送http请求的方法:get和post。

我自己在网上找到爬虫的样例代码,把它抄下来,自己做了一个非常非常小的爬虫,爬了一首歌。

那时候自我感觉还可以,居然把音乐给扒下来了(^_^)。但是进入公司之后才发现,当时掌握的实在是太浅太浅。

第三步是数据分析。

主要学了的numpy和pandas。这两个模块非常非常重要,特别是pandas,数据清洗、特征工程都要用得到。

学习它们。我花一个多月的时间。一边看视频课程,一边敲代码,完完全全的就是课上怎么说,我就怎么写。

pandas还有可视化相关的内容,不过我并没有学习这一块。

克服迷茫,硬啃机器学习

迷茫疲惫独自扛

在学习过程中,我感到挺累挺迷茫的。

转型的过程中会遇到很多问题,懒惰,每个人多少都会有一点。

独自摸索中,你不知道你选择的方向对不对;也不知道之前的工作要不要继续做下去,会不会取得很大的突破。这些都是未知的。

机器学习任务重

学习了Python和数据分析的基础之后,就开始机器学习的内容了。

这一块儿我学得不太好,最初是从最普通的最简单的线性回归和逻辑回归开始的:

首先是线性回归:线性回归的核心是最小二乘法,原理和推导过程当中,会用到一些数学方面的知识,比如说微分、矩阵,和矩阵求导,并不是太复杂。

实际的应用中,我们只需要把数据简单处理一下(有时候甚至可以不处理),再调用别人写好的库,就能够得出结果。网上有案例,对照着来尝试几次的话,就能够掌握。

其次是逻辑回归:主要用的是sigmoid函数,还有概率方面的知识,也并不是太复杂。

接着是决策树:决策树又分为分类树和回归树,两者原理不一样。决策树我掌握得不够好。

之后学了KMeansKNN,都比较简单,前者学得还不错。

然后是GBDT(梯度提升决策树),只是稍微学了一点。

至于朴素贝叶斯,隐马尔可夫等模型,最初并没有学。我感觉太复杂了,学不来。

在这个过程中,我发现,数学知识会用到,但用到的都比较简单,不是非得掌握到很深入的程度不可。

训练营中战友多

2018年11月,因为已经下定决心转型了,我感觉需要更多的时间花在学习上面,于是就从销售岗位辞职了。

当时也比较巧,刚辞职正好看到一个机器学习训练营——李烨老师在GitChat平台的“21天入门机器学习训练营”,我就报了,系统地梳理了机器学习方面的知识。

在训练营里面,我把线性回归、逻辑回归、决策树、KNN、朴素贝叶斯、GBDT的原理,重新学习了一遍。

自己一个人学习,没有人督促,很容易就懒劲上来了;没有人跟你作比较,不知道自己学习的进度是快是慢;还有,也不知道花了这么多精力来学习,最终就是能不能转型成功。

通过参加训练营,每天和很多小伙伴一起学习,有助教监督,还有老师答疑,感觉动力足多了。我在训练营里打卡、互动都比较积极,结营的时候还成了优秀学员。

这样,我感觉自己可以去面试了。

建立自信,不为岗位描述所限

准备简历

我从网上下载了简历模板,还从我同学那边要了几个,参照之下自己写了份简历,在各大招聘网站上投了一下。总共大概投了五六份。

我当时没有考虑到的一点是面试时间,因为我是在12月投简历的。12月是招聘的淡季,很多企业已经不招人了,面试机会非常的少。

不过简历投出去之后,我还是获得了几个面试机会,下面慢慢讲。

不必拘泥于“岗位要求”

大家看到很多招聘AI技术职位的“岗位要求”都会写:要有本科以上的学历,金融、数学或者计算机方面的专业,还有些要2-5年不等的相关工作经验等……

虽然他们写的是这些,其实不满足要求的,也能够进去。

专业并不是很重要,经验也不是硬性规定。最关键的还是你会什么技能,有什么项目经验,能解决什么问题。

基本上只要在面试的时候,回答上来面试官的问题就可以了。别人邀请你去面试了,说明就有机会。

我本科是农学方面的大学,学校并不太好,安徽省内排名只能排在第五或者第六,不是985,也不是211。我也不是计算机、数学方面专业的。

我投了简历之后,在12月份招聘的淡季,还是有五家公司邀请我去面试

这五家里,只有一家是我直接投的简历,有两家的HR直接联系我,还有两家是两个猎头联系我之后给安排的。

上阵临敌,多多面经分享给你

第一次面试

面试的第一家企业是在boss直聘上面投的简历,做垂直领域的电商平台。当时我是第一次过去面试,挺紧张的。

两个人一起面试我:一个是技术经理,另一个不太清楚是什么职位。这次只经历了一轮。

在面试的过程中,他们先问:pandas读取数据的时候,如果数据量非常的大,比如说有好几亿条的数据,应该怎么处理?

因为之前没有遇到过,也没有考虑过这个问题,我当时回答的比较白痴,我说:直接read,然后想取某些行的话就df.iloc,第一个参数写你要的那个行数的范围,第二个参数就是所有的列。

他们听完对视笑了一下,继续问我第二个问题:要预测接下来的一个月的销量或者一个季度的销量,该用什么方法?

我当时想了几分钟,最终我没有给出一个好的解决的方法。

然后他们又问:你会不会修改别人写好的库?

然后我就硬着头皮说:应该会。因为原理都是差不多。

他们还问:你上一份的工作做了什么事情?用到了什么工具?实现了什么结果?

这个我回答得很不好,因为我并没有实战经验,简历上面写的项目只是我在网上找的几个小项目,自己对着代码敲了一遍。

问了这几个问题,就让我走人了。

这是我的第一次面试,很失败。

第二次面试

第二家公司是一个猎头推荐的,这家公司承接其他企业(比如银行)的项目来做。这次经历了两轮面试。

第一轮就简单问了几句。

第二轮是一个技术人员,可能是主管级别。

他首先让我介绍项目经验,并没有追问太多。然后开始问技术问题。

他问:之前在训练模型的时候,用的数据集是多大的?

我跟他说:大约40兆。

他又问:你用的数据是多少维度?

因为我不知道,就随便说了一个,我说:十几维,12维左右。

他再问:12维的数据,有多少行?

我说:大概40万行。

他说:40万行,12维有40兆这么多吗?

我就说:是清洗了之后,然后才有40兆的——因为40万行十几维的话,数据量应该就应该不止40兆。

这个问题当时回答得并不是太好。

再然后,他让我介绍逻辑回归线性回归的区别

面试前我听转型成功的那个同学说,面试时,一般会要求推导线性回归和逻辑回归,所以我就做了准备,但是没让我推导。

他又问:GBDT的弱分类器是什么?

因为我好像在网上看到过说,GBDT的弱分类器可以是决策树、线性回归,或者朴素贝叶斯之类的。然后我就把这些回答他了。

他就笑了,跟我说:西瓜书你没有看?

我说:我买了,但是没怎么看。

他说让我回去好好看看那个书。

我问他:GBDT的它的弱分类器到底是什么?

他说:就是决策树,没有其他的。

他还问了决策树分叉的原理。

我回答他有基尼系数,信息增益、信息增益率之类的。

他又问:朴素贝叶斯分为哪几类,有什么区别?

这个问题我也没有回答上来。

这轮面试就这样结束了,他让我在面试的房间里等。半个多小时之后,人事过来告诉我说面试没有通过。

他们觉得我有一定的基础,但是很多原理就是并不是太懂,如果要进公司来工作的话,可能需要一段时间的上手。而他们希望招到的人能够最快时间投入工作。

第二次面试,就这样以失败告终。

第三次面试

经过两次失败的面试,到第三家公司面试,我就相对有经验一些了。

他们问的问题有我在训练营和前两次面试中遇到过的,这些基本上我都答对了。

最后他们还问了一个问题:GBDT怎么看特征的重要性?

这个问题的答案我不知道。我直说不知道。

然后面试官告诉我:GBDT里面有参数,可以通过打印参数来看到各个特征的重要性。

他们问我会不会数据可视化。

我说:会一点,但并不是太熟

他们又问了点别的问题,就让我回去了。第三次面试也以失败告终。

第四次面试,成功!

第四家公司的面试比之前简单得很多,问题量也是最少的,是我遇到的面试当中就是最轻松的一个。

面试官首先让我自我介绍,介绍完后就让我讲讲之前项目经验,然后问了几个非常简单的问题:

(1)线性回归和逻辑回归的区别?

(2)SVM的原理是什么?

(3)会不会爬虫?

(4)Python学了多久?

(5)Pandas的DataFrame有哪些方法?做数据处理、数据分析,常用到哪些方法?

我回答得自己比较满意。

最后面试官又问我上一份薪资是多少?

我说,上一份工作薪资10K,其实很心虚。因为,在合肥工作的时候,工资也就两三千,到上海后有时三五千,有时能拿到八九千。不过九千多只拿过一次,大部分时间拿的工资还是比较少的。

他说声知道了,就让我走了。

当天下午我就收到了offer!

给的薪资虽然比之前工作的薪资都高了不少,不过感觉相比同学的16K还是有点低。所以我想再面试几家看一下。

第五次面试

第五家是一个汽车企业,他们要给一个博士生找一个做数据挖掘的助手。

他们对学历和技能的要求都非常高,我没有通过。简单地问了几个问题,就直接走人了。

这样我就决定去第四家——拿到offer的那家公司上班了。

变身之后,如履薄冰新人期

新人上岗,惴惴不安

2019年初,我进入了现在的公司。

刚进公司非常忐忑,虽然自己会一点python,懂一点机器学习的原理,但是没有在公司真正实战过,到底不踏实。

进公司的前两天,没人给安排任务。

开始我以为需要自己找事做,就去问了我们主管,有没有什么事情要做,或者有没有需求文档之类的给我看一下。他说这两天什么都不用干。

到了第三天,他开始给我分配任务。

任务到手,一团乱麻

我接到的第一个任务是和一个老员工一起做爬虫。

关于爬虫,我只会用最简单的方式发get/post请求,参数都不知道怎么加。他们用的是scrapy框架,我都没听说过。

接到任务的第一天,我感觉自己啥都不会,非常非常非常地焦灼。

那个老员工给了我代码,我跑了一下,发现那个网站网页结构变化了,原来的脚本跑不成功。然后我就在那儿坐着纠结了一天。

我们经理就坐在我对面,我的表现他都看在眼中。他当着我的面打电话给人事,说:以后再招员工的时候,一定要仔细一点。

我就想他们会不会赶我走。

虚心求教,学会爬虫

当天晚上,我找那个老员工请教:爬虫到底怎么做?爬虫框架到底是怎么一回事?

老员工人很好,他跟我讲了50分钟。听他讲完我才发现,scrapy框架其实很简单,需要修改的基本上只有spider文件。我又马上从京东买了本书,第二天到。

第二天上午的时候,我试了一下头天晚上学的方法,一边就是回忆同事教我的知识,一边在网上查,捣鼓了一整天。

第三天我对着书,基本上能够搞定最简单的json类型的爬虫了。

json大家应该都知道, import json, json.loads( response.text ),就能把它解析为字典或者列表格式,它们是Python内置的数据类型,处理起来非常方便。

那些天,我每天早晨六点钟起床,看爬虫的视频课程。每天晚上自己加一两个小时的班,专门学习爬虫。

有一次爬虫需要用到正则表达式,当天下班之后,我就在网上找了相关的资料来学习,连续学习了三个晚上加三个早晨。

其实在应用的过程中,只要你能对照着网上的代码,自己敲代码,运行有结果了,就会感觉非常简单,容易掌握了。

这样,我用一个星期能完全搞定一个爬虫了。后来缩短到三天,再后来缩短到一天,再后来,简单的爬虫半天就行了。

职责更新,成为骨干

做了一个月爬虫之后,我开始做数据分析方面的工作。

数据分析,我个人感觉学得还可以。我们小组其他的人不怎么会数据分析,而我之前自学到的,在工作中都用上了,给同事们帮了很大忙。

于是,组里同事有数据分析不懂的地方都来找我。

初遭裁员,忐忑成为幸存者

贵人指点,态度为先

我刚入职的时候,问了一下我同学:刚进公司,有哪些需要注意的事情?

然后把第一天主动问主管要任务和文档的事情和同学说了一下。

我同学让我没事别瞎问,否则会显得我很业余。IT公司基本上不会有人没事找事做,而且也并不是每天都那么忙。

他还特地告诉我:如果你技术不是很好,那就每天晚上晚点走。这样即使事情做得不是太好,但主管、同事都会看在眼里,知道你努力了,至少比他们晚走很多。如果事情做得不好,下班还走得早,同事们就有话说了。

这两件事我都听了他的。从一开始,我就每天下班走得很晚,比我们主管、经理都晚,尽可能用多出来的时间熟悉业务,学需要用到的知识。

亲睹裁员,职场无情

很不巧,我进公司得第二个月(刚开始做数据分析不久),公司就开始大规模裁员了

有一天下午,有个人——应该是别的部门的经理——跑到我对面找我们经理,拿了一个名单跟我们经理说:这些人都要裁掉。你看他们,都下班就走,跟实习生一样,直接裁掉不要了。

我当时很忐忑,以为上面会有我的名字。但是后来我才知道,被负责人找谈话得才会被裁,我没有被找谈话,最终留了下来。

我们小组的一个同事,比我早来一个月,被裁了。还有一些工作了一年多,两年的同事,也被裁了。整栋楼里,很多人都被裁了。

结果驱动,贡献为准

我们公司很大,各个部门都有裁员。被裁掉的,绝大部分都是下班走得比较早,或者平时工作中,效率比较低的那种。

效率低其实不一定不是技术不好,很多是技术能力很厉害的,但是不愿意干活。

我们小组被裁的那个同事就很厉害,Python编程、数据库、图像处理都会,尤其爬虫很精通。

同样的爬虫任务,基本上他半天或者一天就能搞定了,我要做两三天才行。

但是,那位同事即使半天就能做完的任务,他也要做一周。非要等到最后一天才跟主管说他做好了。

他是怕主管给他分配新的任务,他不想多做,一周就做一个任务,实际用时半天或一天,空余的时间用来学习别的东西。

他的技术比我好的太多,想法也很好,但是最终他被裁了,而我没有。

确保产出,成为优选

很幸运,我在历时一个多月的裁员中幸存了下来。究其原因:

  • 一方面是因为自己主动加班,表现出了良好的态度;
  • 另一方面是因为相对做事情的效率不错。

虽然我做事情的效率其实不高,但是我做完就会向主管汇报。无论是否再给我安排新任务,都让他知道我的进度。

所以我给他们的印象应该是刚入职是个菜鸟,但是经过两个月,进步不少,不完美,但是至少总能交付结果。

相反,被裁的同组同事即使做好了也不及时的跟主管说,他在主管看来,效率就不高了。而且他还踩点就走,不愿意加班。

独立求解,互帮互助

在工作中,遇到棘手的问题,我会先自己查,实在自己找不到答案,再问我们的那个老员工。

刚开始基本上都是我问他,但是后来他遇到不会的也会来找我讨论。组里其他同事遇到数据分析的问题也会来找我。

我觉得,后续即使再裁员,应该也不会裁掉我。即使真的裁了我,我现在的技能也足以找到新工作了。

规划未来,学无止境需磨砺

虽然我是以机器学习算法工程师的身份进入公司的,但是具体工作还没有涉及到机器学习。

现在,我会在比较空闲的时候,自己跑几个机器学习模型,练习一下。比如前几天刚跑了一个逻辑回归。

之前的机器学习理论都是自学的,不够深入。我准备在接下来的时间里先把机器学习学精通,然后再学其他的。

我个人是比较喜欢自然语言处理,把机器学习学精之后,我会再学自然语言处理。

数据库也要再深入学习。数据库非常重要,只会简单操作是不够的。

这些学完后,会再学Java大数据开发方面的课程。可能会报班,也可能会通过从网上找视频课,买课程的方式来学。

目前的打算是这些。需要学的还有很多,学无止境。

心得体验:机遇需要自己去抓住

有两句话送给大家,是我根据自己的经历总结出来的:

  • 第一,要善于抓住机会。 我以前想搞养殖的,却没成功,错过了非常好的机会。现在第二次的机会,决不能再错过了,所以我选择了转行人工智能。
  • 第二,一定要找到适合自己的领域! 虽然每个人都可以通过学习进入自己不太擅长的领域,但是那样会很吃力。还是在自己擅长的领域发力,才能事半功倍。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智汇AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档