C#學(xué)習(xí)路線指南
花費(fèi)了幾天時間整理了C#學(xué)習(xí)路線圖,可以說是純野生C#程序員成長路線規(guī)劃,在這里分享下,希望可以幫助到想從事C#開發(fā)的同學(xué)們。本人閱歷尚淺,有些知識點(diǎn)可能分享不正確,希望廣大網(wǎng)友評論區(qū)補(bǔ)充,我會同步修正更新。
題記
最近自己一直在想,一個初學(xué)者剛開始應(yīng)該學(xué)些什么,該學(xué)習(xí)到哪種程度找工作才不成問題,才能在做項(xiàng)目時游刃有余不被Bug所困住。
是不是每一個初學(xué)者在剛開始學(xué)習(xí)任何一門編程語言的時候,都會有這樣的疑問,都覺得無從下手,沒有頭緒。反正我當(dāng)時確實(shí)有這樣的困惑,在剛開始接觸編程的時候,當(dāng)時幸好有實(shí)驗(yàn)室學(xué)長和老師的建議,才減少了試錯成本,可以把更多時間都花費(fèi)在正確的事情上,學(xué)習(xí)效率才會高。
根據(jù)我當(dāng)時的學(xué)習(xí)情況和現(xiàn)在目前市場上的行情來分析,羅列出新手學(xué)習(xí)C#編程語言路線指南,希望對你有幫助。

