一、斷章取義
C語言出現50年了,有很多內容已過時,至少有百分之二十的內容沒有實用價值。
C++更過份,至少有百分之七十的內容沒有實用價值。
Linux也是,命令上千個,對程序員來說常用的不超過50個。
人的精力是有限的,對於不常用的知識,瞭解概念即可,不要去折騰。在我的教程中缺了鏈表、位操作、排序算法、二叉樹、紅黑樹、C++的輸入輸出流、C++模板、C++異常等,這些知識沒有實用價值,除了用來吹牛別無用處。
現有C/C++語言的教材,大部分是教授和講師寫出來的,在身經百戰的程序員面前,沒有經過實戰的教授和講師始終停留在小學生水平。
網上也有不少視頻教程,大部分的教程只是把書本上的內容搬到視頻中,沒有新意。
二、培養程序員的感覺
我喜歡看動物世界,高級的哺乳動如獅子,低等的昆蟲如密蜂,它們都有自己的語言。與人類的語言相比,動物的語言非常簡單。但是如果您對動物的語言沒有研究,完全看不懂。
與人類的語言相比,計算機的語言其實也很簡單,初學者認爲難是因爲不適應,不習慣。
所以,對初學者來說,培養程序員的感覺是最重要的事情。
程序員是寫出來的。
去過紫禁城的人都知道,不管您有多麼聰明,繞多幾個彎後,迷路是大概率的事情,但是,紫禁城清潔工人一定不會迷路,是您不如清結工人夠聰明嗎?肯定不是,是您不習慣,不熟悉。
各位在網上看過的美女圖片和視頻無數,任何網上的美女不太可能讓您臉紅心跳。但是,在現實生活中,如果有一個美女真的出現在您的面前,估計您會手足無措,言語結吧。
任何事情,不管看多少遍,都不如做一遍。寫程序也是這樣的,編程語言並不難,只是您不瞭解,不習慣,不熟悉。
看別人的程序,看別人寫程序,和自己動手寫程序的感覺是不一樣的。
怎麼做?行動起來,多寫程序,就習慣了,熟悉了。開始的時候,寫出的程序很垃圾也沒有關係,沒有天生的大佬,大佬剛開始的時候都是菜鳥。
三、學習策略
1、計算機基礎知識的學習
如果您不是計算機相關專業或零基礎,建議先學習計算機基礎和計算機網絡基礎兩方面的知識,這些基礎知識包括了很多常識性的內容。
學習這兩方面的知識的時候,不要深入理論,不要學習算法,看不懂就算了,不要糾纏。
計算機基礎知識主要包括以下內容:
1)計算機歷史。
2)計算機的應用領域。
3)二進制、十進制、十六進制的基本概念。
4)計算機總線、外部設備。
5)計算機軟件、操作系統基本概念。
6)學習時間不超過20小時。
7)推薦視頻 https://www.bilibili.com/video/av80537766
計算機網絡基礎知識主要包括以下內容:
1)計算機網絡的基本概念。
2)局域網、廣域網和互聯網。
3)ISO參考模型。
4)TCP協議(粗略的瞭解一下UDP)。
5)IP地址、網關、子網掩碼、DHCP協議。
6)萬維網和HTTP和HTTPS協議。
7)電子郵件和SMTP 協議。
8)文件傳輸協議FTP。
9)遠程登錄協議(以ssh爲主,瞭解telnet)。
10)學習的時間不必超過30小時。
11)推薦視頻 https://www.bilibili.com/video/av70228743 或 https://www.bilibili.com/video/av9876107
2、Linux操作系統的學習
企業對C/C++程序員的需求中,70%以上是Linux系統中開發,Linux的開發環境可能會讓初學者不適應,不習慣,但這是正確的方向。我們學習的目標是成爲C/C++程序員,不是Linux系統管理員。作爲一個程序員,只需要熟悉Linux操作系統環境,掌握常用命令就可以了,主要包括以下內容。
1)Linux系統簡介。
2)Linux系統的安裝。
3)遠程登錄命令(以ssh爲主,瞭解telnet)。
4)Linux常用命令,注意,Linux的命令上千個,常用的約50個,能看懂多少就多少,看不懂的就算了,與程序員相關的Linux命令我會在教程中提到。
5)Linux用戶和組的管理。
6)Linux文件系統。
7)Shell基礎,注意,Shell可以很複雜,Shell腳本也是一種編程語言,但是,我們是C/C++程序員,一般不會採用Shell編寫腳本程序,運維人員使用Shell腳本比較多。
8)Linux進程方面的基礎知識。
9)Linux防火牆配置。
10)學習的時間不必超過50小時。
11)推薦視頻 https://www.bilibili.com/video/av18156598
3、C/C++基礎知識的學習
本階段的重點是培養寫程序的感覺和掌握C/C++語言的基礎知識,**寫程序感覺比C/C++語言的知識點更重要。**非計算機專業的大概需要兩到三個月(全日制),計算機相關專業的需要一個月。
學習完基礎知識之後,如果年齡在23歲以下,建議您先去找工作,工資低一些沒關係,只要能養活自己就行了。先進入這個行業,有實戰的環境,邊工作邊學習是最好的方案,生活沒有壓力,學習更有動力。(23歲以下的年齡,是大學生畢業的年齡,在這個年齡段,不管是哪個學校畢業的,大家都是菜鳥,不懂是正常的,如果面試的時候表現出積極上進態度,找個實習的崗位不會太難。)
如果您的年齡到了25歲,學習完基礎知識之後就去找工作可能不好辦,因爲年齡與能力不符,公司未必會錄用(年輕人技術不好很正常,年紀大了還只是掌握基礎知識就不應該)。
4、職業技能的訓練
在很多C/C++語言教程中,把貪吃蛇、俄羅斯方塊、打地鼠、球球大作戰等程序當成項目實戰,太過兒戲;或者用黑客入侵、網絡攻防、遊戲外掛等內容來吸人眼球,這些程序的源代碼網上到處都是,程序員玩這個不多,程序員是普通人,掌握的是謀生的技能,特工是電影題材,不是真實的生活。
本階段的目標是通過項目實戰,把學生訓練成滿足企業需求的職業程序員,時間大概需要四到六個月,因人而異。
本階段的學習內容主要包括freecplus框架、Oracle數據庫和網絡通信,完成數據中心和手機APP服務端兩個項目的開發,約兩萬行的代碼量。
通過本階段的學習,您將成爲合格的程序員。
5、學習要買什麼書
這是一個互聯網的時代,書本上有的內容網上都有,如果有疑問,百度一下,比翻書更快,內容也更豐富。有些人可能會說書本的知識更全面,更系統化,這完全是胡扯,因爲如果某書真的那麼好,把書本上的內容搬到互聯網上來實在太容易,掃描、拍照、打字都行。
這世界上沒工葵花寶典,沒有易筋經,更沒有從入門到精通的捷徑,您需要的是學習的決心和意志。
九、版權聲明
C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。
來源:C語言技術網(www.freecplus.net)
作者:碼農有道
如果文章有錯別字,或者內容有錯誤,或其他的建議和意見,請您留言指正,非常感謝!!!