轉載,程序員的發展(2)

1、C/C++語言程序員

 

      若是你的基礎不好, 建議不要一開始就學C++語言,從C開始學起,對程序有個初步的認識,按部就班。C語言的書嘛,先買一本 300 頁之內的,把書中的每個例子都經過鍵盤敲打進去到 Visual studio裏面去,而後單步執行,逐行調試去看各個變量的值。或者自行添加一些printf語句去輸出變量的值。這樣當你看完一本書後, 你就有編寫小程序的感受了。apache

 

記住,千萬不要偷懶,不敲進去,自覺得聰明, 能看懂, 或者直接從光盤複製。偷懶的代價是會花費更多的時間學習,最後尚未學會,給本身的自信心形成巨大打擊,不再想學程序了。編程

 

      C語言看完一本書後,下來你就能夠買一本C++的書看了。 C++的書也是同樣, 必須300頁之內的那種,不要一來就想學《C++ Primer中文版》這樣的好書, 由於太厚了,怕你沒有信心可以看完,即便你頗有信心,花費一年的時間纔看完,不值得。這種經典的厚的好書, 適合做爲資料查閱,不適合挨個細節都看。小程序

 

仍是要提醒各位,必定要把書中的例子挨個敲打到電腦裏面, 單步執行。必定不要從光盤複製, 必定要單步執行。windows

 

通過兩本書的磨練, 估計你對C/C++確定有比較深刻的瞭解了, 下來應該能夠進入實戰了。設計模式

 

2、帶界面的應用程序服務器

 

      學會了C/C++語言自己,可能尚未什麼成就感,畢竟都是控制檯的程序, 總是輸出一串字符串, 成天面對各黑框框,成就感估計不是那麼爽。要是能搞個帶UI界面的程序就爽了。網絡

 

      下來就看我的的志向了, 若是走微軟路線, 那你下來學MFC好了,若是要走開源路線, 那開源跨平臺的界面庫多得是。架構

 

通用的而且簡單的就是 wxWidget 了, 官方網站爲 www.wxwidgets.org/ 。你下載後看具體的例子, 把裏面的例子程序敲到你的 visual studio 裏面, 去調試, 看運行的結果, 你也能夠試着去修改例子, 添加按鈕,響應按鈕事件等。函數

 

走到這一步, 恭喜你,能夠照葫蘆畫瓢的搞個小應用程序了, 還帶界面。

 

3、網絡應用程序

 

      語言搞懂了,UI程序也會了, 下來該學學網絡咯, 如今那個程序不須要聯網啊,懂網絡對你理解不少程序很是有幫助。可是網絡應用程序從哪裏入手呢 ?

 

      我來告訴你,從《UNIX網絡編程》這本書入手吧,這本書能夠教會你網絡套接字的底層原理,把上面的例子好好學習,本身動手寫一個迴應服務器。寫一個服務器端,在寫一個客戶端。服務器端請務必學會 select 這個簡單的多路複用模型,這樣你才能慢慢的深刻裏面 poll , epoll ,IOCP 之類的模型。

 

4、文件操做

 

      全部的程序,基本都會用到文件的讀寫操做,windows系統有本身的文件操做API, 好比CreateFile, DeleteFile 等,請新手不要學windows的文件操做API, 新手請學標準C語言的文件操做函數,簡單易學還跨平臺。就那麼幾個函數,三下五除二你也就學會了, fopen, fclose, fread , fwrite, fseek, ftell 就這麼幾個而已。

 

5、深入理解內存與指針的關係

 

      做爲一個C/C++程序員, 從學習程序的頭一天開始,就要和內存的分配釋放做鬥爭。你必須理解內存與指針的關係。怎麼樣才能理解呢, 請你們去看 《高質量C/C++編程》裏面自帶的幾個經典例子吧。把那幾個例子搞得清清楚楚, 基本可以理解其中的原理了。 

 

6、仔細研究apache源碼

 

      學程序非特別是C/C++程序,非3年之功能夠出山,三年對一個C/C++程序來講是一個從量變到質變的過程,三年的項目實戰經驗,可讓你接觸到一個完整的應用程序所須要具有的骨架。可是這個階段你寫的代碼,可能充滿BUG, 會宕機,運行效率不好,本身回頭看看一年前寫的代碼,可能本身都感受噁心, 看不下去。沒有關係,這種感受是每個進步青年都會有的。要提升本身的代碼水平, 仍是要像高手學習。你可能要問,公司同事的水平通常, 水平好的人家也不肯意給我講。沒有關係,開源的代碼就是你像高手學習的最佳途徑,開源代碼是高手留下的練功祕訣, 你看了後你會忽然感受茅塞頓開, 感受本身的水平差人家太遠了。我爲什麼要推薦apache的源碼呢?

 

      apache的源碼是高手中的高手寫的,執行效率和程序架構堪稱一絕。裏面的不少思想是全部程序都通用的,搞懂了, 不少模塊你也能夠直接拿來使用。apache對內存池的使用, 對線程池的使用, 對模塊結構的封裝,很是具備實際意義。要是你能把apache的源碼吃個透徹,每個細節都搞明白了爲什麼人家要這麼實現,我能夠給你說,「恭喜你 , 你離傳說中的高手已經不遠了。」

 

7、修煉C++

 

      我上面說的基本都是修煉C的, 要修煉C++, 還得再花3年功夫, 纔有可能練成C++高手。C++太博大精深了,其中最複雜的莫過於泛型編程思想,不要覺得能寫個模板類就認爲泛型編程不過如此而已。仔細看看STL源碼, Boost 源碼, 你就知道泛型編程有多麼的博大精深了。修煉C++, 能夠從用C++封裝的MFC,  wxWidget入手, 看高手如何經過C++語言, 封裝這樣龐大的UI庫,裏面應用了不少的C++機制, 最典型的就是多態機制, 還有不少的設計模式應用能夠研究。

 

8、深研設計模式

 

       設計模式是程序設計的靈魂,是通用方法,當你面對一個大型項目的時候,如何設計一個有彈性的系統,是全部系統分析員應該掌握的技能。在設計模式的研究上,要結合實際的項目進行。

相關文章
相關標籤/搜索