0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何成為一個算法工程師

工程師人生 ? 來源:工程師吳畏 ? 2019-07-29 17:16 ? 次閱讀

近年來,算法行業(yè)異?;鸨惴?a target="_blank">工程師年薪一般20萬~100 萬。越來越多的人學(xué)習(xí)算法,甚至很多非專業(yè)的人也參加培訓(xùn)或者自學(xué),想轉(zhuǎn)到算法行業(yè)。盡管如此,算法工程師仍然面臨100萬的人才缺口。缺人、急需,算法工程師成為眾多企業(yè)獵頭爭搶的對象。

計算機(jī)的終極是人工智能,而人工智能的核心是算法,算法已經(jīng)滲透到了包括互聯(lián)網(wǎng)、商業(yè)、金融業(yè)、航空、軍事等各個社會領(lǐng)域。可以說,算法正在改變著這個世界。

下面說說如何成為一個算法工程師,萬丈高樓平地起,盡管招聘啟事的算法工程師都要求會機(jī)器學(xué)習(xí),或數(shù)據(jù)挖掘,推薦算法,圖像識別等,但剛?cè)腴T者,還需要先從基礎(chǔ)學(xué)起,寬基礎(chǔ),精技術(shù)。

大學(xué)期間必須要學(xué)好的課程:C/C++兩種語言(或JAVA)、高等數(shù)學(xué)、線性代數(shù)、數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)、數(shù)據(jù)庫原理、操作系統(tǒng)原理、計算機(jī)組成原理、人工智能、編譯原理、算法設(shè)計與分析。

?大一上學(xué)期:

1.C語言基礎(chǔ)語法必須全部學(xué)會,提前完成C語言課程設(shè)計。

2.簡單數(shù)學(xué)題:求最大公約數(shù)、篩法求素數(shù)、康托展開、同余定理、次方求模等。

3.計算機(jī)課初步:三角形面積,三點(diǎn)順序等等。

4.學(xué)會計算簡單程序的時間復(fù)雜度和空間復(fù)雜度。

5.二分查找、貪心算法經(jīng)典算法。

6.簡單的排序算法:冒泡排序法、插入排序法。

7.高等數(shù)學(xué)。

8.操作系統(tǒng)應(yīng)用:DOS命令,學(xué)會Windows系統(tǒng)的一些小知識,學(xué)會編輯注冊表,學(xué)會使用組策略管理器(gpedit.msc)管理組策略等。

?大一下學(xué)期:

1.掌握C++部分語法,如引用類型、函數(shù)重載等,基本明白什么是類。

2.學(xué)會使用棧和隊(duì)列等線性結(jié)構(gòu)。

3.掌握BFS和DFS以及樹的前序、中序、后序遍歷。

4.學(xué)會分治策略。

5.掌握排序算法:選擇排序、歸并排序、快速排序、計數(shù)、基數(shù)排序等等。

6.動態(tài)規(guī)劃:最大子串和、最長公共子序列、最長單調(diào)遞增子序列、01背包、完全背包等。

7.數(shù)論:擴(kuò)展歐幾里德算法、求逆元、同余方程、中國剩余定理。

8.博弈論:博弈問題與SG函數(shù)的定義、多個博弈問題SG值的合并。

9.圖論:圖的存儲、歐拉回路的判定、單源最短路Bellman-Ford算法及Dijkstra算法、最小生成樹Kruskal算法及Prim算法。

10.學(xué)會使用C語言進(jìn)行網(wǎng)絡(luò)編程與多線程編程。

11.高等數(shù)學(xué)、線性代數(shù):做幾道“矩陣運(yùn)算”分類下的題目。

12.學(xué)習(xí)matlab,如果想?yún)⒓訑?shù)學(xué)建模大賽,需要學(xué)這個軟件。

?大一假期:

1.掌握C++語法,并熟練使用STL(重要)。

2.試著實(shí)現(xiàn)STL的一些基本容器和函數(shù)、使自己基本能看懂STL源碼。

