首頁 >常見問題 >c語言怎麼學

c語言怎麼學

angryTom
angryTom原創
2019-08-15 09:55:0320368瀏覽

c語言怎麼學

原文標題:寫給C語言初學者的話,教你如何學習C語言

寫給C語言初學者的話,教你如何學習C語言

c語言怎麼學

  學習C語言不要心急,要循序漸進,須知欲速則不達的道理。千萬不要盲目的寫大量的程式碼,這樣做只會堆出大量的低檔次程式碼,同時使你形成不好的程式碼習慣。先買本基礎的教材來看,使得對C語言有個初步的認知。

推薦教學C語言影片教學

  如果你的身邊有高水平的開發人員,那麼再好不過了,多多向別人請教。但就我所了解的情況來看,大部分的初學者並沒有在進入IT行業後得到一個資深的軟體工程師的指導,而恰恰是在入司後就被推向前線,替老闆們騙取客戶口袋裡的錢,在這個過程中很多人都是在苦苦的堆代碼,賺著可憐的薪資。儘管我也是在拿著可憐的錢,但是有一點我是幸運的,因為我在我的第一家公司裡遇到了帶領我走向Unix和C語言領域的導師,正是他的一句「Unix和C語言是你一輩子都要去學習的技術」讓我狂熱的愛上了它們,正是他的一句「你有root口令,並不是你有root口令這麼簡單,更多的是一種責任」(說這句話的前提是我用root口令進入SUN伺服器後刪除了別人的東西,因為我認為這些是無用的東西)使我對責任這兩個字有一個非常具體的認識。所以在這裡請廣大讀者允許我用一些篇幅來對我neusoft的導師yuhj表示深深的感謝。同時也對CU的朋友們表達深深的感謝,可以說,你們是我的第二導師,我已經離不開你們了。

  希望大家都比我幸運,沒有得到幸運之神垂青的朋友們也不要灰心,多上CU上來和大家交流交流,討論討論吧,但是注意在論壇上討論的時候不要刨根問底,很多事情不是一句話就說的清楚的,別人只能給你一個指引,再具體的只有靠自己多研究研究、琢磨琢磨。閒暇的時候去精華區看看,你會有意外的收穫的。

  千萬不要一看到英文就頭大,儘管我也是這樣,並不是看不懂(畢竟也接受過CET4、6級啞巴英語的教育,還是能看懂的)。 man的幫助是最好的教材並且很多國外的論壇對技術的描述是很清楚的,也是很簡單的,更重要的是,你會在上面看到些在國內論壇上看不到的東西(計算機的技術一直都是由西方向東方傳遞,希望有朝一日老外都到我們中國的論壇上來尋找技術資料)。

c語言怎麼學

  學習C語言有一件事情也是必須要學的,而且最好是同時學,有的朋友可能已經猜出來了,沒錯,是Unix。 Unix和C語言可以說大家提的很多了,有Unix的地方就有C語言,同時也正是有了C語言,才有了Unix(我們還是先討論討論雞生蛋還是蛋生雞的哲學問題吧,誰拿西紅柿打我),甚至有人說C語言就是為了Unix而設計的,可見Unix和C語言之間的非同尋常的關係。學Unix現在容易多了,以前Unix都是運行在大型的伺服器上的,但現在有了Linux(按照GNU的意思,Linux就是Linux還不能叫Unix),大家可以在自己的PC上裝一套Linux來學習,注意學習Linux不要拿Linux和Windows來比較,它們不可同日而語。 Linux會讓你知道什麼是經典,永遠讓你在一個方向上大展宏圖,Windows只會讓你在別人的套子裡耍上大刀,不時的還要換一個套子耍耍。下面羅列了一些我在學習Unix的一些經驗:

  1) 學習Unix和C語言,先向大家推薦一本書《Unix高階環境程式設計》,這本書是學習Unix和C的經典之作,盡量把書中提到的系統呼叫都寫個練習程序,先感性的認識一下Linux系統提供給使用者的系統呼叫都是做什麼的,怎麼用。系統呼叫是核心提供給使用者的功能用以申請核心服務,對於Linux核心的學習,從系統呼叫入手是個不錯的方法。學習過程可以參考Linux的線上幫助,和網路上的資料。當你覺得差不多了的時候,那我給大家出一道聯繫題目吧:實現一個ftp伺服器和客戶端的功能,完全可以自己定義一些應用層的協議,只要能實現用簡單的命令傳輸文件就可以了。

  這個題目可以使你練習到TCP/IP的基本程式方法和檔案操作的基本方法對於後面學習核心的檔案系統會有幫助的。

  2) 當你對Unix系統有了些了解後,同時對於大部分的系統調用(關鍵是關於文件的系統調用,對於Linux系統的核心來說從文件系統入手相對容易一些)也有了清楚的認識後,再推薦你一本書《Linux內核情景分析》,該書是關於Linux內核的經典之作唯一美中不足的是沒有關於網絡子系統的詳細介紹。你可以從檔案系統的系統呼叫入手,慢慢的你就會對Linux有了一個更深入的體會。同時注意很多經典的方法和想法在Linux中的運用。你會認清為什麼Unix把所有的東西都看成文件,對什麼東西操作都是對文件操作,你會慢慢體會到Unix的經典之處了。

  3) 當你對Linux核心有了些了解後,你就可以找個方向來專門發展了,如果你想對眼下流行的網路程式設計感興趣,那麼再推薦你一本書《TCP/IP詳細解釋》,這本書是關於TCP/IP協定的經典之作。你會學習到TCP/IP協定棧是如果實現的,為什麼,各層協定之間是如何運作的。你看完了這本書後,你就可以自己寫一個dos攻擊程序和sniffer了。

  我說的簡單,其實我提到的每本書至少都夠你研究很長時間的,所以希望初學者別著急不驕不躁,相信只要努力過,一定會成為高手的。

  在寫程式碼的時候大家要注意養成好的程式碼習慣和風格還有抽象能力。

下面給出大家在寫程式碼的時候的20字方針:

1) 函數要小

  盡量的把函數弄的通用點,程式碼行少點,一個函數只完成一個簡單的功能,一眼就能看出來此函數有沒有程式碼錯誤,每個函數都是健壯的,那麼你的程序就是健壯的。

2) 程式碼要少

  完成一個功能的時候在邏輯清楚的情況下程式碼越少越好,千萬不要比程式碼誰寫的多啊。

3) 演算法要好

  在完成一個功能的時候要考慮效率,目前電腦的記憶體很大,所以記憶體已經不是首要考慮的因素了,但是在某些特殊的地方效率還是很重要的。有效率高的演算法,就不用效率低的演算法,看看本版有一篇精華貼文是關於把一個字元竄兩邊的空格去掉的貼文(trim),很多人都提出了演算法,但是有一個演算法是最好的,效率最高,程式碼最少,是演算法要好的最好體現

4) 命名要清

  命名要清楚,最要用漢語中的謂賓結構如set_buffsize()

5) 文件要多

  盡量把一個大的程式安功能分成多個文件,一個文件盡量不要超作1000行,這樣就很清楚的知道那個文件代碼是健壯的,那個文件有可能有隱患,在代碼檢查的時候可以有針對性的檢查某幾個文件

以上是c語言怎麼學的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn