如何成为当下一个合格的算法工程师

知乎上看了SimonS大神的一个live做了一些笔记

一,Q&A部分:

1.一个特征分析的例子。。。(听不懂)

2. 还是一个机器学习的例子,(听不懂)大致,降低复杂度。

3. 传统算法合格的标准,Leetcode(简单,中等毫无压力,hard难度有一定时间思考可以解决)

4. Machine Learning算法基础,数学基础(统计学,微积分,线性代数,离散数学)

5. 数据挖掘相关的竞赛
(ACM没太大帮助,仅仅针对传统算法, 针对数据挖掘的竞赛:Kagle, KDD数据挖掘)

6. 算法工程师需要博士么?

live主只有本科学历,和基础知识。

(硕士比较有必要 因为面试结果好于本科,也就是认可度较高)

7. 高维空间xxx相关的问题(还是听不懂)

8. 基础烂的人,如何学习算法?
(花时间去补基础,锻炼自己独立学习独立解决问题的能力)

9. 数据挖掘要学spark?
Live主认为python足够。

10. 合格的算法工程师需要的数学基础?
后续另外一个部分介绍

11. 怎样练习算法?指传统的算法和数据结构
1)以模块化形式 针对训练。例如学习图轮,相对于刷图论相关的题目
学习动态规划,刷动态规划相关的题目。
(根据模块学习和训练)
2)leetcode 随机刷题。自己想方案来解决
(根据实际问题选择算法解决问题)

12. 有一定高数基础和机器学习的基础概念,如何实际训练
Kaggle 和KDD 训练,
尝试写爬虫自己挖掘数据进行研究。

13. 应用数学/统计专业如何转型算法
1)学习写代码。例如python
2)稳固统计学,并学习机器学习相关的知识。

14. 数据挖掘工程师,有必要深入研究传统算法,例如算法导论么?
还是重点关注学习,统计等算法呢?
作者认为没有必要。
传统算法(算法导论)偏向系统工程方面。
数据挖掘便向统计方面。

15. 本科生非ACMER 需要什么程度才算算法合格?
作者前面说的Leetcode初级,中级无压力。高级题花时间能研究出来。

16. 算法工程师和数据 data scientist的区别
在中小企业是不做区分的。
很大的公司中会有区别。
例如算法工程师提供更底层的模块
数据挖掘工程师更偏向于业务。

17. 算法工程师的编程能力要达到什么水平?
如果不做系统级的开发对编程能力要求并不高。
系统开发,比如分布式计算,并行计算。对编程要求就高很多。

18. 传统数据结构和算法是否对于机器学习有必要?体现在什么地方?
类比参加高考的数理化训练。训练思维的方式,思考方式和基础。
传统数据结构算法接触大量计算机的解决问题的思维。
机器学习中会用到传统数据结构算法,例如图论,动态规划。
字典树,自动机等等。

---------------------------

二,正文大纲:

如何成为当下合格的算法工程师

1. 定义算法工程师
2. 所需内功和外公
3. 不可替代性和成长性
4. 如何快速成长
5. 算法岗面经
6. 量化合格的标准

1. 什么是算法工程师:

从个大招聘网站的算法岗JD开始
主流应用:音频,视频,图,像数据挖掘,搜索
技术核心:机器学习
未来:人工智能
(live主认为机器学习未必是实现人工智能的唯一方式,
万一有人脑的API,那么机器学习热潮可能会退去)

live主分析了一份阿里的JD
涵盖了主流机器学习的应用和方向
C/C++要求。上手python java快。也能造轮子
(同时说明部门老大技术应该很牛,有可能上升的空间就较小)

分析一份百度的JD
C/C++要求,分布式计算,自然语言处理。JD描述看似简单
往往需要讲出自己非常牛的项目经历。

词云图:广告(DSP)
java/C++/Python
数学
硕士

2. 内功和外功

1)内功
统计学
线性代数
微积分
算法和数据结构
机器学习模型
特征工程
自然语言处理
分布式计算
...

2) 外功
C/C++/java
Pyton/R/Matlab
Hadoop/Hive
Spark/Mlib
/Mahout/Tensorflow/Caff
SASS/SPSS
Weka/Stat
MySQL/HBase/MongoDB
...

live主认为高效的方法是先学会如何用,然后在学习如何用好。
也就是先学习外功,再慢慢弥补内功。
如果只专注内功而忽略外功,很容易成为理论家,而不会实际应用。

数学基础:
机器学习,统计学习符号,能够看懂技术书籍上的推导证明

参考学习路线图。
(1,2,3,4,5)完成5条路线可以胜任大部分的应用。

3. 算法工程师不可代替性

1)非增删改查开发接口等体力活
2)大脑价值大于代码价值
3)技术业务两手抓,容易成为项目核心
4)行业热点,不懂技术的老板也知道大数据重要
5)如何量化不可代替性,工作交接时间长

