C# BS方向 該如何規劃學習?【學習路線指南】

C#學習路線指南

花費了幾天時間整理了C#學習路線圖,可以說是純野生C#程式設計師成長路線規劃,在這裡分享下,希望可以幫助到想從事C#開發的同學們。本人閱歷尚淺,有些知識點可能分享不正確,希望廣大網友評論區補充,我會同步修正更新。

題記

最近自己一直在想,一個初學者剛開始應該學些什麼,該學習到哪種程度找工作才不成問題,才能在做項目時遊刃有餘不被Bug所困住。

是不是每一個初學者在剛開始學習任何一門程式語言的時候,都會有這樣的疑問,都覺得無從下手,沒有頭緒。反正我當時確實有這樣的困惑,在剛開始接觸編程的時候,當時幸好有實驗室學長和老師的建議,才減少了試錯成本,可以把更多時間都花費在正確的事情上,學習效率才會高。

根據我當時的學習情況和現在目前市場上的行情來分析,羅列出新手學習C#程式語言路線指南,希望對你有幫助。

C#學習路線指南

電腦基礎

如果你是本科生的話,在校期間,應該會學習電腦基礎,C語言,電腦組成原理,作業系統等關於電腦的課程,我希望你好好學習,尤其是C語言,它是一種特別容易入門上手和了解編程思想的語言,是面向過程式的開發,首先你得學會使用它的語法做一些簡單的邏輯運算,其次可以根據一定的需求,實現部分特殊演算法的演練(這些對你後期學習面向對象開發語言有很大的幫助)。

如果沒有開設這些課程,那麼就需要你花時間去互聯網上找相關影片去學習。

推薦書籍

  • 《C語言程式設計》(第2版)譚浩強版本
  • 《大話數據結構》 程傑
  • 《數據結構C語言版》 嚴蔚敏版
  • 《深入理解電腦系統》(美)布賴恩特

推薦影片:

C#基礎知識

基礎語法
你如果前期學習過C語言的話,那麼學習C#基礎知識就會感覺很容易,特別好理解。在這個環節你需要認真學習基礎知識,你得學會在保證語法不報錯的情況下,利用基礎知識寫一些簡單的演算法;得熟練了解語法,使用得當並可以實現一些邏輯程式碼。

(基礎語法、數據類型、變數、循環、方法、數組、集合、判斷、類等)

面向對象開發
C語言是面向過程的開發語言,而C#是面對對象的開發語言,在使用C語言寫邏輯程式碼時都是可以按照一定的順利邏輯將其實現就OK,而C#就不一樣,你在學習語法,實現業務邏輯時得考慮程式的可擴展性,魯棒性等。

你得擁有抽象思維,可以將現實中無生命體征的物品進行擬物處理,將它們進行更為抽象的提煉,匯總為某個特殊類,讓其這個類代表這類物品,並讓其擁有這個物品的所有屬性和行為,這就是面向對象開發。

(繼承、封裝、多態、介面、抽象類等)

這一部分的學習比較抽象,學會擁有抽象思維,讓自己可以更好的理解這些知識點。
基礎知識進階
這裡你將會學習一些高端的編程玩法,可能短期內,你無法使用到,但是它們更多體現在你的職業後期,當你實際使用框架或者閱讀源碼的過程中,都會遇到這些知識點,並有可能被它困住。

(Linq、泛型、委託、事件、多執行緒、Socket開發)

推薦書籍:

  • C#圖解教程(第五版) (5星推薦入門教程)
  • C#入門經典 (裡面的進階方面知識介紹的很)
  • CLR via C# (很厚很厚的書,可以看做工具書使用)

推薦影片

推薦在線學習網址

前端技術

在編寫後端程式碼的過程中,我們或多或少的需要對頁面進行處理,那麼了解和會使用前端語言是至關重要的。對於前端技術,只需要掌握到會用的程度就可以,看得懂,會用,會寫就OK。

剛開始學習的話就是網頁三劍客 HTML+CSS+JavaScript,這裡我推薦看網上的菜鳥教程和影片來學習,這樣很容易上手,做出東西後就很有滿足感。

其次就是Jquery+AJAX技術,它是很老的技術了,目前市面上比較流行的Vue、Angular、React等框架都是對底層Jquery+AJAX的高度封裝實現,所以我們掌握了解Jquery和AJAX技術很有必要。

由於前端技術這幾年發展特別快,各種新技術如雨後春筍般湧現,所以我們大家在學習的過程中要抓住主次,別什麼都學習。這裡我推薦大家學習Vue.js(3.0),目前很多公司都在使用它,我們學好它,對以後找工作會有很大的幫助。至於其餘的前端技術,沒有必要全都去學習,等到公司或者說以後項目需要使用它的時候,我們再學習也不遲。相信我,那些東西都是很容易上手的,原理都是通的,就看你會不會活學活用了。

後面可能還得學習Node.js、NPM等用於發布和構建的技術,這些也可以等實際使用的時候再去學習。

推薦書籍

  • 《JavaScript DOM 編程藝術》
  • 《JavaScript權威指南》(犀牛書)
  • 《深入淺出Node》
  • 《HTTP權威指南》

