經(jīng)常發(fā)現(xiàn)有人在網(wǎng)上提出這樣的問題,現(xiàn)實(shí)中也確實(shí)有不少人在經(jīng)歷了3-5年的Windows開發(fā)之后就開始迷失方向,每天渾渾噩噩混日子,可能是因?yàn)檫@個問題粒度太大,沒人愿意花時間回答,希望本文可以拋磚引玉,給大家節(jié)省些時間,同時也希望園子里面的兄弟們能盡力的補(bǔ)充,從而使這篇文章可以幫助更多的后來人。
首先說明的是,本文提到的各種技術(shù)不分先后,沒有順序,雖然先學(xué)什么,再學(xué)什么對某些人來說可能更方便,但是這些都不是絕對的,因?yàn)槊總€人的情況不同。
Windows開發(fā)首先必須學(xué)習(xí)的就是操作系統(tǒng)的API,因?yàn)槠渌囊磺卸际菢?gòu)建于OS之上,所謂九層之臺,起于壘土,如果你對linux的系統(tǒng)調(diào)用很熟悉就會發(fā)現(xiàn)其實(shí)他們大同小異,都是應(yīng)用程序在使用系統(tǒng)提供的功能。
接下來是MFC,有了MFC你才真正的可以干點(diǎn)開發(fā),因?yàn)镸FC實(shí)在是太全了,幾乎封裝了所有的Windows API, 消息循環(huán),COM實(shí)現(xiàn)…
到了此地,你可以開始學(xué)習(xí)調(diào)試技術(shù)了,熟悉了調(diào)試的各種技巧才可以做到事半功倍,得心應(yīng)手。
接下來是組建對象模型COM,作為windows的基石,不懂COM,很難說自己精通windows編程,因?yàn)榧词宫F(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)用于實(shí)際開發(fā),現(xiàn)有的技術(shù)中.NET 是非常值得學(xué)習(xí)的,因?yàn)?NET 的主旨是提高程序員的開發(fā)效率,在這個浮躁的世界,開發(fā)效率有時候能夠代表一切。
從COM到.NET只有一步之遙,.NET 其實(shí)是從COM+演化而來,具體細(xì)節(jié)請參看 Don Box的《.NET 本質(zhì)論》了解了這些會使你對.NET的認(rèn)識上升到一個新的層面。
接下來是C# 因?yàn)檫@家伙是.NET的嫡系部隊(duì),除了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。
大概羅列了一些,其實(shí)每個主題仔細(xì)探究下去都很有韻味,還有需要說的是,其實(shí)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;
等等主題也是值得大家研究的。
最后借魯迅的話收尾:其實(shí)地上本沒有路,走的人多了也便成了路,希望大家不要把時間都浪費(fèi)了,原來還有好多東西可以去鉆研。
不當(dāng)之處望大家批評、指正、拍磚, 并提出您的寶貴的意見和補(bǔ)充。
-
WINDOWS
+關(guān)注
關(guān)注
4文章
3702瀏覽量
94057 -
程序員
+關(guān)注
關(guān)注
4文章
956瀏覽量
30942
發(fā)布評論請先 登錄
芯盾時代SDP助力企業(yè)應(yīng)對核心機(jī)密泄露危機(jī)
程序員最常見謊言
軟通國際亮相2025沙中開源與AI科技峰會
奔赴熱AI,碼力全開!Talkweb House@1024程序員日系列活動圓滿收官
開鴻智谷“以賽促學(xué)、以賽選才”|1024程序員節(jié)暨開源鴻蒙構(gòu)建大會圓滿落幕!
飛凌嵌入式ElfBoard-常用編輯器之Vim編輯器
跟老齊學(xué)Python:從入門到精通
程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)
是否有辦法用標(biāo)準(zhǔn)Windows驅(qū)動程序控制GPIO嗎?
如何在 樹莓派 上編寫和運(yùn)行 C 語言程序?
零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?
Gemini Vision + Raspberry Pi 化身“數(shù)字導(dǎo)盲犬”?
Windows程序員應(yīng)該要學(xué)什么
評論