成长性高
待遇高,5年以后薪资成长迅猛
有机会接触到更多IT大牛
大多数ACM获奖的应届生选择算法岗位
挑战性极强,工作难度大
会随着大数据热潮变得抢手

4. 如何快速成长

1)从外功入手,兼顾内功修炼
《集体智慧编程》+《统计基本方法》

所见即所得,有实际反馈。

2)这是工科,不是理科,因此需要更多实际项目的训练
LeetCode + Kaggle

需要更多练习,接近实际的练习。
leetcode训练传统算法
Kaggle数据挖掘竞赛(特征工程,大于学习模型本身的重要性)

3) 训练自己快速阅读paper的能力
ICML NIPS AAAI CVPR等
机器学习相关的期刊的名称。

比如深度学习,可以通过期刊了解到新等模型体系,可以有针对性的做一些学习。

5.算法岗面经

C/C++
1.白板编程:反转二叉树,单链表中删除特定值的节点。
2.Vector空间的增长方式,容器是否线程安全,map的时间空间复杂度,allocator原理,string内存分配。
3.父类和子类中构造函数以及析构函数调用顺序
4.引用和指针的区别,右值引用的特点以及应用场景(移动构造函数),性能提升原因
5.解释深拷贝和浅拷贝并说明应用场景 (自定义拷贝构造函数)
6.C++的优势与劣势,如何看待C++中繁多的特性
C++11 和C++14标准

算法与数据结构
1. 分治,快排思想:求第k大数(中位数)
2. 堆,优先队列:找出出现最多的top100个值
3. 动态规划:数字金字塔,求两个字符串的编辑举例,最长不下降子序列
4. 并查集:求好友圈个数,注意路径压缩优化
5. 线段树,树状数组: 区间更新和查询
6. KMP,AC自动机:海量字符串检索比较

Python
1. 数据分析:numpy,scipy,sklearn, pandas, matplotlib
2. 爬虫: requests, urllib, scrpay, beautifulsoup,  selenium, 中文编码
3. 白板编程:重新实现filter, map, reduce, 反转二叉树
4. Python的优势与劣势,分析为何GIL带来影响。如何解决

如果是初入门可以看廖雪峰的博客进行学习,否则看官方文档。

统计学:
1. 量化统计模型结果好坏(准确,召回,ROC,AUC, F1-Measure)
2. 样本于理论推测的偏差:卡方检验  X^2 = sigma ((A-T)^2/T)
3. 比较两个变量波动性 变异系数 CV = sigma(x) / E(x) = STD(x) / AVG(x)
4. 正态分布N(u, keshi^2) 如何检验正态分布
阅读课本。

数据挖掘:
1. 介绍Logistics Regression, Random Forest, GBDT并分析其优缺点
2. 阐述L1和L2正则项并做比较
3. 如何解决推荐系统冷启动问题
*4. 特征工程:可用性评估,采样,无量纲化, PCA/LDA, 衍生变量
5. 各个模型的损失函,数牛顿学习法,SGD如何训练
6. 如何生产标签并构造用户画像(word2vec, kmeans, LDA, TF-IDF)
【live主认为特征工程是最重要的】

量化合格标准
语言:C++/Java/Python
能使用擅长的语言造轮子,写爬虫,数据分析和挖掘

算法和数据结构:以独立完成Leetcode为佳
(poj, zoj训练)

统计:熟悉基本统计方,法要有自己完整的统计体系。
指标分析->提出猜想->验证->结论->模型

机器学习:熟悉常见模型和特征工程方法
同样要有自己完整的特征工程体系,对模型优劣有基础认识,
以纯手工实现逻辑回归为佳

一些学习资料:
美团点评技术 - 《机器学习中的数据清洗与特征处理综述》  http://tech.meituan.com/machinelearning-data-feature-process.html  
使 sklearn做特征 程  http://blog.csdn.net/xw_classmate/article/details/51331787 
Max Kuhn / Kjell Johnson - Applied Predictive Modeling 
Trevor Hastie / Robert Tibshirani / Jerome Friedman - Elements of Statistical Learning
本文参考文档:
https://cn.100offer.com/blog/posts/313?campaign_code=zhihu
《集体智慧编程》+《统计基本方法》

作者给出连一条路线
可以先做后端开发->边工作边学习转算法

