算法工程师研发技能表

共 1853字,需浏览 4分钟

 ·

2020-12-07 17:10

算法工程师

Author:louwill

Machine Learning Lab

    

由于算法工程师这个岗位根据不同的业务场景和应用方向,各自的工作差异相对较大。所以很难有一个一概而论的算法工程师技术栈。比如说做图像方向的有机器视觉算法岗、做文本方向的有自然语言处理算法岗、做语音的又有语音识别算法岗。


本文仅对算法工程师常用的、基础的、必备的研发技能进行梳理。也就是说,不论你是做哪个业务场景下的算法工作,这些基础研发技能都是必知必会的。

这组技能清单主要包括两大类型,一类是理论技术,另一类是编程语言和工具类。


数据分析

数据分析是算法工程师的基础能力。当前所有的算法都是基于数据驱动,数据分析可以算作是算法研究的前置条件。主要技术栈包括:

  • EDA

  • 统计分析

  • 统计绘图与数据可视化

  • sql

  • ...


数据结构与算法

数据结构与算法是计算机从业者的四大基础课之一,对常用的数据结构和基础算法有深刻的理解是算法工程师的基本功。目前业界无论大厂小厂,面试考数据结构与算法题是必备项目。刷leetcode是算法找工作前的必做准备了。


数据结构

  • 线性表

  • 数组

  • 链表

  • 字符串

  • 队列

  • 哈希表

基础算法

  • 二分查找

  • 排序

  • 递归

  • 回溯

  • 分治

  • 双指针

  • 深度优先搜索

  • 广度优先搜索

  • 动态规划

  • ...


机器学习

机器学习是算法岗的核心能力。对于机器学习算法工程师而言,随着算法岗越来越内卷,对常用的机器学习模型与算法能够做到深入理解和手推已是普遍要求了。常用的机器学习模型包括:

  • 单模型

    • 线性回归

    • 逻辑回归

    • Lasso

    • Ridge

    • knn

    • ID3

    • C4.5

    • CART

    • 感知机

    • 神经网络

    • SVM

  • 集成学习

    • GBDT

    • AdaBoost

    • XGBoost

    • LightGBM

    • CatBoost

    • Random Forest

  • 无监督模型

    • kmeans

    • 层次聚类

    • 谱聚类

    • PCA

    • SVD

    • LDA

  • 概率模型

    • 朴素贝叶斯

    • 贝叶斯网络

    • EM

    • MCMC

    • 最大熵

    • CRF

    • HMM


机器学习模型导图


深度学习

深度学习作为机器学习的一个最流行方向,不同的应用领域也相对有各自的侧重点,比如做图像算法的更侧重于CNN,做文本算法的更侧重于RNN。但常用的网络模型和发展沿革都应该做到了然于胸。

  • DNN

    • MLP

    • BP

  • CNN

    • 分类

    • 检测

    • 分割

    • AlexNet/VGG/GoogleNet/ResNet/DenseNet

    • ...

  • RNN

    • LSTM

    • Transformer

    • Attention

    • Bert

    • XLNet

    • ...

  • GNN

  • ...


Linux

Linux是算法工程师干活主要工具,基础和常用命令必须熟练。

  • Linux

  • Shell

  • Vim


Git

  • 版本管理

  • 远程仓库

  • 分支管理

  • ...


Python

Python的重要性就不多说了。完整教程可参考廖雪峰老师:

https://www.liaoxuefeng.com/wiki/1016959663602400

算法人员应熟练掌握的第三方库包括:

  • sklearn

  • tensorflow

  • keras

  • pytorch

  • cv2

  • nltk

  • ...


C++

C++跟Python一样,甚至重要性还要强于Python,C++对于模型算法的工业化部署和落地至关重要。C++在线教程参考:https://www.w3cschool.cn/cpp/


SQL

SQL是算法人员的基础研发工具。能写一手熟练的SQL脚本也是非常重要的能力体现。

  • 增删改查

  • MySQL

  • Oracle

  • SQLite

  • ...


Docker

Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。


爬虫

爬虫对于算法工程人员而言可以自主的编写脚本获取web页面上的一些结构化数据。基于Python的爬虫应掌握:

  • 前端知识

    • html

    • css

    • javascript

  • Python第三方库

    • urllib

    • beautifulsoup

    • request

    • lxml

    • scrapy


以上仅为笔者根据个人经验列出的算法人员研发技能清单。不可能面面俱到,也不可能以偏概全。重在给大家一个参考。另有知道创宇公司的研发人员技能表PDF版,有需要的朋友可以加我微信获取。


往期精彩:

【原创首发】机器学习公式推导与代码实现30讲.pdf

【原创首发】深度学习语义分割理论与实战指南.pdf

 真正想做算法的,不要害怕内卷

 技术学习不能眼高手低

 技术人要学会自我营销

 做人不能过拟合

求个在看

浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报