C#學習路線指南
花費了幾天時間整理了C#學習路線圖,可以說是純野生C#程式設計師成長路線規劃,在這裡分享下,希望可以幫助到想從事C#開發的同學們。本人閱歷尚淺,有些知識點可能分享不正確,希望廣大網友評論區補充,我會同步修正更新。
題記
最近自己一直在想,一個初學者剛開始應該學些什麼,該學習到哪種程度找工作才不成問題,才能在做專案時遊刃有餘不被Bug所困住。
是不是每一個初學者在剛開始學習任何一門程式語言的時候,都會有這樣的疑問,都覺得無從下手,沒有頭緒。反正我當時確實有這樣的困惑,在剛開始接觸程式設計的時候,當時幸好有實驗室學長和老師的建議,才減少了試錯成本,可以把更多時間都花費在正確的事情上,學習效率才會高。
根據我當時的學習情況和現在目前市場上的行情來分析,羅列出新手學習C#程式語言路線指南,希望對你有幫助。
計算機基礎
如果你是本科生的話,在校期間,應該會學習計算機基礎,C語言,計算機組成原理,作業系統等關於計算機的課程,我希望你好好學習,尤其是C語言,它是一種特別容易入門上手和了解程式設計思想的語言,是面向過程式的開發,首先你得學會使用它的語法做一些簡單的邏輯運算,其次可以根據一定的需求,實現部分特殊演算法的演練(這些對你後期學習面向物件開發語言有很大的幫助)。
如果沒有開設這些課程,那麼就需要你花時間去網際網路上找相關視訊去學習。
推薦書籍:
- 《C語言程式設計》(第2版)譚浩強版本
- 《大話資料結構》 程傑
- 《資料結構C語言版》 嚴蔚敏版
- 《深入理解計算機系統》(美)布賴恩特
推薦視訊:
- 【C語言】《帶你學C帶你飛》(https://www.bilibili.com/video/BV17s411N78s?from=search&seid=10895629627118467688)
- 資料結構與演算法基礎(青島大學-王卓)(資料結構與演算法基礎(青島大學-王卓)_嗶哩嗶哩_bilibili)
- [C語言描述]《資料結構和演算法》(【C語言描述】《資料結構和演算法》_嗶哩嗶哩_bilibili)
C#基礎知識
基礎語法
你如果前期學習過C語言的話,那麼學習C#基礎知識就會感覺很容易,特別好理解。在這個環節你需要認真學習基礎知識,你得學會在保證語法不報錯的情況下,利用基礎知識寫一些簡單的演算法;得熟練了解語法,使用得當並可以實現一些邏輯程式碼。
(基礎語法、資料型別、變數、迴圈、方法、陣列、集合、判斷、類等)
面向物件開發
C語言是面向過程的開發語言,而C#是面對物件的開發語言,在使用C語言寫邏輯程式碼時都是可以按照一定的順利邏輯將其實現就OK,而C#就不一樣,你在學習語法,實現業務邏輯時得考慮程式的可擴充套件性,魯棒性等。
你得擁有抽象思維,可以將現實中無生命體徵的物品進行擬物處理,將它們進行更為抽象的提煉,彙總為某個特殊類,讓其這個類代表這類物品,並讓其擁有這個物品的所有屬性和行為,這就是面向物件開發。
(繼承、封裝、多型、介面、抽象類等)
這一部分的學習比較抽象,學會擁有抽象思維,讓自己可以更好的理解這些知識點。
基礎知識進階
這裡你將會學習一些高階的程式設計玩法,可能短期內,你無法使用到,但是它們更多體現在你的職業後期,當你實際使用框架或者閱讀原始碼的過程中,都會遇到這些知識點,並有可能被它困住。
(Linq、泛型、委託、事件、多執行緒、Socket開發)
推薦書籍:
- C#圖解教程(第五版) (5星推薦入門教程)
- C#入門經典 (裡面的進階方面知識介紹的很)
- CLR via C# (很厚很厚的書,可以看做工具書使用)
推薦視訊
- C#語言入門詳解(https://www.bilibili.com/video/BV1wx411K7rb?p=23)
- C#入門到精通(傳智播客黑馬程式設計師課程(https://www.bilibili.com/video/BV1FJ411W7e5?from=search&seid=8949377659058078966))
推薦線上學習網址
- 菜鳥教程(https://www.runoob.com/csharp/csharp-tutorial.html)
- 微軟官方文件(https://docs.microsoft.com/zh-cn/dotnet/)
前端技術
在編寫後端程式碼的過程中,我們或多或少的需要對頁面進行處理,那麼瞭解和會使用前端語言是至關重要的。對於前端技術,只需要掌握到會用的程度就可以,看得懂,會用,會寫就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權威指南》
推薦教程
- 菜鳥教程
- JavaScript教程(JavaScript教程 - 廖雪峰的官方網站 (liaoxuefeng.com))
- Vue官方文件(介紹 | Vue.js (vuejs.org))
資料庫
關於資料庫的學習,需要先從最基本的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查詢》
推薦教程
SQL Server文章目錄(https://www.cnblogs.com/CareySon/archive/2012/05/08/2489748.html)
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
推薦系列教程
全網最全MVC教程彙總(https://www.cnblogs.com/mq0036/p/9008969.html) ,其中的ASP.NET MVC 小牛之路系列可以重點看看,對你理解MVC實戰很有幫助。
推薦視訊
C#入門到精通(傳智播客黑馬程式設計師課程(https://www.bilibili.com/video/BV1FJ411W7e5?from=search&seid=8949377659058078966))
2021新版Asp.Net MVC | 入門到精通自學必備最全實戰教程(2021新版Asp.Net MVC | 入門到精通自學必備最全實戰教程(C#/.NET入門教程/.Net Core/程式設計師/程式設計)B0222_嗶哩嗶哩_bilibili)
.Net Core
最後一個就是.Net Core,筆者在這段時間也在看Core相關的知識,受益良多。這幾年微軟一直想通過Core來顛覆.NET語言的形象和未來,用它來和Java爭一爭市場(還是有差距的),也在最近剛剛釋出了.NET 6預覽版將以前的各個發展路線進行了大統一,以後的命令就很好區別了。
這個模組我推薦優先看微軟的官方文件,因為版本眾多,且先前版本差異比較大,這裡推薦直接學習並使用.NET 5.0,也是微軟推薦的可應用於生產環境的版本。
其次可以根據ASP.NET Core 中文文件目錄來學習,它是一些程式設計師自發組織翻譯的微軟官網的文章集合,裡面內容可能有些都已經失效或不在更新但最起碼可以讓你對Core有一個嶄新的認識。
其實對於Core的知識點學習有很多的,這裡我就不一一列舉了。大家可以看下下面這張圖片的內容,對照著學習就OK。
推薦書籍
- 《深入淺出ASP.NET Core》
推薦系列
關於ASP.NET Core的分享之路(壹佰文章最全總結| 《關於ASP.NETCore的分享之路》 - 老張的哲學 - 部落格園 (cnblogs.com))
系列一:ASP.NET Core學習視訊教程(Blog.Core專案)(系列一、ASP.NET Core 學習視訊教程(Blog.Core)_嗶哩嗶哩_bilibili)
ASP.NET Core合集(ASP.NET Core合集_嗶哩嗶哩_bilibili)
大家可以看到在程式設計這條路上,如果想走的更遠,更久,那麼你就需要不斷的去學習,不斷的充實自己,做一個堅定的長期主義者。
上文中提到的所有程式設計書籍PDF版我都整理放在了公眾號中,你可關注後回覆“C#入門指南”進行下載;如果想白嫖視訊資源,也可回覆“C#視訊資源”,就會找到電子連結,希望對你有幫助。
原創不易,希望給個關注,謝謝支援。
寄語
人生短暫,我不想去追求自己看不見的,我只想抓住我能看的見的。
我是阿輝,感謝您的閱讀,如果對您有幫助,麻煩關注、點贊、謝謝。
歡迎掃描下面二維碼,關注我的原創公眾號【Andy阿輝】,寫一些程式設計師的所思所想,希望對你有幫助。