.NET全棧開發工程師學習路徑
轉自:https://www.cnblogs.com/edisonchou/p/4820676.html
.NET全棧開發工程師學習路徑
PS:最近一直反覆地看部落格園以前釋出的一條.NET全棧開發工程師的招聘啟事,覺得這是我看過最有創意也最樸實的一個招聘啟事,更為重要的是它更像是一個技術提綱,能夠指引我們的學習和提升,現在轉載過來與各位園友分享。
.NET全棧開發工程師
1.職位描述
獨立負責至少一個產品的前後端開發工作
//注0:今年是部落格園開發團隊發展的關鍵一年,我們有兩個重要目標——實踐領域驅動設計與實現.NET應用的跨平臺,我們期待有志開發者的加盟!
//注1:不要求立即全棧,但要在一定時間內成長為全棧。
//注2:投遞簡歷時需要談一下:你為什麼想加入部落格園團隊。
//注3:除了面試,你還需要完成一份程式碼作業,我們要看你寫的程式碼。漂亮程式碼是吸引我們的重要地方。
2.職位要求
* 喜歡編寫程式碼。{
是發自內心的真愛——真正的愛好。在日復一日年復一年,看似枯燥的編碼工作中,能夠享受取之不盡的用程式碼進行創作的樂趣。
}
* 樂於解決問題。{
作為程式設計師,你有一個永遠無法迴避的問題——每天要面對各種各樣的問題,而唯一的解決之道就是喜歡上解決問題。不僅要喜歡上解決問題後的興奮感覺,更要喜歡上解決問題過程中的煎熬。
}
* 討厭重複程式碼。{
將重複程式碼當作一種垃圾,自己不亂扔垃圾,也不能容忍別人亂扔垃圾。
}
* 講究程式碼命名。{
程式碼如詩,命名如詩句。在程式碼的創作過程中,追求命名的優雅,不僅讓自己也讓別人讀起程式碼來賞心悅目。
}
* 寫過三年程式碼
程式語言不限。但從事這個職位,需要用C#,因為團隊協作開發要使用統一的工具。
}
* 基礎知識牢靠。{
比如知道三大原理(計算機原理、作業系統原理、編譯原理)兩個協議(TCP與HTTP協議)一種結構(資料結構)。不牢靠的地方,能及時補課,夯實基礎。
}
* 基本功夠紮實。{
比如正則表示式不在話下,Windows/Linux伺服器玩得轉,Git輕車熟路。如有基本功不紮實,能積極補練基本功。
}
* 能夠面向物件。{
至少熟悉一門面向物件程式語言,有一定的面向物件設計基礎,能夠將業務邏輯轉變為物件之間的互動。
}
* 英語水平不賴。{
能夠流暢地閱讀英文技術資料,能夠順暢地與國外開發者用英文進行文字交流,能夠準確地用英文進行程式碼中的命名,能夠用英文寫程式碼註釋與git提交說明。
}
* 自學能力很強
能夠根據面臨的實際問題,根據自己的不足,根據自己的興趣,根據未來發展的需要,持續地進行學習。更要能在自己所犯的錯誤中學習。一邊寫程式碼,一邊學習;一邊學習,一邊寫程式碼,這就是你的程式人生。
}
* 自我驅動開發。{
在我們這裡沒有產品經理,沒有專案經理,一切由程式設計師說了算。你要能直接面對使用者,主動挖掘使用者需求,將之變為自己的想法,然後用漂亮的程式碼實現。
}
紮實的基礎知識之路
縱觀部落格園的招聘啟事條目中,基礎知識的牢靠一條中提出了“三大原理、兩個協議和一種結構”,因此我開始補習我的計算機專業基礎知識,下面列出我的補課成果:
1.一種結構:資料結構
參考書目:《大話資料結構》、《資料結構(C#語言描述)》、《劍指Offer》
①線性表部分:
線性表(上){ 陣列、ArrayList }
線性表(中){ 單鏈表、雙鏈表、LinkedList }
線性表(下){ 迴圈連結串列、約瑟夫問題 }
②棧與佇列部分:
棧 { LIFO、Stack<T> }
佇列 { FIFO、Queue<T> }
③樹與二叉樹部分:
樹與二叉樹(上){ 二叉樹的建立與遞迴遍歷 }
樹與二叉樹(中){ 二叉樹的非遞迴遍歷與二叉查詢樹 }
樹與二叉樹(下){ 二叉樹的應用:求解四則運算 }
④圖部分:
圖(上){ 圖的基本概念、儲存結構與模擬實現 }
圖(中){ 圖的深度與廣度優先遍歷演算法與實現 }
圖(中){ 最小生成樹演算法介紹與實現 }
圖(下){ 最短路徑演算法介紹與實現 }
⑤查詢部分:
查詢(上){ 二分查詢、二叉查詢樹、平衡二叉樹、SortedDictionary<TKey,TValue> }
查詢(下){ 雜湊表、Hashtable、Dictionary、三種查詢表的對比測試 }
⑥排序部分:
排序:{ 插入排序、交換排序、選擇排序、歸併排序 }
⑦劍指Offer演算法題部分:
面試題1:{ 實現Singleton模式 } 面試題2:{ 二維陣列中的查詢 }
面試題3:{ 替換空格 } 面試題4:{ 從尾到頭列印連結串列 }
面試題5:{ 重建二叉樹 } 面試題6:{ 用兩個棧實現佇列 }
面試題7:{ 旋轉陣列的最小數字 } 面試題8:{ 斐波那契數列 }
面試題9:{ 二進位制中1的個數 } 面試題10:{ 數值的整數次方 }
面試題11:{ 列印1到最大的n位數 } 面試題12:{ 在O(1)時間刪除連結串列 }
面試題13:{ 調整整數陣列使得奇數在偶數之前 } 面試題14:{ 連結串列的倒數第k個節點 }
面試題15:{ 反轉連結串列 } 面試題16:{ 合併兩個排序的連結串列 }
面試題17:{ 二叉樹的子結構 } 面試題18:{ 二叉樹的映象 }
面試題19:{ 包含Min函式的棧 } 面試題20:{ 棧的壓入、彈出序列 }
面試題21:{ 從上到下列印二叉樹 } 面試題22:{ 二叉搜尋樹的後序遍歷序列 }
面試題23:{ 二叉樹中和為某一值的路徑 } 面試題24:{ 複雜連結串列的複製 }
面試題25:{ 二叉搜尋樹與雙向連結串列 } 面試題26:{ 字串的排列 }
面試題27:{ 最小的k個數 } 面試題28:{ 連續子陣列的最大和 }
面試題29:{ 醜數 } 面試題30:{ 第一次只出現一個的字元 }
面試題31:{ 兩個連結串列的第一個公共節點 } 面試題32:{ 數字在排序陣列中出現的次數 }
面試題33:{ 二叉樹的深度 } 面試題34:{ 翻轉單詞順序vs左旋轉字串 }
面試題35:{ 將字串轉換為數字 }
2.兩個協議:TCP與HTTP協議
① TCP/IP協議
參考書目:《圖解TCP/IP協議》
② HTTP協議
參考書目:《圖解HTTP協議》
3.三大原理:計算機原理、作業系統原理與編譯原理
① 計算機系統原理
參考書目:《程式是怎樣跑起來的》、《深入理解計算機系統》
② 作業系統原理
參考書目:《計算機的心智-作業系統之哲學原理》
Part 0.導論
作業系統導論 { 程式的演變過程、作業系統是什麼、作業系統的角色和功能 }
作業系統基本概念 { 硬體基礎知識、抽象、核心態與使用者態、作業系統結構、系統呼叫 }
Part 1.CPU管理部分:
程序原理(上){ 程序模型、程序的層次結構、程序的狀態、程序的缺陷 }
程序原理(中){ 程序排程的定義、各種排程演算法、排程異常之優先順序倒掛 }
程序原理(下){ 程序通訊概要、各種通訊方式 }
執行緒原理(上){ 執行緒基礎、執行緒同步 }
執行緒原理(下){ 死鎖描述、死鎖必要條件、死鎖應對方式、哲學家就餐問題、銀行家演算法 }
Part 2.記憶體管理部分:
記憶體管理(上){ 記憶體管理概念、基本記憶體管理 }
記憶體管理(中){ 頁式記憶體管理、頁面置換演算法 }
記憶體管理(下){ 段式記憶體管理、段頁式記憶體管理 }
Part 3.外存管理部分:
外存管理(上){ 磁碟定義、磁碟結構、訪問時間、磁碟排程演算法 }
外存管理(下){ 檔案系統、資料夾、檔案系統的呼叫 }
Part 4.裝置管理部分:
裝置管理 { I/O基本原理、I/O硬體與軟體、I/O軟體的分層 }
③ 編譯原理
參考書目:《編譯原理(龍書)》
4.基本功:Windows Server/Linux/GitHub/正則表示式
① GitHub : { 基本概念、GitHub使用、Git操作、託管程式碼 }
② Linux :
參考書目:《鳥哥的Linux私房菜》
熟練的面向物件之路
輕輕的一句熟悉面向物件,能夠將業務邏輯轉變為物件之間的互動,是一種大道至簡的描述。至於面向物件,很多人都很熟悉,但卻又不太熟悉。因此,我決定重新認知面向物件,下面列出我的補課成果:
1.面向物件分析之UML
2.面向物件設計之設計模式
【預備篇】
【建立型】
② 設計模式的征途-02.簡單工廠(Simple Factory)模式
③ 設計模式的征途-03.工廠方法(Factory Method)模式
④ 設計模式的征途-04.抽象工廠(Abstract Factory)模式
【結構型】
【行為型】
① 設計模式的征途-14.職責鏈(Chain of Responsibility)模式
④ 設計模式的征途-17.模板方法(Template Method)模式
⑩ 設計模式的征途-23.直譯器(Interpreter)模式
.NET核心原理理解之路
1. .NET核心基礎拾遺
⑤ 多執行緒開發基礎
2.《CLR via C#》讀書筆記
暫時就先列出這麼多,後期持續更新!
.NET後端開發之路
1.ASP.NET MVC(Based on .NET Framework)
自己動手寫MVC框架:
① 自己動手寫一個簡單的ASP.NET MVC框架(第一版)
② 自己動手寫一個簡單的ASP.NET MVC框架(第二版)
2.基於ASP.NET Core的微服務架構
基礎學習實踐系列:.NET Core微服務基礎實踐系列文章索引
資料庫技術學習之路
1.MS SQL Server
T-SQL語言基礎:
① 《MSSQL技術內幕:T-SQL語言基礎》讀書筆記(上)
② 《MSSQL技術內幕:T-SQL語言基礎》讀書筆記(下)
T-SQL查詢:
① 《MSSQL技術內幕:T-SQL查詢》讀書筆記Part 1.邏輯查詢處理知多少
② 《MSSQL技術內幕:T-SQL查詢》讀書筆記Part 2.執行計劃
③ 《MSSQL技術內幕:T-SQL查詢》讀書筆記Part 3.索引的基本知識
2.MySQL
Web前端開發之路
1.HTML5+CSS3
② Web前端溫故知新-HTML5基礎
③ Web前端溫故知新-CSS3基礎
2.JavaScript
3.Bootstrap
4.AngularJS
5.VueJS
移動端開發之路
1.React Native
2.Cordova/PhoneGap
3.微信小程式
Agile-敏捷軟體開發之路
1.Scrum Guide (Scrum指南)
2.Agile 敏捷軟體開發:原則、模式與實踐
① Agile Software Development 敏捷軟體開發基礎知識
DDD-領域驅動設計之路
TDD-測試驅動開發之路
1.單元測試的藝術
2.測試驅動開發
作者:周旭龍
出處:http://edisonchou.cnblogs.com
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連結。