推薦教程

資料庫

關於資料庫的學習,需要先從最基本的SQL語句開始,這個可以通過看菜鳥教程來了解和熟悉,SQL語句學習的過程中要安裝好資料庫環境來實際操作,不能只死記硬背公式,要學會融會貫通,在真實的資料庫中來體驗。

目前資料庫分為關係型資料庫和非關係型資料庫。

關係型資料庫:Sql Server、MySQL、Oracle、SQLite、DB2等。

非關係型資料庫:MongoDb、Redis、NoSql等。

對於我們將來從事編碼開發的人員來說,我覺得你首先先學會使用Sql Server和MySql資料庫,其餘的資料庫在以後的開發中再去學習也不遲。

就拿Sql Server來說,你學習完後在後面的C#高級知識中,使用ASP.NET MVC或者Web Api技術可立馬實際操作應用資料庫。你可以先寫一些簡單的CRUD,實現一些基本的功能,這對你後期的成長至關重要。

推薦書籍

  • 《SQL必知必會》
  • 《Microsoft SQL Server 2008技術內幕:T-SQL查詢》

推薦教程

C#高級知識

關於高級知識部分這個環節,你可以試著做出點實際項目出來,不管是ADO.NET 還是ASP.NET MVC或者ASP.NET Web API,你都可以先跟著書本或者影片教程,先讓自己會用繼而模仿看別人的寫法,自己也動手進行實現。

你可以在Github或者Gitee中找到一些開源的項目,比如圖書管理系統、部落格系統,論壇等一系列使用高級知識來實現的項目,你需要先閱讀程式碼,看別人是如何實現的,從而在仿照別人的實現過程來按照自己的想法編寫自己的系統。(通過這樣的實戰項目,你可以快速的上手實現,學著並嘗試做一個全棧開發,自己一個人從前端到後端再到發布上線,體驗下整個軟體項目的完整生命周期)

ADO.NET: 它是最原始的資料庫訪問技術,目前基本都不使用,市面上公司都是使用封裝好的ORM,但是你也得學習它。你得了解它是如何和資料庫進行交流的,嘗試著自己做這些步奏,看是否能順利連接資料庫,並進行一系列的CRUD操作。

ASP.NET MVC:它是微軟將模型-視圖-控制器的編程思想進行程式化的一種實現,你學習它可以快速上手實現一個網站,通過這個技術你可以實現自己的想法,比如做個圖書管理系統等,在結合之前學習的ADO.NET技術,就可以將前端到資料庫都打通了。

ORM:ORM簡稱對象關係映射,是一種程式設計技術,用於實現面向對象程式語言里不同類型系統的數據之間的轉換。目前在C#語言中比較流行的有Entity Framework,NHibernate,SqlSugar(中國)。這塊你主要學習EF就可以,其餘的編程思想都是想通的,你只要學會使用其中一個,其餘的簡單學習下技巧就很快能上手。

ASP.NET Web API:它是一種實現前後端分離的後端技術(SPA),也是目前市場上大家普遍使用的技術,通過它可以很簡單的實現SPA,後端開發人員只需要編寫後端的業務程式碼,通過API暴露出訪問介面,可供前端人員進行使用。

推薦書籍:

  • ASP.NET MVC 5高級編程
  • 精通ASP.NET MVC4

推薦系列教程

推薦影片

.Net Core

最後一個就是.Net Core,筆者在這段時間也在看Core相關的知識,受益良多。這幾年微軟一直想通過Core來顛覆.NET語言的形象和未來,用它來和Java爭一爭市場(還是有差距的),也在最近剛剛發布了.NET 6預覽版將以前的各個發展路線進行了大統一,以後的命令就很好區別了。

這個模組我推薦優先看微軟的官方文檔,因為版本眾多,且先前版本差異比較大,這裡推薦直接學習並使用.NET 5.0,也是微軟推薦的可應用於生產環境的版本。

其次可以根據ASP.NET Core 中文文檔目錄來學習,它是一些程式設計師自發組織翻譯的微軟官網的文章集合,裡面內容可能有些都已經失效或不在更新但最起碼可以讓你對Core有一個嶄新的認識。

其實對於Core的知識點學習有很多的,這裡我就不一一列舉了。大家可以看下下面這張圖片的內容,對照著學習就OK。
Core路線規劃
推薦書籍

  • 《深入淺出ASP.NET Core》

推薦系列


大家可以看到在編程這條路上,如果想走的更遠,更久,那麼你就需要不斷的去學習,不斷的充實自己,做一個堅定的長期主義者。

上文中提到的所有編程書籍PDF版我都整理放在了公眾號中,你可關注後回復「C#入門指南」進行下載;如果想白嫖影片資源,也可回復「C#影片資源」,就會找到電子鏈接,希望對你有幫助。

原創不易,希望給個關注,謝謝支援。

寄語


人生短暫,我不想去追求自己看不見的,我只想抓住我能看的見的。

我是阿輝,感謝您的閱讀,如果對您有幫助,麻煩關注、點贊、謝謝。

歡迎掃描下面二維碼,關注我的原創公眾號【Andy阿輝】,寫一些程式設計師的所思所想,希望對你有幫助。