C#學(xué)習(xí)路線指南
花費(fèi)了幾天時(shí)間整理了C#學(xué)習(xí)路線圖澎剥,可以說(shuō)是純野生C#程序員成長(zhǎng)路線規(guī)劃饿自,在這里分享下褐筛,希望可以幫助到想從事C#開(kāi)發(fā)的同學(xué)們。本人閱歷尚淺十拣,有些知識(shí)點(diǎn)可能分享不正確封拧,希望廣大網(wǎng)友評(píng)論區(qū)補(bǔ)充,我會(huì)同步修正更新夭问。
題記
最近自己一直在想哮缺,一個(gè)初學(xué)者剛開(kāi)始應(yīng)該學(xué)些什么,該學(xué)習(xí)到哪種程度找工作才不成問(wèn)題甲喝,才能在做項(xiàng)目時(shí)游刃有余不被Bug所困住。
是不是每一個(gè)初學(xué)者在剛開(kāi)始學(xué)習(xí)任何一門(mén)編程語(yǔ)言的時(shí)候,都會(huì)有這樣的疑問(wèn)埠胖,都覺(jué)得無(wú)從下手糠溜,沒(méi)有頭緒。反正我當(dāng)時(shí)確實(shí)有這樣的困惑直撤,在剛開(kāi)始接觸編程的時(shí)候非竿,當(dāng)時(shí)幸好有實(shí)驗(yàn)室學(xué)長(zhǎng)和老師的建議,才減少了試錯(cuò)成本谋竖,可以把更多時(shí)間都花費(fèi)在正確的事情上红柱,學(xué)習(xí)效率才會(huì)高。
根據(jù)我當(dāng)時(shí)的學(xué)習(xí)情況和現(xiàn)在目前市場(chǎng)上的行情來(lái)分析蓖乘,羅列出新手學(xué)習(xí)C#編程語(yǔ)言路線指南锤悄,希望對(duì)你有幫助。
計(jì)算機(jī)基礎(chǔ)
如果你是本科生的話嘉抒,在校期間零聚,應(yīng)該會(huì)學(xué)習(xí)計(jì)算機(jī)基礎(chǔ),C語(yǔ)言些侍,計(jì)算機(jī)組成原理隶症,操作系統(tǒng)等關(guān)于計(jì)算機(jī)的課程,我希望你好好學(xué)習(xí)岗宣,尤其是C語(yǔ)言蚂会,它是一種特別容易入門(mén)上手和了解編程思想的語(yǔ)言,是面向過(guò)程式的開(kāi)發(fā)耗式,首先你得學(xué)會(huì)使用它的語(yǔ)法做一些簡(jiǎn)單的邏輯運(yùn)算胁住,其次可以根據(jù)一定的需求,實(shí)現(xiàn)部分特殊算法的演練(這些對(duì)你后期學(xué)習(xí)面向?qū)ο箝_(kāi)發(fā)語(yǔ)言有很大的幫助)纽什。
如果沒(méi)有開(kāi)設(shè)這些課程措嵌,那么就需要你花時(shí)間去互聯(lián)網(wǎng)上找相關(guān)視頻去學(xué)習(xí)。
推薦書(shū)籍:
- 《C語(yǔ)言程序設(shè)計(jì)》(第2版)譚浩強(qiáng)版本
- 《大話數(shù)據(jù)結(jié)構(gòu)》 程杰
- 《數(shù)據(jù)結(jié)構(gòu)C語(yǔ)言版》 嚴(yán)蔚敏版
- 《深入理解計(jì)算機(jī)系統(tǒng)》(美)布賴恩特
推薦視頻:
- 【C語(yǔ)言】《帶你學(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語(yǔ)言描述]《數(shù)據(jù)結(jié)構(gòu)和算法》(【C語(yǔ)言描述】《數(shù)據(jù)結(jié)構(gòu)和算法》_嗶哩嗶哩_bilibili)
C#基礎(chǔ)知識(shí)
基礎(chǔ)語(yǔ)法
你如果前期學(xué)習(xí)過(guò)C語(yǔ)言的話芦缰,那么學(xué)習(xí)C#基礎(chǔ)知識(shí)就會(huì)感覺(jué)很容易企巢,特別好理解。在這個(gè)環(huán)節(jié)你需要認(rèn)真學(xué)習(xí)基礎(chǔ)知識(shí)让蕾,你得學(xué)會(huì)在保證語(yǔ)法不報(bào)錯(cuò)的情況下浪规,利用基礎(chǔ)知識(shí)寫(xiě)一些簡(jiǎn)單的算法;得熟練了解語(yǔ)法探孝,使用得當(dāng)并可以實(shí)現(xiàn)一些邏輯代碼笋婿。
(基礎(chǔ)語(yǔ)法、數(shù)據(jù)類型顿颅、變量缸濒、循環(huán)、方法、數(shù)組庇配、集合斩跌、判斷、類等)
面向?qū)ο箝_(kāi)發(fā)
C語(yǔ)言是面向過(guò)程的開(kāi)發(fā)語(yǔ)言捞慌,而C#是面對(duì)對(duì)象的開(kāi)發(fā)語(yǔ)言耀鸦,在使用C語(yǔ)言寫(xiě)邏輯代碼時(shí)都是可以按照一定的順利邏輯將其實(shí)現(xiàn)就OK,而C#就不一樣啸澡,你在學(xué)習(xí)語(yǔ)法袖订,實(shí)現(xiàn)業(yè)務(wù)邏輯時(shí)得考慮程序的可擴(kuò)展性,魯棒性等嗅虏。
你得擁有抽象思維洛姑,可以將現(xiàn)實(shí)中無(wú)生命體征的物品進(jìn)行擬物處理,將它們進(jìn)行更為抽象的提煉旋恼,匯總為某個(gè)特殊類吏口,讓其這個(gè)類代表這類物品,并讓其擁有這個(gè)物品的所有屬性和行為冰更,這就是面向?qū)ο箝_(kāi)發(fā)产徊。
(繼承、封裝蜀细、多態(tài)舟铜、接口、抽象類等)
這一部分的學(xué)習(xí)比較抽象奠衔,學(xué)會(huì)擁有抽象思維谆刨,讓自己可以更好的理解這些知識(shí)點(diǎn)。
基礎(chǔ)知識(shí)進(jìn)階
這里你將會(huì)學(xué)習(xí)一些高端的編程玩法归斤,可能短期內(nèi)痊夭,你無(wú)法使用到,但是它們更多體現(xiàn)在你的職業(yè)后期脏里,當(dāng)你實(shí)際使用框架或者閱讀源碼的過(guò)程中她我,都會(huì)遇到這些知識(shí)點(diǎn),并有可能被它困住迫横。
(Linq番舆、泛型、委托矾踱、事件恨狈、多線程、Socket開(kāi)發(fā))
推薦書(shū)籍:
- C#圖解教程(第五版) (5星推薦入門(mén)教程)
- C#入門(mén)經(jīng)典 (里面的進(jìn)階方面知識(shí)介紹的很)
- CLR via C# (很厚很厚的書(shū)呛讲,可以看做工具書(shū)使用)
推薦視頻
- C#語(yǔ)言入門(mén)詳解(https://www.bilibili.com/video/BV1wx411K7rb?p=23)
- C#入門(mén)到精通(傳智播客黑馬程序員課程(https://www.bilibili.com/video/BV1FJ411W7e5?from=search&seid=8949377659058078966))
推薦在線學(xué)習(xí)網(wǎng)址
- 菜鳥(niǎo)教程(https://www.runoob.com/csharp/csharp-tutorial.html)
- 微軟官方文檔(https://docs.microsoft.com/zh-cn/dotnet/)
前端技術(shù)
在編寫(xiě)后端代碼的過(guò)程中禾怠,我們或多或少的需要對(duì)頁(yè)面進(jìn)行處理返奉,那么了解和會(huì)使用前端語(yǔ)言是至關(guān)重要的。對(duì)于前端技術(shù)吗氏,只需要掌握到會(huì)用的程度就可以衡瓶,看得懂,會(huì)用牲证,會(huì)寫(xiě)就OK。
剛開(kāi)始學(xué)習(xí)的話就是網(wǎng)頁(yè)三劍客 HTML+CSS+JavaScript关面,這里我推薦看網(wǎng)上的菜鳥(niǎo)教程和視頻來(lái)學(xué)習(xí)坦袍,這樣很容易上手,做出東西后就很有滿足感等太。
其次就是Jquery+AJAX技術(shù)捂齐,它是很老的技術(shù)了,目前市面上比較流行的Vue缩抡、Angular奠宜、React等框架都是對(duì)底層Jquery+AJAX的高度封裝實(shí)現(xiàn),所以我們掌握了解Jquery和AJAX技術(shù)很有必要瞻想。
由于前端技術(shù)這幾年發(fā)展特別快压真,各種新技術(shù)如雨后春筍般涌現(xiàn),所以我們大家在學(xué)習(xí)的過(guò)程中要抓住主次蘑险,別什么都學(xué)習(xí)滴肿。這里我推薦大家學(xué)習(xí)Vue.js(3.0),目前很多公司都在使用它佃迄,我們學(xué)好它泼差,對(duì)以后找工作會(huì)有很大的幫助。至于其余的前端技術(shù)呵俏,沒(méi)有必要全都去學(xué)習(xí)堆缘,等到公司或者說(shuō)以后項(xiàng)目需要使用它的時(shí)候,我們?cè)賹W(xué)習(xí)也不遲普碎。相信我吼肥,那些東西都是很容易上手的,原理都是通的随常,就看你會(huì)不會(huì)活學(xué)活用了潜沦。
后面可能還得學(xué)習(xí)Node.js、NPM等用于發(fā)布和構(gòu)建的技術(shù)绪氛,這些也可以等實(shí)際使用的時(shí)候再去學(xué)習(xí)唆鸡。
推薦書(shū)籍
- 《JavaScript DOM 編程藝術(shù)》
- 《JavaScript權(quán)威指南》(犀牛書(shū))
- 《深入淺出Node》
- 《HTTP權(quán)威指南》
推薦教程
- 菜鳥(niǎo)教程
- JavaScript教程(JavaScript教程 - 廖雪峰的官方網(wǎng)站 (liaoxuefeng.com))
- Vue官方文檔(介紹 | Vue.js (vuejs.org))
數(shù)據(jù)庫(kù)
關(guān)于數(shù)據(jù)庫(kù)的學(xué)習(xí),需要先從最基本的SQL語(yǔ)句開(kāi)始枣察,這個(gè)可以通過(guò)看菜鳥(niǎo)教程來(lái)了解和熟悉争占,SQL語(yǔ)句學(xué)習(xí)的過(guò)程中要安裝好數(shù)據(jù)庫(kù)環(huán)境來(lái)實(shí)際操作燃逻,不能只死記硬背公式,要學(xué)會(huì)融會(huì)貫通臂痕,在真實(shí)的數(shù)據(jù)庫(kù)中來(lái)體驗(yàn)伯襟。
目前數(shù)據(jù)庫(kù)分為關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)。
關(guān)系型數(shù)據(jù)庫(kù):Sql Server握童、MySQL姆怪、Oracle、SQLite澡绩、DB2等稽揭。
非關(guān)系型數(shù)據(jù)庫(kù):MongoDb、Redis肥卡、NoSql等溪掀。
對(duì)于我們將來(lái)從事編碼開(kāi)發(fā)的人員來(lái)說(shuō),我覺(jué)得你首先先學(xué)會(huì)使用Sql Server和MySql數(shù)據(jù)庫(kù)步鉴,其余的數(shù)據(jù)庫(kù)在以后的開(kāi)發(fā)中再去學(xué)習(xí)也不遲揪胃。
就拿Sql Server來(lái)說(shuō),你學(xué)習(xí)完后在后面的C#高級(jí)知識(shí)中氛琢,使用ASP.NET MVC或者Web Api技術(shù)可立馬實(shí)際操作應(yīng)用數(shù)據(jù)庫(kù)喊递。你可以先寫(xiě)一些簡(jiǎn)單的CRUD,實(shí)現(xiàn)一些基本的功能艺沼,這對(duì)你后期的成長(zhǎng)至關(guān)重要册舞。
推薦書(shū)籍
- 《SQL必知必會(huì)》
- 《Microsoft SQL Server 2008技術(shù)內(nèi)幕:T-SQL查詢》
推薦教程
菜鳥(niǎo)教程(https://www.runoob.com/csharp/csharp-tutorial.html)
SQL Server文章目錄(https://www.cnblogs.com/CareySon/archive/2012/05/08/2489748.html)
C#高級(jí)知識(shí)
關(guān)于高級(jí)知識(shí)部分這個(gè)環(huán)節(jié),你可以試著做出點(diǎn)實(shí)際項(xiàng)目出來(lái)障般,不管是ADO.NET 還是ASP.NET MVC或者ASP.NET Web API调鲸,你都可以先跟著書(shū)本或者視頻教程,先讓自己會(huì)用繼而模仿看別人的寫(xiě)法挽荡,自己也動(dòng)手進(jìn)行實(shí)現(xiàn)藐石。
你可以在Github或者Gitee中找到一些開(kāi)源的項(xiàng)目,比如圖書(shū)管理系統(tǒng)定拟、博客系統(tǒng)于微,論壇等一系列使用高級(jí)知識(shí)來(lái)實(shí)現(xiàn)的項(xiàng)目,你需要先閱讀代碼青自,看別人是如何實(shí)現(xiàn)的株依,從而在仿照別人的實(shí)現(xiàn)過(guò)程來(lái)按照自己的想法編寫(xiě)自己的系統(tǒng)。(通過(guò)這樣的實(shí)戰(zhàn)項(xiàng)目延窜,你可以快速的上手實(shí)現(xiàn)恋腕,學(xué)著并嘗試做一個(gè)全棧開(kāi)發(fā),自己一個(gè)人從前端到后端再到發(fā)布上線逆瑞,體驗(yàn)下整個(gè)軟件項(xiàng)目的完整生命周期)荠藤。
ADO.NET: 它是最原始的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)伙单,目前基本都不使用,市面上公司都是使用封裝好的ORM哈肖,但是你也得學(xué)習(xí)它吻育。你得了解它是如何和數(shù)據(jù)庫(kù)進(jìn)行交流的,嘗試著自己做這些步奏淤井,看是否能順利連接數(shù)據(jù)庫(kù)布疼,并進(jìn)行一系列的CRUD操作。
ASP.NET MVC:它是微軟將模型-視圖-控制器的編程思想進(jìn)行程序化的一種實(shí)現(xiàn)币狠,你學(xué)習(xí)它可以快速上手實(shí)現(xiàn)一個(gè)網(wǎng)站缎除,通過(guò)這個(gè)技術(shù)你可以實(shí)現(xiàn)自己的想法,比如做個(gè)圖書(shū)管理系統(tǒng)等总寻,在結(jié)合之前學(xué)習(xí)的ADO.NET技術(shù),就可以將前端到數(shù)據(jù)庫(kù)都打通了梢为。
ORM:ORM簡(jiǎn)稱對(duì)象關(guān)系映射渐行,是一種程序設(shè)計(jì)技術(shù),用于實(shí)現(xiàn)面向?qū)ο缶幊陶Z(yǔ)言里不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換铸董。目前在C#語(yǔ)言中比較流行的有Entity Framework祟印,NHibernate,SqlSugar(國(guó)內(nèi))粟害。這塊你主要學(xué)習(xí)EF就可以蕴忆,其余的編程思想都是想通的,你只要學(xué)會(huì)使用其中一個(gè)悲幅,其余的簡(jiǎn)單學(xué)習(xí)下技巧就很快能上手套鹅。
ASP.NET Web API:它是一種實(shí)現(xiàn)前后端分離的后端技術(shù)(SPA),也是目前市場(chǎng)上大家普遍使用的技術(shù)汰具,通過(guò)它可以很簡(jiǎn)單的實(shí)現(xiàn)SPA卓鹿,后端開(kāi)發(fā)人員只需要編寫(xiě)后端的業(yè)務(wù)代碼,通過(guò)API暴露出訪問(wèn)接口留荔,可供前端人員進(jìn)行使用吟孙。
推薦書(shū)籍:
- ASP.NET MVC 5高級(jí)編程
- 精通ASP.NET MVC4
推薦系列教程
全網(wǎng)最全MVC教程匯總(https://www.cnblogs.com/mq0036/p/9008969.html) ,其中的ASP.NET MVC 小牛之路系列可以重點(diǎn)看看聚蝶,對(duì)你理解MVC實(shí)戰(zhàn)很有幫助杰妓。
推薦視頻
C#入門(mén)到精通(傳智播客黑馬程序員課程(https://www.bilibili.com/video/BV1FJ411W7e5?from=search&seid=8949377659058078966))
2021新版Asp.Net MVC | 入門(mén)到精通自學(xué)必備最全實(shí)戰(zhàn)教程(2021新版Asp.Net MVC | 入門(mén)到精通自學(xué)必備最全實(shí)戰(zhàn)教程(C#/.NET入門(mén)教程/.Net Core/程序員/編程)B0222_嗶哩嗶哩_bilibili)
.Net Core
最后一個(gè)就是.Net Core,筆者在這段時(shí)間也在看Core相關(guān)的知識(shí),受益良多碘勉。這幾年微軟一直想通過(guò)Core來(lái)顛覆.NET語(yǔ)言的形象和未來(lái)巷挥,用它來(lái)和Java爭(zhēng)一爭(zhēng)市場(chǎng)(還是有差距的),也在最近剛剛發(fā)布了.NET 6預(yù)覽版將以前的各個(gè)發(fā)展路線進(jìn)行了大統(tǒng)一恰聘,以后的命令就很好區(qū)別了句各。
這個(gè)模塊我推薦優(yōu)先看微軟的官方文檔吸占,因?yàn)榘姹颈姸啵蚁惹鞍姹静町惐容^大凿宾,這里推薦直接學(xué)習(xí)并使用.NET 5.0矾屯,也是微軟推薦的可應(yīng)用于生產(chǎn)環(huán)境的版本。
其次可以根據(jù)ASP.NET Core 中文文檔目錄來(lái)學(xué)習(xí)初厚,它是一些程序員自發(fā)組織翻譯的微軟官網(wǎng)的文章集合件蚕,里面內(nèi)容可能有些都已經(jīng)失效或不在更新但最起碼可以讓你對(duì)Core有一個(gè)嶄新的認(rèn)識(shí)。
其實(shí)對(duì)于Core的知識(shí)點(diǎn)學(xué)習(xí)有很多的产禾,這里我就不一一列舉了排作。大家可以看下下面這張圖片的內(nèi)容,對(duì)照著學(xué)習(xí)就OK亚情。
推薦書(shū)籍
- 《深入淺出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í)自己土浸,做一個(gè)堅(jiān)定的長(zhǎng)期主義者罪针。
原創(chuàng)不易,希望給個(gè)關(guān)注黄伊,謝謝支持泪酱。
寄語(yǔ)
人生短暫,我不想去追求自己看不見(jiàn)的还最,我只想抓住我能看的見(jiàn)的墓阀。
我是阿輝,感謝您的閱讀拓轻,如果對(duì)您有幫助岂津,麻煩關(guān)注、點(diǎn)贊悦即、謝謝吮成。