3.數(shù)據(jù)結(jié)構(gòu):字典樹、并查集、樹狀數(shù)組、簡單線段樹。

4.圖論:使用優(yōu)先隊(duì)列優(yōu)化Dijkstra算法及Prim算法,單源最短路徑之SPFA,差分約束系統(tǒng),多源多點(diǎn)最短路徑之FloydWarshall算法,求歐拉回路(圈套圈算法)。

5.拓?fù)渑判颍簭?fù)雜BFS和DFS搜索、復(fù)雜模擬題訓(xùn)練。

6.動態(tài)規(guī)劃:多重背包、分組背包、依賴背包等各種背包問題(參見背包九講)。

7.計算幾何:判斷點(diǎn)是否在線段上、線段相交、圓與矩形的關(guān)系、點(diǎn)是否在多邊形內(nèi)、點(diǎn)到線段的最近點(diǎn)、多邊形面積、求多邊形重心、求凸包、點(diǎn)在任意多邊形內(nèi)外的判定。

8.學(xué)習(xí)使用C/C++連接數(shù)據(jù)庫、學(xué)習(xí)一種C++的開發(fā)框架來編寫一些窗體程序(如MFC、Qt)。

?大二全年:

1.熟練掌握數(shù)據(jù)結(jié)構(gòu):單調(diào)隊(duì)列、堆、并查集、樹狀數(shù)組、哈希表、線段樹、LCA與RMQ的轉(zhuǎn)化、后綴樹、字典樹、KMP算法、AC自動機(jī)理論與實(shí)現(xiàn)等等。

2.圖論一:強(qiáng)連通分量、雙連通分量、割點(diǎn)、橋、強(qiáng)連通分量和雙連通分量縮點(diǎn)、二分圖匹配(二分圖最大匹配、最小點(diǎn)集覆蓋、最小路徑覆蓋、二分圖最優(yōu)匹配、二分圖多重匹配)、網(wǎng)絡(luò)流(最大流的基本SAP、最大流的ISAP/Dinic等高效算法、最小費(fèi)用最大流、最大流最小割定理)等。

3.動態(tài)規(guī)劃:斜率優(yōu)化、四邊形優(yōu)化動態(tài)規(guī)劃、樹形動態(tài)規(guī)劃、狀態(tài)壓縮動態(tài)規(guī)劃,多做動態(tài)規(guī)劃難題,訓(xùn)練思維,向動態(tài)規(guī)劃更高級進(jìn)階。

4.數(shù)論和組合數(shù)學(xué):高斯消元法、積性函數(shù)的應(yīng)用、歐拉定理、費(fèi)馬小定理、威爾遜定理、群論基礎(chǔ)、Polya定理與計數(shù)問題、Catalan數(shù)。

5.計算幾何:多邊形間并蹱點(diǎn)對、凸多邊形間對蹱點(diǎn)對、四邊形剖分、三角剖分、凸多邊形最小周長外接矩形、凸多邊形最小面積外接矩形、凸多邊形間最小距離、凸多邊形直徑、凸多邊形的寬度等各種旋轉(zhuǎn)卡殼相關(guān)算法、最小覆蓋圓、定圓最大點(diǎn)集覆蓋、平面上最近點(diǎn)對、三維計算幾何算法。

6.圖論二:網(wǎng)路流的各種構(gòu)圖訓(xùn)練(重要)、最小割與最小點(diǎn)權(quán)覆蓋等的關(guān)系、次小生成樹、第k短路、最小比率生成樹等。

7.學(xué)好專業(yè)課知識:理解數(shù)據(jù)庫原理、學(xué)會SQL語句、學(xué)會使用觸發(fā)器、學(xué)好計算機(jī)組成原理。

?大二假期:

1.自學(xué)完離散數(shù)學(xué)。

2.自學(xué)概率論部分章節(jié)。

3.自學(xué)操作系統(tǒng)部分章節(jié)。

?大三以后:

