自學了那麼久的C/C++,爲什麼仍寫不出項目?

前言

這是之前在網址上看到的一個問題,有很多學生也面臨着這樣的困擾。

現在大學裏基本都開設了計算機課程,看了那麼多技術書,但學了四年出來,仍然寫不出項目,這其實是有原因的。

那我們來看看真正的C/C++應該是怎樣學習?

一. C/C++語言

如果你的基礎很差, 要從C開始學起,對程序有個初步的認識,循序漸進。C語言的書可以先買一本 300 頁以內的,把書中的每一個例子都通過鍵盤敲打進去到 Visual studio裏面去,然後單步執行,逐行調試去看各個變量的值。或者自行添加一些printf語句去輸出變量的值。這樣當你看完一本書後, 你就有編寫小程序的感覺了。

接下來你就可以買一本C++的書看了。 C++的書也是一樣, 不要一來就想學《C++ Primer中文版》這樣的好書, 因爲太厚了,怕你沒有信心能夠看完,即使你很有信心,花費一年的時間纔看完,不值得。這種經典的厚的好書, 適合作爲資料查閱。

二. 帶界面的應用程序

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

下來就看個人的志向了, 如果走微軟路線, 那你下來學MFC好了,如果要走開源路線, 那開源跨平臺的界面庫多得是。把裏面的例子程序敲到你的 visual studio 裏面, 去調試, 看運行的結果, 你也可以試着去修改例子, 添加按鈕,響應按鈕事件等。

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

三. 網絡應用程序

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

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

四. 文件操作

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

五. 深刻理解內存與指針的關係

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

六. 仔細研究apache源碼

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

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

要提高自己的代碼水平, 還是要像高手學習。

七. 修煉C++

要修煉C++, 還得再花3年功夫, 纔有可能練成C++高手。

C++太博大精深了,其中最複雜的莫過於泛型編程思想,不要以爲能寫個模板類就認爲泛型編程不過如此而已。仔細看看STL源碼, Boost 源碼, 你就知道泛型編程有多麼的博大精深了。

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

文章福利

對於自己找不到視頻、書籍資源的讀者,可以加小編的C語言/C++交流羣:967051845!整理了一些個人覺得比較好的學習書籍、視頻資料共享在羣文件裏面,有需要的可以自行添加哦!~

VS編譯器,圖形庫

C語言相關電子書

C/C++基礎視頻及筆記

C/C++項目實戰

日積月累,終有所成!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章