最近的任務是做一個jni的接口給我們用java開發(fā)的產(chǎn)品使用,于是有機會體驗了一把Win32 API。
不得不說一句的是,MSDN確實是個巨大的寶庫,其他公司、組織、開源社區(qū)的文檔資源,確實無法和windows平臺相提并論。
首先找了幾本書看看,基本上都是按照侯捷先生網(wǎng)站推薦來看的,基本的概念都是了解的,缺少的就是實戰(zhàn)編碼和排錯的實踐,所幸任務也不是很艱巨,java和本地的Win32 api的接口非常簡單,所有的任務就是查找API,然后寫代碼,編譯測試。
我的c編程經(jīng)驗基本上都是紙上談兵,雖然也看過c traps and pitfalls這樣的進階讀物,也仔細的做過The c Programming Language上大部分的習題,可是確實沒有任何實際的跟平臺相關的編碼經(jīng)驗。在java里面工作的時間看來是過于長久了,牽涉到自己管理內(nèi)存的地方就會非常的沒有自信,總是害怕會出什么亂子,幸虧MSDN上面的例子極為全面,參考書也是非常權(quán)威,有看著像的代碼,先貼到編輯器里編譯一下看看再說,就這么邊學邊做了。
最大的感覺是know how在Windows平臺上也是一件不太容易的事情,因為Windows操作系統(tǒng)本身就非常復雜的這個事實,蔡學鏞的“l(fā)ots of APIs”成了一件讓人羨慕的事情,如果沒有IDE和MSDN的幫助,找到需要的API還真是一件讓人無比頭疼的事情,這個沒有什么辦法,程序?qū)懙貌粔?,也只能摸著石頭過河了。
其次是對于基本概念的理解。這個差不多是重點中的重點,如果關于計算機的基礎知識能夠再厚實一些,如果對于編譯器工作的原理和鏈接的原理有一個扎實的認識,如果對于c語言外表下的那個馮諾伊曼體系有一個更扎實的理解,我想在任何平臺上都能寫出高效漂亮的程序。從這個角度上來講,c語言的高手會輕視其他高級語言程序員的這種心態(tài),多少是可以理解的,也可以這么說,精通c語言和c語言表層下的那個計算環(huán)境的基本概念,是成為一個優(yōu)秀程序員的必由之路。
當然了,我沒有萬般皆下品,唯有讀書高的意思,我的路還很長,我不想就這樣把自己禁錮在一個過于狹窄的圈子里,我的理想就是萬能程序員,在任何平臺上,使用任何編程語言,寫出任何用途的程序,要做到這一點,我就得珍惜我目前能抓住的所有的寫代碼的機會。我想夢想不是用來實現(xiàn)的,而是用來追隨的,對吧。
不得不說一句的是,MSDN確實是個巨大的寶庫,其他公司、組織、開源社區(qū)的文檔資源,確實無法和windows平臺相提并論。
首先找了幾本書看看,基本上都是按照侯捷先生網(wǎng)站推薦來看的,基本的概念都是了解的,缺少的就是實戰(zhàn)編碼和排錯的實踐,所幸任務也不是很艱巨,java和本地的Win32 api的接口非常簡單,所有的任務就是查找API,然后寫代碼,編譯測試。
我的c編程經(jīng)驗基本上都是紙上談兵,雖然也看過c traps and pitfalls這樣的進階讀物,也仔細的做過The c Programming Language上大部分的習題,可是確實沒有任何實際的跟平臺相關的編碼經(jīng)驗。在java里面工作的時間看來是過于長久了,牽涉到自己管理內(nèi)存的地方就會非常的沒有自信,總是害怕會出什么亂子,幸虧MSDN上面的例子極為全面,參考書也是非常權(quán)威,有看著像的代碼,先貼到編輯器里編譯一下看看再說,就這么邊學邊做了。
最大的感覺是know how在Windows平臺上也是一件不太容易的事情,因為Windows操作系統(tǒng)本身就非常復雜的這個事實,蔡學鏞的“l(fā)ots of APIs”成了一件讓人羨慕的事情,如果沒有IDE和MSDN的幫助,找到需要的API還真是一件讓人無比頭疼的事情,這個沒有什么辦法,程序?qū)懙貌粔?,也只能摸著石頭過河了。
其次是對于基本概念的理解。這個差不多是重點中的重點,如果關于計算機的基礎知識能夠再厚實一些,如果對于編譯器工作的原理和鏈接的原理有一個扎實的認識,如果對于c語言外表下的那個馮諾伊曼體系有一個更扎實的理解,我想在任何平臺上都能寫出高效漂亮的程序。從這個角度上來講,c語言的高手會輕視其他高級語言程序員的這種心態(tài),多少是可以理解的,也可以這么說,精通c語言和c語言表層下的那個計算環(huán)境的基本概念,是成為一個優(yōu)秀程序員的必由之路。
當然了,我沒有萬般皆下品,唯有讀書高的意思,我的路還很長,我不想就這樣把自己禁錮在一個過于狹窄的圈子里,我的理想就是萬能程序員,在任何平臺上,使用任何編程語言,寫出任何用途的程序,要做到這一點,我就得珍惜我目前能抓住的所有的寫代碼的機會。我想夢想不是用來實現(xiàn)的,而是用來追隨的,對吧。