零基础转行算法工程师经历分享

0.写在前面

写在前面的内容有点多,想要看干货的同学可以直接跳过。

0.1 为什么要写这篇文章

写这篇文章的初衷很简单,为了报恩。三年前,在自己处于职业规划的迷茫期,四处寻求转变之际,在cc98求职广场(校内论坛)看到一位师兄的offer选择经验分享和转行经历分享,于是也踏上了转行的道路。记得去年师兄在直播时说到,做人要懂得感恩,感恩并不是说要给帮助过你的人发红包或者怎样,而是要把这份帮助传承下去,帮助更多的人。所以我也希望把自己的经历分享出来,希望能给同样处于迷茫期的朋友们一些参考作用。此外,在自学过程中,我也从互联网上收获了大量的知识,这也是我喜欢互联网这个行业的一个原因,很多互联网人乐于分享,知识生态很完善,新人自学起来门槛相当低。受益于互联网的这个生态,我也希望能为这个生态添砖加瓦,帮助更多想要进入这个行业的新人。

0.2 一些链接

- 三年前的转行经历分享的微信链接:

https://mp.weixin.qq.com/s/liGHGrLB3lviTbvAldSu_g(这篇比我的好很多,强烈推荐)

- 本文的微信链接:

https://mp.weixin.qq.com/s/nHvlc7ypOB3A7AzCHH9jdw

ps. 本人也搞了个微信号,旨在让更多的人看到,以帮助更多的人。以后应该会更新一些技术文章或职场文章吧,不打算靠这个吃饭,所以不保证更新频率,看心情更新。有兴趣的可以关注下。

0.3 为什么是经历?

为什么是经历分享而不是经验分享?三年前的我,对互联网行业一无所知,当时在网上看了很多人的经历分享,希望能够复制他们的路线来达成自己的转行目标。现在回头看其实发现,每个人的情况是非常不同的,要想复制别人的路线很难很难。但通过浏览其它人的转行记录,我大概明白了要拿到目标岗位的offer大概需要什么技能,做些什么准备,然后结合自身具体情况进行调整。所以,我这里并不是传授经验什么的,只是单纯的把自己的经历分享出来,其余的,我也帮不了太多。

0.4 转行这件事

其实当初我决定转行时,alpha go还没出世,深度学习还没那么流行。没想到等我找工作的时候,市场已经这么疯狂了。很多人都知道,今年算法求职竞争非常激烈,我想对看到这里的同学说一句,相信我,明年会更更更激烈。所以,如果你确实喜欢互联网技术并且想转行,要么趁早放弃算法改方向,要么就拿出破釜沉舟的勇气把自己all in进去。

好的,废话说完了,开始正文。

1. 转行经历

1.1 转行前状态

大四上学期末决定转行,当时是2015年12月份,当时相关的知识为零,c语言还处于挂科状态,正在重修以求毕业。刚考完研,微积分&线性代数&概率论基础还可以。

以上就是我转行前的一个状态-和一个正常的大一学生差不多。

1.2 2016年上半年

考完研后,开始在coursera上跟吴恩达的Machine Learning课程,作业用的matlab(好像这门课现在改用python了)。在图书馆全职听课,一个月过完了三个月的课时,并完成了所有的作业。通过这门课建立起了对机器学习的一个初步认识和理解,并接触到了一些常用的机器学习算法。

之后在coursera上跟了一门python的入门专项课程,开始学习python,由于之前没什么编程经验,完全没接触过面向对象的编程思想,所以学得有些吃力,不过好在作业是做一个个游戏项目,挺有意思,然后就坚持跟完了课程。

然后是过了一遍《利用python进行数据分析》,感觉用处不大,就是了解了pandas这个工具包,其实后面做项目或者比赛时再学也可以。

然后是边看《大话数据结构》这本书,边在网易云课堂跟了陈越姥姥的《数据结构》课程,表示当时的我对指针还很陌生,连链表这种最简单的数据结构都理解了很久......