如何成为当下一个合格的算法工程师相关推荐

  1. 如何成为一个合格的算法工程师?这对你来说也许并不是很困难

    基础 算法.数据结构 这俩是基础中的基础,作为一个合格的算法工程师,你可以写不出来红黑树,也可以不懂网络流,但是最基础的排序.递归.动态规划.树.堆栈.队列等算法和数据结构是一定要会的,并且还需要有一 ...

  2. din算法 代码_从啥也不会的小白,如何成为合格的算法工程师?

    作者 | 梁唐来源 | TechFlow(ID:techflow2019)头图 |  CSDN 下载自东方IC大家好,今天这篇文章同样来自于大家的提问.之前有一个小伙伴在留言当中问我,说自己想要从事算 ...

  3. 从啥也不会的小白,如何成为合格的算法工程师?

    作者 | 梁唐 来源 | TechFlow(ID:techflow2019) 头图 |  CSDN 下载自东方IC 大家好,今天这篇文章同样来自于大家的提问.之前有一个小伙伴在留言当中问我,说自己想要 ...

  4. 所以,你自认为是一个合格的机器学习工程师?

    本文作者阿萨姆,原载于知乎专栏,AI科技大本营经授权转载. 这是来自知乎圆桌的一个回答. 机器学习工程师,绝不是一个笼统的概念,每一个特定的位置,对"合格"的考量完全不同.你自认为 ...

  5. 成为一名合格的算法工程师需要掌握哪些技能?

    来自公众号:大数据挖掘DT数据分析 本文共7500字,建议阅读10+分钟. 本文将算法工程师所需的技能进行拆分,带你了解掌握哪些技能才能算是一名合格的算法工程师. 成为一名合格的开发工程师不是一件简单 ...

  6. 我要做一个合格的网络工程师

    我对网络有着极其浓厚的兴趣,无奈生在一个小城市,没有什么机会参加什么正规的培训,自己的基础也很差,可是我决定通过自学参加全国的网络认证考试,做一个合格的网络工程师,而不是一个随处可见的垃圾网络管理员! ...

  7. 一个业务型算法工程师的技能清单

    我们知道算法工程师分为两类:研究型算法工程师和应用型算法工程师.虽然都叫算法工程师,别看只有2字之差,但其实他们的 有着很大的区别. 研究型算法工程师:研究型算法工程师主要分布再各类大厂的研究院,基本 ...

  8. python算法工程师需要学什么_一个优秀的算法工程师必须具备哪些素质?

    导言 怎样成为一名优秀的算法工程师?这是很多从事人工智能学术研究和产品研发的同学都关心的一个问题.面对市场对人才的大量需求与供给的严重不足,以及高薪水的诱惑,越来越多的人开始学习这个方向的技术,或者打 ...

  9. 软件性能测试需要什么资格,一个合格的性能测试工程师需要掌握哪些技能

    问题描述:性能测试工程师究竟需要掌握哪些技能才称得上一个合格的性能测试工程师? 精彩答案: 会员 裸奔的蜗牛: 1.能搭建一个稳定.可重复的测试环境,能够保证测试结果的正确:保证达到测试执行的技术需求 ...

最新文章

  1. 大整数减法(超过整型的表示范围)
  2. html hover 效果,CSS八种让人眼前一亮的HOVER效果的示例代码
  3. 模拟 Codeforces Round #297 (Div. 2) A. Vitaliy and Pie
  4. Cocos2d-3.x版的HelloWorld工程分析 (二)
  5. kettle同步数据到hive 巨慢_超详细教程,kettle ETL mysql到hadoop hive数据抽取,值得收藏...
  6. PyTorch 1.3发布!能在移动端部署,支持Colab云TPU,阿里云上也能用
  7. Linux 后台执行脚本或命令 nohup
  8. redis java api 单例_Java API 操作Redis
  9. redis+mybatis+spring
  10. 小芭比linux怎么装win7_小户型再怎么装也是小?看完我闭嘴了
  11. 攻防世界 WEB 新手练习区 答题(1-12题解)
  12. ping不同的网卡方法
  13. 网站搭建 (第03天) 分页功能
  14. 基于java的教材管理_基于JAVA Web教材管理系统设计与实现.doc
  15. vs2017安装勾选哪些_医学图像处理 VS2017配置ITK
  16. 光纤的基本理论光纤的色散
  17. 「macOS」“邮件”添加账户指南
  18. JavaScript实现动态添加员工信息
  19. 那些年的自动驾驶仿真软件
  20. [超级码力在线编程大赛初赛(二)] 4.小栖的金字塔 施罗德数(超级卡特兰数)

热门文章

  1. http的了解、get/post的区别
  2. chart.js使用用法
  3. 项目管理的十大知识领域
  4. Android 人脸解锁
  5. InternalEror :Dst tensor is not initialized
  6. Excel根据批注的内容自动调整批注大小
  7. 假前端耍耍哒哒工作两年的感悟
  8. 超参数优---贝叶斯优化及其改进(PBT优化)
  9. 汽车汽配行业供应链协同管理平台一体化管理,SCM供应链提升企业竞争力
  10. ExoPlayer详解(官方文档-入门)