算法工程師研發(fā)技能表
算法工程師
Author:louwill
Machine Learning Lab
? ??
由于算法工程師這個崗位根據不同的業(yè)務場景和應用方向,各自的工作差異相對較大。所以很難有一個一概而論的算法工程師技術棧。比如說做圖像方向的有機器視覺算法崗、做文本方向的有自然語言處理算法崗、做語音的又有語音識別算法崗。
本文僅對算法工程師常用的、基礎的、必備的研發(fā)技能進行梳理。也就是說,不論你是做哪個業(yè)務場景下的算法工作,這些基礎研發(fā)技能都是必知必會的。
這組技能清單主要包括兩大類型,一類是理論技術,另一類是編程語言和工具類。
數據分析
數據分析是算法工程師的基礎能力。當前所有的算法都是基于數據驅動,數據分析可以算作是算法研究的前置條件。主要技術棧包括:
EDA
統(tǒng)計分析
統(tǒng)計繪圖與數據可視化
sql
...
數據結構與算法
數據結構與算法是計算機從業(yè)者的四大基礎課之一,對常用的數據結構和基礎算法有深刻的理解是算法工程師的基本功。目前業(yè)界無論大廠小廠,面試考數據結構與算法題是必備項目。刷leetcode是算法找工作前的必做準備了。
數據結構
線性表
數組
鏈表
字符串
棧
隊列
堆
哈希表
樹
圖
基礎算法
二分查找
排序
遞歸
回溯
分治
雙指針
深度優(yōu)先搜索
廣度優(yōu)先搜索
動態(tài)規(guī)劃
...
機器學習
機器學習是算法崗的核心能力。對于機器學習算法工程師而言,隨著算法崗越來越內卷,對常用的機器學習模型與算法能夠做到深入理解和手推已是普遍要求了。常用的機器學習模型包括:
單模型
線性回歸
邏輯回歸
Lasso
Ridge
knn
ID3
C4.5
CART
感知機
神經網絡
SVM
集成學習
GBDT
AdaBoost
XGBoost
LightGBM
CatBoost
Random Forest
無監(jiān)督模型
kmeans
層次聚類
譜聚類
PCA
SVD
LDA
概率模型
樸素貝葉斯
貝葉斯網絡
EM
MCMC
最大熵
CRF
HMM

機器學習模型導圖
深度學習
深度學習作為機器學習的一個最流行方向,不同的應用領域也相對有各自的側重點,比如做圖像算法的更側重于CNN,做文本算法的更側重于RNN。但常用的網絡模型和發(fā)展沿革都應該做到了然于胸。
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++對于模型算法的工業(yè)化部署和落地至關重要。C++在線教程參考:https://www.w3cschool.cn/cpp/
SQL
SQL是算法人員的基礎研發(fā)工具。能寫一手熟練的SQL腳本也是非常重要的能力體現。
增刪改查
MySQL
Oracle
SQLite
...
Docker
Docker 是一個開源的應用容器引擎,可以讓開發(fā)者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現虛擬化。
爬蟲
爬蟲對于算法工程人員而言可以自主的編寫腳本獲取web頁面上的一些結構化數據?;赑ython的爬蟲應掌握:
前端知識
html
css
javascript
Python第三方庫
urllib
beautifulsoup
request
lxml
scrapy
以上僅為筆者根據個人經驗列出的算法人員研發(fā)技能清單。不可能面面俱到,也不可能以偏概全。重在給大家一個參考。另有知道創(chuàng)宇公司的研發(fā)人員技能表PDF版,有需要的朋友可以加我微信獲取。
往期精彩:
【原創(chuàng)首發(fā)】機器學習公式推導與代碼實現30講.pdf
【原創(chuàng)首發(fā)】深度學習語義分割理論與實戰(zhàn)指南.pdf
