教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

C/C++培訓(xùn)之如何成為一個(gè)牛逼的C/C++程序員?

更新時(shí)間:2016年08月24日10時(shí)42分 來源:傳智播客C++培訓(xùn)學(xué)院 瀏覽次數(shù):

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

本文版權(quán)歸傳智播客C++培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客C/C++培訓(xùn)學(xué)院
首發(fā):http://www.xamj520.com/c/ 

 
0 分享到:
和我們?cè)诰€交談!