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