1.3 2016年下半年

步入研一上学期,由于课程繁多,并且加了一个学生组织又在学院担任了学生职务,所以自学进度基本上是停滞的。唯一沾点边的,应该就是这半年因为实验室项目需要,学习了java以及安卓开发吧。

1.4 2017年上半年

到了研一下学期,看到实验室师兄都在忙碌地找暑期实习,我也开始焦虑起来。于是就找了个华为数据分析的日常实习,主要内容就是使用pyspark做一些数据处理的工作。实习了一个多月吧,然后被老师发现,就被迫中止了实习。这份实习主要还是让自己的python用的熟练了些,同时了解了下spark,对算法方面没什么帮助。

到了6月份,觉得自己这样太水了,担心找不到工作,于是就去做了个天池的比赛,虽然结果一般,但总算是自己走通了一个数据挖掘项目的所有流程,并且也为以后找实习增添了筹码。

到了6月底,天真的我以为暑假可以有两个月的空闲时间出去实习,所以开始找实习。好不容易拿到了网易的日常实习offer,结果被实验室派往了宁波驻扎,实习再次泡汤。不过好在宁波那边事情不多,在学习了下flask写了个简单的后台程序,完成了实验室的项目之后,便没了什么任务。于是利用暑假的空闲时间,看了半本《java编程思想》(不是必要的,我是因为兴趣),之后用java刷了百来道leetcode。同时在coursera上跟了吴恩达的deeplearning.ai专项课程。暑假就这样过去了。

1.5 2017年下半年

研二开学,辞去了所有的学生工作,实验室项目也结束了,突然整个人就无所事事了。。。于是,研二的前三个月不是在吃鸡就是在看剧。不过还好,心里还存着转行的念头,在吃鸡和看剧的间隙,把《统计学习方法》这本书过了一遍(买来两年才大致过了一遍,惭愧惭愧......)。把常用机器学习算法的原理和推导过程理解了一番,同时把XGBoost的相关博客和论文过了一遍。之后继续找实习。

11月中旬开始在实习僧以及cc98上投递实习,20多份简历石沉大海,唯一一个给我打电话的企业也是要求我换岗(因为简历太水,达不到他们算法工程师实习生的要求),在我拒绝换岗之后,hr最后给了我一个笔试的机会。也是运气够好,后面通过了笔试和面试,得到了这个宝贵的实习机会,开始了为期5个月的实习。

1.6 2018年上半年

这半年应该是我成长最快的半年。实习时第一次接触到nlp,在公司师兄的指导下开始看论文,做项目。实习期间,把word embedding, seq2seq, NER等各种方向的论文过了一遍,然后结合公司需要做了几个小项目,这一段时间真的是飞快成长,所以也真的很感激当时的同事们。

实习期间也参加了春招,由于投递比较早,在拿了腾讯和美团两个暑期实习的offer之后就没再继续找了,最终选择去深圳腾讯进行暑期实习。

腾讯实习期间,就做了一个项目,但经历了从问题定义到模型上线的全部流程,并且在算法阶段复现论文之外,也自己设计了一个简单的模型,并且将之上线,也算是做了一点小小的创新。

这之后,就是秋招了。整个转行经历,也差不多就这些了。

2. 写在后面

其实自己现在的实力远远比不上三年前我看的那个帖子里的师兄(看过我的贴子和师兄帖子的应该能对比出来),一方面是因为自己基础确实很差,本科一路挂科,曾经差点退学警告;另一方面也是因为自己太水,花了大量的时间在桌游&电子游戏上,有个朋友曾说我是她见过最爱玩的程序员......

所以,我就是一个普普通通的菜鸡,秋招因为运气和学校&腾讯光环加持以及市场&公司溢价下拿到了一些看起来不错的offer,但我深知自己依然在泡沫下裸泳,所以如果有大佬看到我这篇水水的转行贴还请轻拍,我以后会继续努力的!

最后,希望这篇文章能对大家有所帮助。