計(jì)算機(jī)基礎(chǔ)
如果你是本科生的話,在校期間,應(yīng)該會學(xué)習(xí)計(jì)算機(jī)基礎(chǔ),C語言,計(jì)算機(jī)組成原理,操作系統(tǒng)等關(guān)于計(jì)算機(jī)的課程,我希望你好好學(xué)習(xí),尤其是C語言,它是一種特別容易入門上手和了解編程思想的語言,是面向過程式的開發(fā),首先你得學(xué)會使用它的語法做一些簡單的邏輯運(yùn)算,其次可以根據(jù)一定的需求,實(shí)現(xiàn)部分特殊算法的演練(這些對你后期學(xué)習(xí)面向?qū)ο箝_發(fā)語言有很大的幫助)。
如果沒有開設(shè)這些課程,那么就需要你花時間去互聯(lián)網(wǎng)上找相關(guān)視頻去學(xué)習(xí)。
推薦書籍:
- 《C語言程序設(shè)計(jì)》(第2版)譚浩強(qiáng)版本
- 《大話數(shù)據(jù)結(jié)構(gòu)》 程杰
- 《數(shù)據(jù)結(jié)構(gòu)C語言版》 嚴(yán)蔚敏版
- 《深入理解計(jì)算機(jī)系統(tǒng)》(美)布賴恩特
推薦視頻:
- 【C語言】《帶你學(xué)C帶你飛》(https://www.bilibili.com/video/BV17s411N78s?from=search&seid=10895629627118467688)
- 數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)(青島大學(xué)-王卓)(數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)(青島大學(xué)-王卓)_嗶哩嗶哩_bilibili)
- [C語言描述]《數(shù)據(jù)結(jié)構(gòu)和算法》(【C語言描述】《數(shù)據(jù)結(jié)構(gòu)和算法》_嗶哩嗶哩_bilibili)
C#基礎(chǔ)知識
基礎(chǔ)語法
你如果前期學(xué)習(xí)過C語言的話,那么學(xué)習(xí)C#基礎(chǔ)知識就會感覺很容易,特別好理解。在這個環(huán)節(jié)你需要認(rèn)真學(xué)習(xí)基礎(chǔ)知識,你得學(xué)會在保證語法不報(bào)錯的情況下,利用基礎(chǔ)知識寫一些簡單的算法;得熟練了解語法,使用得當(dāng)并可以實(shí)現(xiàn)一些邏輯代碼。
(基礎(chǔ)語法、數(shù)據(jù)類型、變量、循環(huán)、方法、數(shù)組、集合、判斷、類等)
面向?qū)ο箝_發(fā)
C語言是面向過程的開發(fā)語言,而C#是面對對象的開發(fā)語言,在使用C語言寫邏輯代碼時都是可以按照一定的順利邏輯將其實(shí)現(xiàn)就OK,而C#就不一樣,你在學(xué)習(xí)語法,實(shí)現(xiàn)業(yè)務(wù)邏輯時得考慮程序的可擴(kuò)展性,魯棒性等。
你得擁有抽象思維,可以將現(xiàn)實(shí)中無生命體征的物品進(jìn)行擬物處理,將它們進(jìn)行更為抽象的提煉,匯總為某個特殊類,讓其這個類代表這類物品,并讓其擁有這個物品的所有屬性和行為,這就是面向?qū)ο箝_發(fā)。
(繼承、封裝、多態(tài)、接口、抽象類等)
這一部分的學(xué)習(xí)比較抽象,學(xué)會擁有抽象思維,讓自己可以更好的理解這些知識點(diǎn)。
基礎(chǔ)知識進(jìn)階
這里你將會學(xué)習(xí)一些高端的編程玩法,可能短期內(nèi),你無法使用到,但是它們更多體現(xiàn)在你的職業(yè)后期,當(dāng)你實(shí)際使用框架或者閱讀源碼的過程中,都會遇到這些知識點(diǎn),并有可能被它困住。
(Linq、泛型、委托、事件、多線程、Socket開發(fā))
推薦書籍:
- C#圖解教程(第五版) (5星推薦入門教程)
- C#入門經(jīng)典 (里面的進(jìn)階方面知識介紹的很)
- CLR via C# (很厚很厚的書,可以看做工具書使用)
推薦視頻
- C#語言入門詳解(https://www.bilibili.com/video/BV1wx411K7rb?p=23)
- C#入門到精通(傳智播客黑馬程序員課程(https://www.bilibili.com/video/BV1FJ411W7e5?from=search&seid=8949377659058078966))
推薦在線學(xué)習(xí)網(wǎng)址
- 菜鳥教程(https://www.runoob.com/csharp/csharp-tutorial.html)
- 微軟官方文檔(https://docs.microsoft.com/zh-cn/dotnet/)
前端技術(shù)
在編寫后端代碼的過程中,我們或多或少的需要對頁面進(jìn)行處理,那么了解和會使用前端語言是至關(guān)重要的。對于前端技術(shù),只需要掌握到會用的程度就可以,看得懂,會用,會寫就OK。
剛開始學(xué)習(xí)的話就是網(wǎng)頁三劍客 HTML+CSS+JavaScript,這里我推薦看網(wǎng)上的菜鳥教程和視頻來學(xué)習(xí),這樣很容易上手,做出東西后就很有滿足感。
其次就是Jquery+AJAX技術(shù),它是很老的技術(shù)了,目前市面上比較流行的Vue、Angular、React等框架都是對底層Jquery+AJAX的高度封裝實(shí)現(xiàn),所以我們掌握了解Jquery和AJAX技術(shù)很有必要。
由于前端技術(shù)這幾年發(fā)展特別快,各種新技術(shù)如雨后春筍般涌現(xiàn),所以我們大家在學(xué)習(xí)的過程中要抓住主次,別什么都學(xué)習(xí)。這里我推薦大家學(xué)習(xí)Vue.js(3.0),目前很多公司都在使用它,我們學(xué)好它,對以后找工作會有很大的幫助。至于其余的前端技術(shù),沒有必要全都去學(xué)習(xí),等到公司或者說以后項(xiàng)目需要使用它的時候,我們再學(xué)習(xí)也不遲。相信我,那些東西都是很容易上手的,原理都是通的,就看你會不會活學(xué)活用了。
后面可能還得學(xué)習(xí)Node.js、NPM等用于發(fā)布和構(gòu)建的技術(shù),這些也可以等實(shí)際使用的時候再去學(xué)習(xí)。
推薦書籍
- 《JavaScript DOM 編程藝術(shù)》
- 《JavaScript權(quán)威指南》(犀牛書)
- 《深入淺出Node》
- 《HTTP權(quán)威指南》
推薦教程
- 菜鳥教程
- JavaScript教程(JavaScript教程 - 廖雪峰的官方網(wǎng)站 (liaoxuefeng.com))
- Vue官方文檔(介紹 | Vue.js (vuejs.org))
數(shù)據(jù)庫
關(guān)于數(shù)據(jù)庫的學(xué)習(xí),需要先從最基本的SQL語句開始,這個可以通過看菜鳥教程來了解和熟悉,SQL語句學(xué)習(xí)的過程中要安裝好數(shù)據(jù)庫環(huán)境來實(shí)際操作,不能只死記硬背公式,要學(xué)會融會貫通,在真實(shí)的數(shù)據(jù)庫中來體驗(yàn)。
目前數(shù)據(jù)庫分為關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫。
關(guān)系型數(shù)據(jù)庫:Sql Server、MySQL、Oracle、SQLite、DB2等。
非關(guān)系型數(shù)據(jù)庫:MongoDb、Redis、NoSql等。
對于我們將來從事編碼開發(fā)的人員來說,我覺得你首先先學(xué)會使用Sql Server和MySql數(shù)據(jù)庫,其余的數(shù)據(jù)庫在以后的開發(fā)中再去學(xué)習(xí)也不遲。
就拿Sql Server來說,你學(xué)習(xí)完后在后面的C#高級知識中,使用ASP.NET MVC或者Web Api技術(shù)可立馬實(shí)際操作應(yīng)用數(shù)據(jù)庫。你可以先寫一些簡單的CRUD,實(shí)現(xiàn)一些基本的功能,這對你后期的成長至關(guān)重要。
推薦書籍
- 《SQL必知必會》
- 《Microsoft SQL Server 2008技術(shù)內(nèi)幕:T-SQL查詢》
推薦教程
SQL Server文章目錄(https://www.cnblogs.com/CareySon/archive/2012/05/08/2489748.html)
C#高級知識
關(guān)于高級知識部分這個環(huán)節(jié),你可以試著做出點(diǎn)實(shí)際項(xiàng)目出來,不管是ADO.NET 還是ASP.NET MVC或者ASP.NET Web API,你都可以先跟著書本或者視頻教程,先讓自己會用繼而模仿看別人的寫法,自己也動手進(jìn)行實(shí)現(xiàn)。
你可以在Github或者Gitee中找到一些開源的項(xiàng)目,比如圖書管理系統(tǒng)、博客系統(tǒng),論壇等一系列使用高級知識來實(shí)現(xiàn)的項(xiàng)目,你需要先閱讀代碼,看別人是如何實(shí)現(xiàn)的,從而在仿照別人的實(shí)現(xiàn)過程來按照自己的想法編寫自己的系統(tǒng)。(通過這樣的實(shí)戰(zhàn)項(xiàng)目,你可以快速的上手實(shí)現(xiàn),學(xué)著并嘗試做一個全棧開發(fā),自己一個人從前端到后端再到發(fā)布上線,體驗(yàn)下整個軟件項(xiàng)目的完整生命周期)。
ADO.NET: 它是最原始的數(shù)據(jù)庫訪問技術(shù),目前基本都不使用,市面上公司都是使用封裝好的ORM,但是你也得學(xué)習(xí)它。你得了解它是如何和數(shù)據(jù)庫進(jìn)行交流的,嘗試著自己做這些步奏,看是否能順利連接數(shù)據(jù)庫,并進(jìn)行一系列的CRUD操作。
ASP.NET MVC:它是微軟將模型-視圖-控制器的編程思想進(jìn)行程序化的一種實(shí)現(xiàn),你學(xué)習(xí)它可以快速上手實(shí)現(xiàn)一個網(wǎng)站,通過這個技術(shù)你可以實(shí)現(xiàn)自己的想法,比如做個圖書管理系統(tǒng)等,在結(jié)合之前學(xué)習(xí)的ADO.NET技術(shù),就可以將前端到數(shù)據(jù)庫都打通了。
ORM:ORM簡稱對象關(guān)系映射,是一種程序設(shè)計(jì)技術(shù),用于實(shí)現(xiàn)面向?qū)ο缶幊陶Z言里不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換。目前在C#語言中比較流行的有Entity Framework,NHibernate,SqlSugar(國內(nèi))。這塊你主要學(xué)習(xí)EF就可以,其余的編程思想都是想通的,你只要學(xué)會使用其中一個,其余的簡單學(xué)習(xí)下技巧就很快能上手。
ASP.NET Web API:它是一種實(shí)現(xiàn)前后端分離的后端技術(shù)(SPA),也是目前市場上大家普遍使用的技術(shù),通過它可以很簡單的實(shí)現(xiàn)SPA,后端開發(fā)人員只需要編寫后端的業(yè)務(wù)代碼,通過API暴露出訪問接口,可供前端人員進(jìn)行使用。
推薦書籍:
- ASP.NET MVC 5高級編程
- 精通ASP.NET MVC4
推薦系列教程
全網(wǎng)最全MVC教程匯總(https://www.cnblogs.com/mq0036/p/9008969.html) ,其中的ASP.NET MVC 小牛之路系列可以重點(diǎn)看看,對你理解MVC實(shí)戰(zhàn)很有幫助。
推薦視頻
C#入門到精通(傳智播客黑馬程序員課程(https://www.bilibili.com/video/BV1FJ411W7e5?from=search&seid=8949377659058078966))
2021新版Asp.Net MVC | 入門到精通自學(xué)必備最全實(shí)戰(zhàn)教程(2021新版Asp.Net MVC | 入門到精通自學(xué)必備最全實(shí)戰(zhàn)教程(C#/.NET入門教程/.Net Core/程序員/編程)B0222_嗶哩嗶哩_bilibili)
.Net Core
最后一個就是.Net Core,筆者在這段時間也在看Core相關(guān)的知識,受益良多。這幾年微軟一直想通過Core來顛覆.NET語言的形象和未來,用它來和Java爭一爭市場(還是有差距的),也在最近剛剛發(fā)布了.NET 6預(yù)覽版將以前的各個發(fā)展路線進(jìn)行了大統(tǒng)一,以后的命令就很好區(qū)別了。
這個模塊我推薦優(yōu)先看微軟的官方文檔,因?yàn)榘姹颈姸?,且先前版本差異比較大,這里推薦直接學(xué)習(xí)并使用.NET 5.0,也是微軟推薦的可應(yīng)用于生產(chǎn)環(huán)境的版本。
其次可以根據(jù)ASP.NET Core 中文文檔目錄來學(xué)習(xí),它是一些程序員自發(fā)組織翻譯的微軟官網(wǎng)的文章集合,里面內(nèi)容可能有些都已經(jīng)失效或不在更新但最起碼可以讓你對Core有一個嶄新的認(rèn)識。
其實(shí)對于Core的知識點(diǎn)學(xué)習(xí)有很多的,這里我就不一一列舉了。大家可以看下下面這張圖片的內(nèi)容,對照著學(xué)習(xí)就OK。

推薦書籍
- 《深入淺出ASP.NET Core》
推薦系列
關(guān)于ASP.NET Core的分享之路(壹佰文章最全總結(jié)| 《關(guān)于ASP.NETCore的分享之路》 - 老張的哲學(xué) - 博客園 (cnblogs.com))
系列一:ASP.NET Core學(xué)習(xí)視頻教程(Blog.Core項(xiàng)目)(系列一、ASP.NET Core 學(xué)習(xí)視頻教程(Blog.Core)_嗶哩嗶哩_bilibili)
ASP.NET Core合集(ASP.NET Core合集_嗶哩嗶哩_bilibili)
大家可以看到在編程這條路上,如果想走的更遠(yuǎn),更久,那么你就需要不斷的去學(xué)習(xí),不斷的充實(shí)自己,做一個堅(jiān)定的長期主義者。
原創(chuàng)不易,希望給個關(guān)注,謝謝支持。
寄語
人生短暫,我不想去追求自己看不見的,我只想抓住我能看的見的。
我是阿輝,感謝您的閱讀,如果對您有幫助,麻煩關(guān)注、點(diǎn)贊、謝謝。