如何學習C/C++?成為一名優秀的C/C++程式員

來源:互聯網
上載者:User

標籤:pst   網路編程   多態   win   模板類   直接   alt   let   網上   

一、C/C++語言

如果你的基礎很差, 建議不要一開始就學C++語言,從C開始學起,對程式有個初步的認識,循序漸進。C語言的書可以先買一本 C primer plus,把書中的一些例子都通過鍵盤敲到編譯工具裡面去,然後逐步執行,逐行調試去看各個變數的值。或者自行添加一些printf語句去輸出變數的值。這樣當你看完一本書後, 你就有編寫小程式的感覺了。

 

記住,千萬不要偷懶,不敲代碼,自以為聰明, 能看懂, 或者直接從網上複製。偷懶的代價是會花費更多的時間學習,最後還沒有學會,給自己的自信心造成巨大打擊,再也不想學程式了。

在學習C/C++或者想要學習C/C++可以加QQ群:389318488,群內有學習資源

C語言看完一本書後,下來你就可以買一本C++的書看了。《C++ Primer plus》這樣的好書,因為太厚了,怕你沒有信心能夠看完。如果確實沒有信心的話, C++的書可以先買一本300頁以內的書看一看。《C++ Primer plus》這種經典的厚的好書, 可以作為資料直接查閱,有時間的時候可以慢慢看。

還是要提醒各位,一定要把書中的例子挨個敲到電腦裡面, 逐步執行。一定不要從網上複製, 一定要逐步執行。

經過兩本書的磨練, 估計你對C/C++肯定有比較深入的瞭解了, 下來應該可以進入實戰了。

二、帶介面的應用程式

學會了C/C++語言本身,可能還沒有什麼成就感,畢竟都是控制台的程式, 老是輸出一串字串, 整天面對各黑框框,成就感估計不是那麼爽。要是能搞個帶UI介面的程式就爽了。

下來就看個人的志向了, 如果走微軟路線, 那你下來學MFC好了,如果要走開源路線, 那開源跨平台的介面庫多得是。

通用的並且簡單的就是Wxwidget了, 官方網站為 www.wxwidgets.org/。你下載後看具體的例子, 把裡面的例子程式敲到你的編譯工具裡面,去調試,看啟動並執行結果,你也可以試著去修改例子,添加按鈕,響應按鈕事件等。

在學習C/C++或者想要學習C/C++可以加QQ群:389318488,群內有學習資源

走到這一步, 恭喜你,可以照葫蘆畫瓢的搞個小應用程式了, 還帶介面。

三、網路應用程式

語言搞懂了,UI程式也會了, 下來該學學網路咯, 現在那個程式不需要連網啊,懂網路對你理解很多程式非常有協助。但是網路應用程式從哪裡入手呢 ?

在學習C/C++或者想要學習C/C++可以加QQ群:389318488,群內有學習資源

我來告訴你,從《UNIX網路編程》這本書入手吧,這本書可以教會你網路通訊端的底層原理,把上面的例子好好學習,自己動手寫一個回應伺服器。寫一個伺服器端,再寫一個用戶端。伺服器端請務必學會 select 這個簡單的多工模型,這樣你才能慢慢的深入裡面 poll,epoll ,IOCP 之類的模型。

四、檔案操作

所有的程式,基本都會用到檔案的讀寫操作,windows系統有自己的檔案操作API, 比如CreateFile, DeleteFile 等,請新手不要學windows的檔案操作API, 新手請學標準C語言的檔案操作函數,簡單易學還跨平台。

就那麼幾個函數,三下五除二你也就學會了, fopen, fclose, fread , fwrite, fseek, ftell 就這麼幾個而已。

五、深刻理解記憶體與指標的關係

作為一個C/C++程式員, 從學習程式的頭一天開始,就要和記憶體的分配釋放作鬥爭。你必須理解記憶體與指標的關係。怎麼樣才能理解呢,把老九學堂的《零基礎學編程系列之C語言》裡講指標的部分來回碾壓個十幾遍,代碼敲個幾十遍就算差不多了。

在學習C/C++或者想要學習C/C++可以加QQ群:389318488,群內有學習資源

六、仔細研究Apache源碼

學程式非特別是C/C++程式,非3年之功可以出山,三年對一個C/C++程式來說是一個從量變到質變的過程,三年的項目實戰經驗,可以讓你接觸到一個完整的應用程式所需要具備的骨架。

但是這個階段你寫的代碼,可能充滿BUG, 會宕機,運行效率很差,自己回頭看看一年前寫的代碼,可能自己都感覺噁心, 看不下去。沒有關係,這種感覺是每一個進步青年都會有的。要提高自己的代碼水平, 還是要像高手學習。

你可能要問,公司同事的水平一般, 水平好的人家也不願意給我講。沒有關係,開源的代碼就是你像高手學習的最佳途徑,開原始碼是高手留下的練功秘訣, 你看了後你會突然感覺茅塞頓開,感覺自己的水平差人家太遠了。

Apache裡面的很多思想是所有程式都通用的,搞懂了, 很多模組你也可以直接拿來使用。Apache對記憶體池的使用, 對線程池的使用, 對模組結構的封裝,非常具有實際意義。要是你能把Apache的源碼吃個透徹,每一個細節都搞明白了為何人家要這麼實現,我可以給你說,“恭喜你 , 你離傳說中的高手已經不遠了。”

七、修鍊C++

我上面說的基本都是修鍊C的, 要修鍊C++, 還得再花3年功夫, 才有可能練成C++高手。C++太博大精深了,其中最複雜的莫過於泛型程式設計思想,不要以為能寫個模板類就認為泛型程式設計不過如此而已。

修鍊C++, 可以從用C++封裝的MFC, wxWidget入手, 看高手如何通過C++語言, 封裝這樣龐大的UI庫,裡面應用了很多的C++機制, 最典型的就是多態機制, 還有很多的設計模式應用可以研究。

在學習C/C++或者想要學習C/C++可以加QQ群:389318488,群內有學習資源

八、深研設計模式

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

上面跟小夥伴們說了那麼多方法和步驟,能否堅持按照上面的方法進行學習,是小夥伴是否能夠學有所成的關鍵。不僅僅是C/C++,要做好一件事情學好一樣東西的方法有很多,能不能堅持就是關鍵。

如何學習C/C++?成為一名優秀的C/C++程式員

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.