未來兩到三年會學習 C# ,如何做好自己的學習計劃?

初學者,菜鳥,研究生階段求指點!


多造輪子,實際編碼為主,理論學習為輔。

這個太抽象了,舉個具體例子吧,夠讓你幹上一年了。

比如,以做爬蟲為例子。
可以分成下面幾個階段。

第一版:單頁面讀取
目標:寫一個控制台程序,可以從網路上讀取一個指定頁面的HTML內容。並輸出到控制台
作用:練習語法,理解類庫階段,比如屬性HTTP相關的類的操作,String類的操作,控制台操作

第二版:.2層頁面讀取
目標:在前面的基礎上,讀取到一個頁面之後,用正則操作分析出其中的URL地址,讀取第二層頁面
作用:可以學習正則,數組操作。

第三版:.N層頁面讀取
目標:在前面的基礎上,讀取N層網頁。
作用:可以學習遞歸,異常處理(N層頁面,總會遇到訪問不到的無效鏈接的),以及循環讀取控制的問題(重複訪問首頁:從首頁出發爬行,子頁面再次指向首頁的問題)。

程序做到這裡,基本上就是慢如烏龜了。然後就是考慮加速

第四版:.N層頁面單線程讀取
目標:在前面的基礎上,把訪問HTML部分代碼放置到一個線程中,並和前面的結果保持一致
作用:可以學習代碼重構(因為功能要保持前面一個版本完全一樣,只是改成線程操作),線程相關的類庫

第五版:.N層頁面,多線程讀取
目標:使用多線程來同步讀取網頁內容,並解析之後,放入到待解析隊列中。
作用:學習多線程操作,線程同步概念,以及同步操作。

這時候運行速度飛快,但是內存消耗也飛快。於是會就會有第六版本

第六版.N層頁面,多線程讀取,存入資料庫
目標:在前面的基礎上,把讀取的內容保存到資料庫中
作用,資料庫讀寫操作學習。

第七版:增加控制界面
目標:運行過程中有些參數,比如線程數,爬行深度這些參數需要一個界面來控制。還有一些運行數據,比如抓取數目,錯誤數目,隊列長度等需要在界面上直觀的顯示出來。這都需要把控制台的程序,改成UI界面的。
作用:學習UI開發,以及線程和UI的交互。

基本上到了這裡,如果按這個來操作,C#的學習結束了,完全過關。

當然在這個過程會遇到不少問題,多看幫助文檔,多看書,多google,少百度。

就醬!

2014-11-05

More:

這輪子和進階輪子,看評論,有同學在嘗試造,那我再補充點信息

第五版:.N層頁面,多線程讀取-Ext

基本過程是:

1。新建一個URL隊列,選擇一個初始URL地址,抓取網頁,分析URL地址,存到URL隊列尾部

2。啟動多個線程,讀取URL隊列中存的URL地址,抓取網頁,分析URL地址,存到URL隊列尾部

在這過程中,盡量避免重複抓取相同網頁。

課後小習題:

1。怎麼讓Web伺服器認為是一個瀏覽器在訪問網頁,而不是一個爬蟲?

2017-4-8


同是研究生剛開始學C#明年這時候回來更新。

————————————————————

更新

.Net找不到工作,坑了。

目前正在搞課題,準備畢業了去學JAVA。

__________________________________

花了一點時間學習Unity,現在做客戶端程序員了。


學習一門語言, 一個星期就夠了, 剩下就是熟悉各種類庫和開發場景, 就需要相當長的時間去熟悉和體會,學習計劃就是兩條線,

一條線是深入基礎體系結構,挖掘平台潛力, 從CLI, CLR 到 各種序列化, 多線程, 並行和非同步, 表達式樹, F#, 加解密, 證書鏈等等.

一條線是擴大知識面, 熟悉各種開發場景, 比如

1. Web: http://ASP.NET MVC的學習和開發, WebAPI, 相關的JS, HTML都會有接觸

2. Windows Form: WPF, Windows Service等

4. 網路通訊, WCF等

5. 移動開發, WindowsPhone, Windows 8 Pro

除了上述兩條線, 其實還有更重要的是行業和標準,面對不同行業,上述兩條線的偏重點都是不一樣的, 一個網站和一個CRM項目的差異非常大, 所以你最好先想好打算朝哪個行業發展, 這樣才能做到一通百通。


講講我的經歷吧,研一下學期的時候,有一個項目要用到c#,之前沒接觸過,只有一點點面向對象的基礎,因為馬上就要開始做項目了沒時間給你慢慢學,於是借了一本書隨便看了看然後做了一個記事本,邊做邊學,大概一個星期左右算是入門了吧,在之後的項目中遇到問題再找資料自己解決。總之一句話,想的多不如做的多,馬上動手實踐才是硬道理,邊做邊學才更有效率


我先回答開始應該怎麼做吧。開始當然是入門了,了解主要的語法特性了。我建議是在 黑框框裡面,這樣專註於語言本身。黑框框也可以玩出花來。我安利一下我的CSDN博客文章

原創 導彈能否摧毀目標?一個簡單的例子說明c# 中property(性質)的用法

在網咖上網,時間快到了,下次再更


從基礎學起,邊學基礎邊做「項目」,知識和實踐結合是非常好的學習方法,開始不會就扒別人的code,然後逐漸向底層學,做到既要知其然又要知其所以然。


要學到什麼程度?剛開始學的是語法,基礎類,後面學的就都是生態圈,理念之類的玩意了,這玩意可是很難學通的

如果說只是了解c#本身,看看深入理解c#這本書吧,有精力還可以看看clr c#,幾個月差不多可以完事。

至於生態圈那些東西,一個個類庫,框架慢慢看吧,建議從項目入手會舒服些。

利益相關:搞了三年.net,現已轉java


推薦閱讀:

C#7新增的模式匹配為什麼不是表達式?
C# 中為什麼List<List<T>> 不能轉換為 IList<IList<T>> ?
為什麼很多人認為.NET就是拖控制項?
C#為什麼總不被看好?

TAG:程序員 | 編程語言 | C# |