前沿:GIS專業剛剛開始接觸開發,半年沒入開發門,學開發智商應該沒問題,走了不少彎路。博文轉自 輝耀應用程序框架學習網
不管學習哪一種編程語言或技術框架,為了避免“迷路”,少走彎路,都應當有一條系統的、全面的學習路線,筆者認為應以軟件常用功能為主線,由簡入繁,逐一實踐每一項功能。筆者曾自學過C、VFP、ASP、VB.NET、PHP、JAVA、JSF、C#.NET、WinForm、ASP.NET及網頁開發等編程語言或技術,參與開發的項目有十多個,筆者認為學習軟件開發,入門最難,入門不是簡單的在電腦屏幕上輸出“Hello World!”,而應當是了解編程語言的開發環境和工具,學習和掌握基本控件,多應用實踐。入門階段計算機編程理論大可放到一邊,先學會如何使用編程工具開發小程序,然后再探討如何開發更復雜的程序,最后再系統性的補全基礎理論知識。筆者主張“死記硬背”式自學方法,先看到效果,再回過頭來探討為什么這么做。初學者如果嘗到甜頭,那么他就會對軟件編程的興趣會越學越濃烈,從而進入一個良性循環學習過程。如果學C語言幾個周,也只能在自己的電腦屏幕上輸出一些字符、寫個循環、做個數學運算,那么這個初學者很可能因挫敗的成就感而喪失對軟件編程的興趣。
我大學期間學習C語言的時候,雖然考試成績不錯,但對C語言理論還是一頭霧水、充滿疑惑,學好C語言具體能做什么也不清楚。因C語言的經典和傳奇而喜歡它,但屢次因未感受到C寫程序的成就感而放棄。后來,筆者學習網頁開發、ASP,自學半年,雖然能寫一些動態網頁,但獨立做個公司網站還很難。當時公司網站市場價還處於萬元時代,和現在幾百元一個網站相比,技術進步了,時代變了。筆者自認為在學習VB.NET之前自己未曾入門。一次逛書店,偶然翻到一本VB.NET開發實戰,閱讀VB.NET代碼如同閱讀文字一樣輕松愉悅,按照書本提供的WinForm案例,短短兩個月的時間就將公司檔案系統(ASP版)使用Win Form重新開發。后來學習ASP、PHP、Java等編程語也非常順利。至此,方感恍然大悟,學編程這么多年,一直懵懵懂懂,歸根結底是未找到入門的切入點。
不論C#、Java、PHP,每種編程語言,語法都很相似,功能也相似,那么按照這個道理學習Java和C#應當難度一致,但大多數程序員都認為學習Java要比C#難,學習成本也高。筆者認為主要原因是Java的開發環境和資源獲取難度要高於C#,C#在集成開發工具Visual Studio中通過向導分分鍾就可看到C#寫的程序,Visual Studio由微軟提供,其完善程度遠高於Java的開發環境。一個有趣的現象是Java程序員經常滿世界尋找合適版本的jar包,這也是Java開源項目多、資源多的一個關鍵因素。C#程序員這樣的經歷就少多了,因為微軟提供的已經很全面了。
有的程序員認為微軟的東東太容易上手,所以學.NET不夠高大上、不能證明自己比別人聰明,更喜歡使用敲命令行的工具。筆者認為學習計算機編程,可先找個“軟柿子”,再啃“硬骨頭”,所以推薦初學者從C#和Win Form入手。
以下是筆者整理的學習路線,功能排列沒有絕對先后順序,只是一個參考方向,歡迎批評指正,歡迎補充!
C#學習路線
1.安裝和熟悉開發工具或開發環境
2.創建一個項目,輸出Hello World,並在另一台電腦上運行編譯好的演示程序
3.熟悉WinForm基本控件
4.數據類型
5.類及屬性定義
6.變量
7.賦值
8.運算符
9.字符串拼接,盡量避免頻繁使用+拼接,可使用StringBuilder
StringBuilder sql = new StringBuilder(); sql.Append("select tb.name,ta.* from tablea ta"); sql.Append(" left join tableb tb on tb.id = ta.id"); sql.Append(" where tb.name like '%%'"); sql.Append(" order by tb.name");10.字符串格式化,使用傳參方式替代字符串拼接
string username = "huiyaosoft.com"; int age = 1; Console.WriteLine("Username{0},age{1}",username,age); Console.WriteLine(string.Format("Username{0},age{1}", username, age));11.日期時間格式化
12.數值格式化
13.保留小數
14.條件
15.循環
16.生成隨機數
17.數組
18.列表
19.隊列
20.引用命名空間
21.在控制台輸出
22.字體樣式
23.快捷鍵
24.對話框
25.文件及文件夾操作
26.文本文件讀取、修改、刪除等操作
向文本文件寫入(追加)內容,如果文本文件不存在則創建
System.IO.File.AppendAllText(@"c:\demo.txt","your content");讀取文本文件全部內容
string content = System.IO.File.ReadAllText(@"c:\demo.txt");27.字符集
28.XML文件操作
29.驗證碼
30.縮略圖
31.操作Excel
32.操作WPS
33.錯誤處理
34.錯誤日志
35.二進制流
36.字符編碼
37.加解密
38.定時器
39.多進程
40.發郵件
41.調用cmd命令提示符
42.連接數據庫
43.數據庫增刪改查操作
44.數據集DataTable
45.字典
46.熟悉WinForm控件
47.文本標簽Label
48.按鈕
49.文本框
50.下拉框
51.日期時間選擇框
52.單選框
53.復選框
54.列表框
55.選項卡
56.分割條
57.樹
58.數據表格DataTableGridView/DataGrid
59.控件及事件(單機、雙擊、獲得焦點、失去焦點、選中)
60.表單校驗
61.正則表達式
62.消息對話框
63.確認框
63.輸入框
66.使用代理
67.操作COM口
68.打印
69.報表
70.Socket通信
71.托盤小圖標
72.打開一個網址
System.Diagnostics.Process.Start("http://www.huiyaosoft.com/");73.打開一個網址並讀取網頁內容
74.文件上傳下載
75.生成條形碼
76.生成二維碼
77.安裝包
78.獲取ip地址
79.引用第三方dll
80.文檔管理系統
81.取得程序當前運行所在路徑
System.Windows.Forms.Application.StartupPath + "\\";……