更新時間:2018-01-05 來源:黑馬程序員 瀏覽量:
今天來自傳智博客(www.itcast.cn)的培訓專家為大家分享如何成為一個牛逼的C/C++程序員。
這個題目的噱頭太大,要真的寫起來, 足夠寫一本書了。本人是過來人, 結合自身的體會和大家交流一下,希望新人能少走彎路。每個人的情況不一樣,我下面的描述可能并不適合每一個看到這篇文章的人。
一、C/C++語言
如果你的基礎很差, 建議不要一開始就學C++語言,從C開始學起,對程序有個初步的認識,循序漸進。C語言的書嘛,先買一本 300 頁以內的,把書中的每一個例子都通過鍵盤敲打進去到 Visual studio里面去,然后單步執行,逐行調試去看各個變量的值。或者自行添加一些printf語句去輸出變量的值。這樣當你看完一本書后, 你就有編寫小程序的感覺了。
記住,千萬不要偷懶,不敲進去,自以為聰明, 能看懂, 或者直接從光盤復制。偷懶的代價是會花費更多的時間學習,最后還沒有學會,給自己的自信心造成巨大打擊,再也不想學程序了。
C語言看完一本書后,下來你就可以買一本C++的書看了。 C++的書也是一樣, 必須300頁以內的那種,不要一來就想學《C++ Primer中文版》這樣的好書, 因為太厚了,怕你沒有信心能夠看完,即使你很有信心,花費一年的時間才看完,不值得。這種經典的厚的好書, 適合作為資料查閱,不適合挨個細節都看。
還是要提醒各位,一定要把書中的例子挨個敲打到電腦里面, 單步執行。一定不要從光盤復制, 一定要單步執行。
經過兩本書的磨練, 估計你對C/C++肯定有比較深入的了解了, 下來應該可以進入實戰了。
二、帶界面的應用程序
學會了C/C++語言本身,可能還沒有什么成就感,畢竟都是控制臺的程序, 老是輸出一串字符串, 整天面對各黑框框,成就感估計不是那么爽。要是能搞個帶UI界面的程序就爽了。
下來就看個人的志向了, 如果走微軟路線, 那你下來學MFC好了,如果要走開源路線, 那開源跨平臺的界面庫多得是。
通用的并且簡單的就是 wxWidget 了, 官方網站為 www.wxwidgets.org/ 。你下載后看具體的例子, 把里面的例子程序敲到你的 visual studio 里面, 去調試, 看運行的結果, 你也可以試著去修改例子, 添加按鈕,響應按鈕事件等。
走到這一步, 恭喜你,可以照葫蘆畫瓢的搞個小應用程序了, 還帶界面。
三、網絡應用程序
語言搞懂了,UI程序也會了, 下來該學學網絡咯, 現在那個程序不需要聯網啊,懂網絡對你理解很多程序非常有幫助。但是網絡應用程序從哪里入手呢 ?
我來告訴你,從《UNIX網絡編程》這本書入手吧,這本書可以教會你網絡套接字的底層原理,把上面的例子好好學習,自己動手寫一個回應服務器。寫一個服務器端,在寫一個客戶端。服務器端請務必學會 select 這個簡單的多路復用模型,這樣你才能慢慢的深入里面 poll , epoll ,IOCP 之類的模型。
四、文件操作
所有的程序,基本都會用到文件的讀寫操作,windows系統有自己的文件操作API, 比如CreateFile, DeleteFile 等,請新手不要學windows的文件操作API, 新手請學標準C語言的文件操作函數,簡單易學還跨平臺。就那么幾個函數,三下五除二你也就學會了, fopen, fclose, fread , fwrite, fseek, ftell 就這么幾個而已。
五、深刻理解內存與指針的關系
作為一個C/C++程序員, 從學習程序的頭一天開始,就要和內存的分配釋放作斗爭。你必須理解內存與指針的關系。怎么樣才能理解呢, 請大家去看 《高質量C/C++編程》里面自帶的幾個經典例子吧。把那幾個例子搞得清清楚楚, 基本能夠理解其中的原理了。
六、仔細研究apache源碼
學程序非特別是C/C++程序,非3年之功可以出山,三年對一個C/C++程序來說是一個從量變到質變的過程,三年的項目實戰經驗,可以讓你接觸到一個完整的應用程序所需要具備的骨架。但是這個階段你寫的代碼,可能充滿BUG, 會宕機,運行效率很差,自己回頭看看一年前寫的代碼,可能自己都感覺惡心, 看不下去。沒有關系,這種感覺是每一個進步青年都會有的。要提高自己的代碼水平, 還是要像高手學習。你可能要問,公司同事的水平一般, 水平好的人家也不愿意給我講。沒有關系,開源的代碼就是你像高手學習的最佳途徑,開源代碼是高手留下的練功秘訣, 你看了后你會突然感覺茅塞頓開, 感覺自己的水平差人家太遠了。我為何要推薦apache的源碼呢?
apache的源碼是高手中的高手寫的,執行效率和程序架構堪稱一絕。里面的很多思想是所有程序都通用的,搞懂了, 很多模塊你也可以直接拿來使用。apache對內存池的使用, 對線程池的使用, 對模塊結構的封裝,非常具有實際意義。要是你能把apache的源碼吃個透徹,每一個細節都搞明白了為何人家要這么實現,我可以給你說,“恭喜你 , 你離傳說中的高手已經不遠了。”
七、修煉C++
我上面說的基本都是修煉C的, 要修煉C++, 還得再花3年功夫, 才有可能練成C++高手。C++太博大精深了,其中最復雜的莫過于泛型編程思想,不要以為能寫個模板類就認為泛型編程不過如此而已。仔細看看STL源碼, Boost 源碼, 你就知道泛型編程有多么的博大精深了。修煉C++, 可以從用C++封裝的MFC, wxWidget入手, 看高手如何通過C++語言, 封裝這樣龐大的UI庫,里面應用了很多的C++機制, 最典型的就是多態機制, 還有很多的設計模式應用可以研究。
八、深研設計模式
設計模式是程序設計的靈魂,是通用方法,當你面對一個大型項目的時候,如何設計一個有彈性的系統,是所有系統分析員應該掌握的技能。在設計模式的研究上,要結合實際的項目進行。
當然如果有好的環境和老師同學,學習這件事就會更加的輕松愉快了,而傳智播客是大家的不二選擇,這里有敬業的老師,可愛的同學,漂亮的班主任相信大家可以在這里找到自己想要的一切。
好的今天的分享先到這里,我們為您的分享只是剛剛開始,如果大家對學習c/c++還有什么問題可以關注登陸傳智播客教育集團官網www.itcast.cn了解更多的學習技巧和免費的教學視頻。
我們的目標是讓大家開心的學習,高薪的就業。
本文版權歸黑馬程序員C/C++學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員C/C++培訓學院