選擇自己感興趣的方向進(jìn)行研究,參加ACM-ICPC競賽的隊(duì)員,需要全面學(xué)習(xí)和集訓(xùn)。

?課程推薦:

必學(xué)課程:C/C++/JAVA、數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計與分析、離散數(shù)學(xué)、線性代數(shù)、概率論、操作系統(tǒng)、網(wǎng)絡(luò)原理、編譯原理。

?書籍推薦

1.《C++ Primer中文版》

2.《C++編程思想》

3.《算法競賽入門經(jīng)典》

4.《算法競賽入門經(jīng)典:訓(xùn)練指南》

5.《趣學(xué)算法》

6.《ACM國際大學(xué)生程序設(shè)計競賽:知識與入門》

7.《ACM國際大學(xué)生程序設(shè)計競賽:題目與解讀》

8.《算法藝術(shù)與信息學(xué)競賽》

9.《組合數(shù)學(xué)》

10.《數(shù)論入門》

11.《算法導(dǎo)論》

12.《ACM-ICPC世界總決賽試題解析》

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法工程師
    +關(guān)注

    關(guān)注

    2

    文章

    30

    瀏覽量

    6078
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?

    ,共同進(jìn)步。 歡迎加入FPGA技術(shù)微信交流群14群! 交流問題() Q:FPGA中的FPGA算法工程師、FPGA邏輯工程師、FPGA原型驗(yàn)證工程師
    發(fā)表于 09-23 18:26

    正是拼的年紀(jì)|65歲電子工程師上班VLOG #65歲退休 #電子工程師 #搞笑 #上班vlog

    電子工程師
    安泰小課堂
    發(fā)布于 :2024年07月25日 11:31:02

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件工程師是軟件開發(fā)領(lǐng)域中的種專業(yè)工程師
    發(fā)表于 05-16 11:00

    大廠電子工程師常見面試題#電子工程師 #硬件工程師 #電路知識 #面試題

    電子工程師電路
    安泰小課堂
    發(fā)布于 :2024年04月30日 17:33:15

    電源工程師的成長路徑

    即將走馬上任電源工程師這個崗位,請問各位大佬,這個崗位的職業(yè)路徑般是怎樣的?
    發(fā)表于 04-08 14:19

    位硬件工程師的歷練之路:從入門學(xué)習(xí)理論到... #搞笑 #硬件工程師 #電子工程師 #揚(yáng)興科技

    硬件工程師揚(yáng)興科技
    揚(yáng)興科技
    發(fā)布于 :2024年03月13日 17:50:21

    如何搞崩硬件工程師心態(tài)?試試對ta說這幾句

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2024年02月20日 18:05:49

    優(yōu)秀電源工程師需要哪些必備技能?

    就帶大家細(xì)數(shù)下優(yōu)秀電源工程師具備的那些技能。、新手必備課程成為名電源高手需要扎實(shí)的理論基礎(chǔ),涉及電路原理、語言編程和控制理論等多個學(xué)科
    發(fā)表于 01-29 11:29

    #人工智能 #FPGA 怎么成為合格的FPGA工程師

    fpga工程師
    明德?lián)P助教小易老師
    發(fā)布于 :2023年12月18日 21:19:01

    FPGA工程師需要具備哪些技能?

    上獲取。此外,他們還需要知道如何使用現(xiàn)成的PCB和其他電路板,以進(jìn)行各種通信協(xié)議的測試和驗(yàn)證。 六、測試驗(yàn)證 測試驗(yàn)證是FPGA設(shè)計中非常關(guān)鍵的環(huán)節(jié)。FPGA工程師需要利用各種工具
    發(fā)表于 11-09 11:03

    如何成為名優(yōu)秀的嵌入式工程師?

    如何成為名優(yōu)秀的嵌入式工程師?嵌入式學(xué)習(xí)的第步,首先是C語言。 1.理解內(nèi)存管理:C語言不同于高級語言,它不會自動管理內(nèi)存。因此,你需要理解并掌握如何使用malloc()、fre
    發(fā)表于 11-07 15:36