經常發現有人在網上提出這樣的問題,現實中也確實有不少人在經歷了3-5年的Windows開發之后就開始迷失方向,每天渾渾噩噩混日子,可能是因為這個問題粒度太大,沒人愿意花時間回答,希望本文可以拋磚引玉,給大家節省些時間,同時也希望園子里面的兄弟們能盡力的補充,從而使這篇文章可以幫助更多的后來人。
首先說明的是,本文提到的各種技術不分先后,沒有順序,雖然先學什么,再學什么對某些人來說可能更方便,但是這些都不是絕對的,因為每個人的情況不同。
Windows開發首先必須學習的就是操作系統的API,因為其他的一切都是構建于OS之上,所謂九層之臺,起于壘土,如果你對linux的系統調用很熟悉就會發現其實他們大同小異,都是應用程序在使用系統提供的功能。
接下來是MFC,有了MFC你才真正的可以干點開發,因為MFC實在是太全了,幾乎封裝了所有的Windows API, 消息循環,COM實現…
到了此地,你可以開始學習調試技術了,熟悉了調試的各種技巧才可以做到事半功倍,得心應手。
接下來是組建對象模型COM,作為windows的基石,不懂COM,很難說自己精通windows編程,因為即使現在的.NET framework也是構建于COM之上,很多問題還是需要SOS到底層去調試。
當你懂得了COM的精髓,你應該開始學習ATL了,這個類庫可以使你的COM開發更加得心應手。
說到ATL就不能不提到他的前輩STL,這個出自于標準C++的類庫在windows上同樣也得到了很好的支持,有了STL在你有一天想轉linux開發也同樣會用得上。
Windows 8中的WinRT現在還沒有應用于實際開發,現有的技術中.NET 是非常值得學習的,因為.NET 的主旨是提高程序員的開發效率,在這個浮躁的世界,開發效率有時候能夠代表一切。
從COM到.NET只有一步之遙,.NET 其實是從COM+演化而來,具體細節請參看 Don Box的《.NET 本質論》了解了這些會使你對.NET的認識上升到一個新的層面。
接下來是C# 因為這家伙是.NET的嫡系部隊,除了IL,這家伙可以說和.NET 的關系最為親近,大部分的新功能都會最先在其中加以體現。當你熟悉了C#, BCL,《CLR via C#》可以說這個時候你已經可以勝任基本的C#開發了,可以很快寫出一個小工具,完成一個相關的task。
接下來是WCF和WPF,做分布式開發少不了WCF,同樣華麗的界面少不了XAML,WPF。
大概羅列了一些,其實每個主題仔細探究下去都很有韻味,還有需要說的是,其實Windows上面好多的東西都和UNIX很像,比如PowerShell明顯是為了像UNIX一樣,給開發者提供一個更強大的shell, 如果有興趣,觸類旁通一下,也很是有趣。
還有:
LINQ改變了我們的數據操作方式,統一了數據操作模型,經常操作數據的兄弟,你值得擁有。
F#作為一種函數式編程語言也很值得研究,由于本人使用不多,在此不作評價。
另外:
作為基礎的算法;
作為提升功力的設計模式,UML;
作為改善系統性能的重構;
作為大部分分布式核心的TCP/IP;
等等主題也是值得大家研究的。
最后借魯迅的話收尾:其實地上本沒有路,走的人多了也便成了路,希望大家不要把時間都浪費了,原來還有好多東西可以去鉆研。
不當之處望大家批評、指正、拍磚, 并提出您的寶貴的意見和補充。
-
WINDOWS
+關注
關注
3文章
3544瀏覽量
88641 -
程序員
+關注
關注
4文章
952瀏覽量
29799
發布評論請先 登錄
相關推薦
評論