.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軟件的分層 }
③ 編譯原理
參考書目:《編譯原理(龍書)》
熟練的面向對象之路
輕輕的一句熟悉面向對象,能夠將業務邏輯轉變為對象之間的交互,是一種大道至簡的描述。至于面向對象,很多人都很熟悉,但卻又不太熟悉。因此,我決定重新認知面向對象,下面列出我的補課成果:
1.面向對象分析之UML
①?OOAD利器之UML基礎
2.面向對象設計之設計模式
.NET核心原理理解之路
1. .NET核心基礎拾遺
①?類型語法基礎和內存管理基礎
②?面向對象的實現和異常的處理基礎
③?字符串、集合與流的基礎
④ 委托、事件、反射與特性的基礎
⑤ 多線程開發基礎
⑥ ADO.NET與數據庫開發基礎
⑦?Web Service的開發與應用基礎
2.《CLR via C#》讀書筆記
暫時就先列出這么多,后期持續更新!
.NET后端開發之路
1.ASP.NET MVC
自己動手寫MVC框架:
① 自己動手寫一個簡單的ASP.NET MVC框架(第一版)
②?自己動手寫一個簡單的ASP.NET MVC框架(第二版)
2.ASP.NET WebAPI
3.WCF
Web前端開發之路
1.HTML5+CSS3
2.Bootstrap
3.AngularJS
① AngularJS基礎入門初探
移動端開發之路
1.jQuery Mobile
2.React Native
3.Cordova/PhoneGap
① Hybrid App 移動應用開發初探
Agile-敏捷軟件開發之路
1.Scrum Guide Scrum指南
①?Scrum Guide 原版
②?Scrum Guide 中文版
2.Agile 敏捷軟件開發:原則、模式與實踐
① Agile Software Development 敏捷軟件開發基礎知識
DDD-領域驅動設計之路
TDD-測試驅動開發之路
 
from: http://www.cnblogs.com/edisonchou/p/4820676.html
 
總結
以上是生活随笔為你收集整理的.NET全栈开发工程师学习路径的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Hadoop学习笔记系列文章导航
- 下一篇: Hadoop集群(第6期)_WordCo
