非科班渣硕的算法工程师进击之路

2018 年 9 月 9 日 算法与数据结构

来自:校招薪水(微信号:OfferShow)


    今天跟大家分享一篇师弟的面经,简单介绍一下师弟,本硕都是非计算机专业,完全依赖自学转型成为算法工程师,并且在此次收到了一些比较满意的offer。本人主要讲述了师弟的算法工程师求职经历,希望能够对大家起到帮助作用。在此特别感谢师弟无私的分享以及总结,祝愿大家秋招求职顺利


不要用战术上的勤奋掩盖战略上的懒惰+顺势而为


    现在很多工科同学都有转行互联网的想法,所以今天我简单分享一下我对算法工程师这个岗位的理解以及岗位要求,再分享一下算法工程师的学习路径和面试经验。


岗位理解
    算法工程师主要是将机器学习、深度学习的一些技术应用到实际的商业场景当中。现在根据不同的商业场景给大家罗列一下算法工程师可以干什么以及对应的公司或产品

 

商业场景

公司/产品

搜索、广告、推荐

百度、头条、天猫

图像视觉

商汤、依图、旷世

语音、自然语言处理

小米小爱同学、英语流利说、阿里小蜜

交通物流

菜鸟网络、滴滴出行、高德地图

金融

蚂蚁金服、陆金所、众安科技

医疗

腾讯觅影、推想科技、依图医疗

 

    算法工程师可以去的公司很多,能去具体做的业务也很多,但是作为应届生没有非常多的业务经验,主要是要打好技术基础,然后选准业务方向去找工作,为公司带来商业价值。


岗位要求

不同公司的具体要求不一样,但是大同小异。以阿里为例,算法工程师的要求基本可以拆分为以下七点:

  1. 算法知识:机器学习、深度学习基础知识;

  2. 编程开发:工程开发语言 C++/Java、数据处理模型构建语言 Python;

  3. 数学:微积分、线代、概率论的基础知识;

  4. 大数据平台:Hadoop、Hive、Spark等平台的理解,会熟练地写SQL;

  5. Linux开发:shell脚本;

  6. 具体知识:计算机视觉、自然语言处理、推荐系统

  7. 论文阅读及撰写能力

 

学习路径

    知道了算法工程师可以干什么以及对应的招聘要求之后,就可以有针对性地去学习实践起来。学习路径主要分为三大块:自学+比赛+实习


1

自学

  1. 针对传统的机器学习,主要是看 李航的《统计学习方法》,周志华的《机器学习》,吴恩达的《Machine Learning》课程。这里的“看”不仅仅是“看”,是要把书本、课程中的公式推导能够完全自己手写一遍,下面的学习也是一样。不要仅仅是个调包侠、调参侠;

  2. 针对深度学习,建议先按照Tensorflow的官方tutorial实践几个案例。然后再去看 斯坦福的 CS231n, CS224d分别学习卷积神经网络、循环神经网络在计算机视觉和自然语言处理中的应用,Tensorflow里面也有相关的案例,可以结合着实践。也可以看IanGoodfellow的《深度学习》,这本书有的推导比较难懂,在看的过程中要复习很多数学基础知识,看不懂可以放一放;

  3. 针对编程开发,可以把《Python核心编程》和《Java编程思想》的这类书看一看,或者嫌麻烦直接看看 菜鸟教程里面的语法就可以。关键还是要去Github找一些项目动手实践,熟悉编程开发;

  4. 针对大数据平台,因为现在很多大公司都有自己非常成熟的大数据开发平台了,所以主要是了解这些平台是如何运作的,然后要掌握Hive SQL可以熟练地处理数据,感兴趣的话也可以自己动手搭一套Hadoop、Hive;

  5. 针对传统的数据结构与算法,可以看《数据结构与算法》这本书,然后面试前多刷Leetcode;

  6. 平时尽量看一些人工智能领域比较经典的论文,如果没时间看论文,可以关注一些相关的公众号,比如机器之心;

  7. 多关注求职招聘的公众号,整理总结别人的成功和失败经验,督促自己学习。


   小编插一句:说实话,偶尔也可以去看看秋招的薪资动态(校招薪水公众号菜单栏查询),感受下紧张感以及薪资压迫力,一定程度上也有督促作用哦!


2

比赛

    每年都有很多数据挖掘相关的比赛可以关注并且实践。

    首推Kaggle的比赛,一开始可以不做比赛,可以先看看别人比赛的优秀Kernel,那些Kernel有很多可以借鉴的地方,通过这种方式,让自己熟悉数据处理、模型训练、调参优化的过程。

    其次,可以参加国内的天池、蚂蚁人工智能等比赛,最好找到靠谱的队友,坚持完整地参加一个比赛并且取得比较好的名次。

   最后,通过这些比赛积累实战经验、认识一些以后可能帮你内推的大牛。


3

实习

    这里的实习主要是指每个公司的日常实习。实习渠道主要如下。

    在正式找工作之前,还是最好有一两份靠谱的实习经历。因为自己平时的学习和比赛,离真正的工作要求还有很远很远。另外没事可以多去找点实习面试感受一下,不一定要去实习,但可以提前锻炼锻炼面试的感觉,而且通过面试打破自己的舒适区,知道自己的不足,这样更有动力去弥补不足,持续精进。


面试经验
1

校招节奏

    互联网公司的招聘特别早,比传统行业的公司会早很多,对于转行的同学千万要注意互联网公司的校招节奏

    校招分暑期实习+秋招两个阶段。

    以2019年毕业为例,2018年3月份左右就得开始准备互联网公司的暑期实习内推,如果内推不过,可以参加2018年6月份左右的暑期实习正式批。

    同样的是对于秋招,2018年7月左右得开始准备秋招内推,如果内推不过再参加2018年9月左右的秋招正式批。

    不论是对于暑期实习还是秋招,好的公司基本在内推阶段就会把人招满,在正式批阶段,只有极少数的HC剩余,所以尽量还是在内推阶段投递简历,准备面试。

    对于很多大的互联网公司,暑期实习约等于秋招,因为暑期实习招人是按照秋招的HC 1:1招聘的,暑期实习转正比秋招的概率大很多。所以尽量还是在暑期实习阶段就去自己最终想去的公司。

    在投简历的时候一定要多加入一些微信群,多抱团,这样可以避免自己遗漏一些重要招聘,另外要找一个靠谱的师兄内推,可以随时帮你查看公司的面试进度。


2

算法工程师面试经验分享

    下面分享下我自己记录的两家顶级互联网公司的机器学习算法工程师的面试题目。

第一家公司

一面 技术面

- 全面围绕简历来讲,简历里的东西问的很多,主要看你有没有做过,以及做过的东西有没有深入的理解;

- 问了算法比赛,问了比赛和第一名的差距在哪里?有没有想过还有什么改进方法?

- Tensorflow用的多吗?用过里面的哪些接口?Tensorflow训练模型的大致流程是怎么样的?

- word2vec原理,解释

- k-means聚类和 密度聚类的区别

- 朴素贝叶斯的推导

- CNN中的卷积、池化怎么理解?

 

二面 技术面

- RF、GBDT、XGBoost解释一下各自的原理以及异同;

- GBDT为什么要用负梯度代替残差?

- 为什么xgb效果更好?

- 为什么集成学习效果会好?推导相关公式?

- Adam优化算法的公式,和普通SGD有什么区别?

- LR、SVM异同

 

三面 技术面

- 常用降维方法有哪些??

- embedding降维原理是什么?

- PCA和LDA降维有什么区别?

- 推荐系统中的稀疏矩阵一般怎么处理?

- FM、FFM的原理简单讲一下

 

四面 总监面,非技术

- 你做过最牛逼的事,牛逼的项目??

- 社团经历?

 

五面,技术交叉面

- k-means和k-means++有什么区别?

- stacking为什么效果就好?有没有严格的推导?

- 集成学习的条件是什么?为什么要这样?推导?

- LSTM结构讲一下,LSTM为什么可以比普通的RNN效果更好?

- 为什么GBDT模型可以进行特征组合??

- 推荐系统有没有什么前沿的东西可以介绍介绍的?

 

HR面

- 你个人缺点?

- 如何看待加班?

- 个人规划?

 

第二家公司

笔试

- 刷牛客,刷leetcode,基本就可以了。

 

一面 技术面

- LSTM结构,LSTM里面参数个数是多少?梯度消失/爆炸原因,及解决办法和详细推导

- 模型的评价指标,二分类AUC怎么写?多分类呢?

- Python 浅拷贝、深拷贝

- 算法比赛介绍

- 有哪些offer了

 

二面 技术面

- 写个SQL,写个shell

- LSTM介绍

- 各个排序算法复杂度

- 连续传100000000个数进来,如何得到里面最大的100个数?heapq

- b+树了解吗

- 类别特征如何处理?

- 树模型是怎么一个训练流程?

- 稀疏特征处理?

 

三面 总监面

- 比赛为什么这么取特征?

- 比赛跟别人差距在哪里?

- 推荐系统了解吗?FM、FFM?

- GBDT+LR为什么效果好?

 

HR面

- 有哪些offer了?

- 未来规划?

- 薪资要求?

- 有女朋友吗?

- 对我们公司的感受

 

更多的面经,可以去牛客网和知乎搜索,有非常多靠谱的面经,没事把别人面经拿出来看看,可以很快知道自己的不足。准备面试的时候,最要避免自我陶醉,通过看别人的面经可以戳醒自己。

 

另外感慨一下,转型不易,归根到底还是要在持续不断地努力中保持思考,把握好当下的机会。

 

小编视角

    看完师弟的分享,小编不得不说,求职真的很稳!从目标定位-了解岗位职能以及自身兴趣,到为此充分准备-刷题以及参与比赛,实习面试等,再到求职人脉以及资源获取-靠谱学长内推,实时跟进秋招进展,最后积极准备面试-了解面经以及积极总结反思。整个流程稳扎稳打,是一位非常务实的求职者,而这也是小编向大家一直倡导跟建议的,做一个踏实的求职者。不盲目,不海投,了解关键步骤,脚踏实地准备好所有的阶段。当然了,拿到了offer其实还有最后一步,就谈薪资,签合同,顺利毕业再体检入职哈!这点可别忘记了哦,记得来校招薪水公众号菜单栏来了解薪资福利政策哦!

   最后,借师弟一句话,依循正确的学习路径+持续的时间投入,一定会收获很多满意的offer,预祝大家秋招求职顺利哦!



●编号743,输入编号直达本文

●输入m获取文章目录

推荐↓↓↓

大数据与人工智能

更多推荐18个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

登录查看更多
5

相关内容

在数学和计算机科学之中,算法(Algorithm)为一个计算的具体步骤,常用于计算、数据处理和自动推理。精确而言,算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数。 来自维基百科: 算法
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
198+阅读 · 2020年2月11日
资源 | 李航老师《统计学习方法》(第2版)课件下载
专知会员服务
249+阅读 · 2019年11月10日
最难求职季如何斩获算法岗
AINLP
3+阅读 · 2019年4月25日
人工智能人才的真正缺口,是算法原理扎实的工程师,而不是调参工
机器学习算法与Python学习
4+阅读 · 2018年7月22日
年薪40万AI工程师必备的能力项,你达标了吗?
算法与数据结构
3+阅读 · 2018年4月11日
这是机器学习算法工程师最好的时代!
机器学习算法与Python学习
4+阅读 · 2018年3月12日
一个年薪30万的应届生告诉你应该如何学“算法”!
全球人工智能
4+阅读 · 2018年1月23日
Arxiv
12+阅读 · 2019年1月24日
Deep Randomized Ensembles for Metric Learning
Arxiv
5+阅读 · 2018年9月4日
Arxiv
22+阅读 · 2018年8月30日
VIP会员
相关资讯
最难求职季如何斩获算法岗
AINLP
3+阅读 · 2019年4月25日
人工智能人才的真正缺口,是算法原理扎实的工程师,而不是调参工
机器学习算法与Python学习
4+阅读 · 2018年7月22日
年薪40万AI工程师必备的能力项,你达标了吗?
算法与数据结构
3+阅读 · 2018年4月11日
这是机器学习算法工程师最好的时代!
机器学习算法与Python学习
4+阅读 · 2018年3月12日
一个年薪30万的应届生告诉你应该如何学“算法”!
全球人工智能
4+阅读 · 2018年1月23日
Top
微信扫码咨询专知VIP会员