Windows平臺可謂是當今最為流行的平臺之一(甚至可以沒(méi)有之一)其用戶(hù)量遠遠超過(guò)了Linux,Mac,Unix等主流PC操作系統平臺。作為一名程序員,選擇Windows作為自己的開(kāi)發(fā)平臺無(wú)疑是一個(gè)正確的選擇。但是,由于Windows開(kāi)發(fā)人員數量的龐大,使得Windows開(kāi)發(fā)人員的“價(jià)值”顯得普遍沒(méi)有Linux,Max等平臺下的高。換句換說(shuō),就說(shuō)庸庸碌碌之輩太多。從一個(gè)某某培訓機構學(xué)上幾個(gè)月的.net的人就自稱(chēng)是Windows開(kāi)發(fā)高手了,這當然會(huì )讓人笑掉大牙。其次由于Microsoft的開(kāi)發(fā)平臺和工具通常很容易入手,所以使得許多程序員誤以為這就是開(kāi)發(fā)Windows應用,認為Windows開(kāi)發(fā)理應簡(jiǎn)單。
作為一名學(xué)生,我從自己的角度談?wù)勅绾握嬲蔀橐幻鸚indows開(kāi)發(fā)高手。注意,以下說(shuō)講的都是在自己的語(yǔ)言關(guān)已過(guò)的前提下,你應該熟練結構化程序設計,對面向對象程序設計有一定的理解。為什么不是精通面向對象?面向對象這潭水真的太深了,做了一輩子開(kāi)發(fā)的程序員也許都不敢說(shuō)自己完全掌握了面向對象程序設計精髓。
1>熟練掌握Windows SDK編程
掌握Windows SDK開(kāi)發(fā)其實(shí)是對WIndows操作系統進(jìn)行一次初步的探究。雖然MFC已經(jīng)將SDK進(jìn)行了很好的封裝,但是想要真正掌握Windows程序設計的精髓,還是要從SDK開(kāi)始。如果初學(xué)者一開(kāi)始就拿著(zhù)一本《深入淺出MFC》來(lái)看的話(huà),我相信是看不下去的。從C語(yǔ)言控制臺編程跨向Windows程序設計其實(shí)是需要花一點(diǎn)功夫的。初學(xué)者往往在學(xué)習Windows程序設計時(shí)第一個(gè)不習慣的地方是大量MicroSoft定義的宏和結構體。這些“旁枝”往往成為初學(xué)者的一大障礙,是的初學(xué)者將精力往往放在了這些不重要的地方,而不是放在Windows消息機制,窗口架構等主要的地方。MFC這一點(diǎn)做的更為深入,所以建議初學(xué)者一定要從Windows SDK進(jìn)行學(xué)些。
推薦讀物: 《Windows程序設計》------經(jīng)典中的經(jīng)典,Windows開(kāi)發(fā)人必備讀物,由微軟中國的員工翻譯過(guò)來(lái)的,現在已經(jīng)是第五版了。
《Windows核心編程》------站在一個(gè)更高的層次審視Windows。
2>熟練掌握MFC編程
有很多人說(shuō)MFC已經(jīng)過(guò)時(shí)了。的確,這一點(diǎn)不得不承認,Windows自從將重點(diǎn)放在.net戰略上后,基本上對傳統C/C++開(kāi)發(fā)這一塊基本上屬于放羊式管理。到現在為止都沒(méi)有一套像樣的界面庫。那么,我們?yōu)槭裁催€要學(xué)習MFC。
首先,學(xué)習MFC學(xué)習的是一種思想,是從Windows SDK結構化程序設計跨向面向對象程序設計的一個(gè)堅實(shí)的橋梁。雖然不能說(shuō)這座橋梁有多么完美,但是歷經(jīng)了這么長(cháng)時(shí)間的考驗任然沒(méi)有被淘汰,一定有它存在的價(jià)值。MFC的架構是我們必須要學(xué)習的地方,他是.net Form開(kāi)發(fā)的基礎。也許有很多人一開(kāi)始就進(jìn)行.net Form開(kāi)發(fā),C# ,VB用的很舒服,但是這僅僅是知其然不知其所以然。這樣的開(kāi)發(fā)者永遠只是停留在表面,而不知道整個(gè).net Form的架構是怎樣的。稍微遇上一些比較復雜的問(wèn)題,就束手無(wú)策了。所以MFC是必須要掌握的。
其次,MFC是直接調用Win 32API對Windows進(jìn)行操作的,效率要比在虛擬機上運行的.net高很多,其次C++語(yǔ)言的效率也是要高于C#的。這就是為什么和圖形圖像有關(guān)的編程一般都會(huì )選擇C++了。在高性能的某塊通常都會(huì )選擇C/C++進(jìn)行開(kāi)發(fā),C#,VB等來(lái)調用。并且.net對傳統Win32 API的調用是一度受限的。有的時(shí)候不得不用P/INVOKE的方式進(jìn)行Win32 api的調用。
推薦讀物:《VC++深入詳解》--------孫鑫寫(xiě)的書(shū),非常適合MFC的初學(xué)者。
《深入淺出MFC》---------侯捷大師對MFC做了一次完美的外科手術(shù),讀懂它,反復鉆研咀嚼,你將會(huì )完全掌握MFC的精髓所在。
3>掌握Windows操作系統的核心機制
通過(guò)上面兩步的學(xué)習,初學(xué)者應該已經(jīng)對Windows有一定的了解了,初學(xué)者通過(guò)一種較為輕松的方式學(xué)習Windows?,F在是時(shí)候對Windows進(jìn)行一些深入的了解了。之前我們都是站在程序員的角度對Windows進(jìn)行審視,角度可能有所單一?,F在則是需要站在一名系統設計師的角度對Windows操作系統進(jìn)行研究。
推薦讀物:《深入解析Windows操作系統》------這本書(shū)是將帶你全面的了解WIndows操作系統的各個(gè)方面
《Win32多線(xiàn)程程序設計》-----站在并發(fā)的角度更為深入的了解Windows機制。
讀者在有了1,2的基礎后學(xué)習3,相信不會(huì )有太大的難度。
4>掌握.net
作為一名Windows程序員,.net是你不得不去學(xué)習的一門(mén)技術(shù)。無(wú)論是學(xué)習還是工作你一定會(huì )遇到它。在有了以上基礎的情況下,學(xué)習.net是一件十分輕松的事。.net平臺下有眾多語(yǔ)言可以選擇,不過(guò)這里推薦大家首選C#,理由就不用多說(shuō)了??纯疵總€(gè)月的編程語(yǔ)言排行榜就一目了然了。
推薦讀物:《C#入門(mén)經(jīng)典》-------Wrox公司的紅寶書(shū),講的很全面。
《C#高級編程》--------同樣是Wrox公司的書(shū),講的更加深入。
《C# via CLR》--------講述.net的核心機制。
《WPF高級編程》------新一代圖形界面技術(shù),你應該了解。
5>掌握Win32 asm
人都是希望自己能越來(lái)越牛,而不是永遠停留在一個(gè)初級程序員的位置。如果你想真正掌握Windows真正成為一名計算機大牛的話(huà),匯編是你必須要掌握的。
匯編是你進(jìn)行Windows下的軟件調試,逆向工程,商業(yè)破解,內核研究,設備驅動(dòng)開(kāi)發(fā)的基礎。是否精通匯編語(yǔ)言是普通程序員和大牛之間的一道分水嶺。
推薦讀物:《王爽匯編語(yǔ)言》-------初學(xué)匯編的入門(mén)書(shū)籍
《Inter匯編語(yǔ)言程序設計》------開(kāi)始進(jìn)入保護模式下的匯編學(xué)習
《琢石成器--Windows環(huán)境下32位匯編語(yǔ)言程序設計》-------開(kāi)始學(xué)習Windows下的匯編語(yǔ)言
《Orange‘S一個(gè)操作系統的實(shí)現》--------讓你了解匯編語(yǔ)言究竟有多牛
6>掌握Windows內核編程
總有一部分人想要刨根問(wèn)底,將Windows操作系統徹徹底底的搞明白。那么,就開(kāi)始Windows內核編程吧。掌握Windows內核編程,可以說(shuō)在Windows平臺上你將可以為所欲為了。不過(guò),Windows內核編程無(wú)疑是對程序員的一大考驗。就算是有豐富Win32開(kāi)發(fā)經(jīng)驗的程序員在面對復雜的Windows內核時(shí)也會(huì )顯得束手無(wú)策。這時(shí),匯編是你唯一可以借助的工具,自己調試,自己Crack,你所面臨的問(wèn)題往往是Google,baidu都無(wú)法解決的。
推薦書(shū)籍:《Windows驅動(dòng)開(kāi)發(fā)技術(shù)詳解》-----內核驅動(dòng)的入門(mén)好書(shū)
《寒江獨釣Windows內核安全編程》----- -一本向初學(xué)者展現內核編程魅力的書(shū)
《Windows內核原理與實(shí)現》----- 潘愛(ài)民大師的書(shū),采用WRK源碼讓你真正走進(jìn)windows內核
《Windows內核情景分析》------- 經(jīng)典中的經(jīng)典,毛德操大師的書(shū),你必須反復研讀,這本書(shū)會(huì )給你帶來(lái)本質(zhì)上的提高
聯(lián)系客服