網站首頁 語言 會計 網際網路計算機 醫學 學歷 職場 文藝體育 範文
當前位置:學識谷 > 計算機 > C語言

c語言學習需要的時長以及方法

欄目: C語言 / 釋出於: / 人氣:3.13W

C語言是很廣用的一種程式語言,那麼想要學好C語言,大概要花多長時間以及怎麼去學習呢?下面是小編整理有關C語言學習的知識,希望對您有所幫助。

c語言學習需要的時長以及方法

學習c語言要多長時間

C語言和java是一樣,是一種大家十分熟悉的計算機程式語言,很多同學都想通過學習C語言來進入IT行業,成為別人羨慕的IT精英,但是學習C語言要多長時間呢?很多人擔心自己時間不夠,學不會。

學習C語言的時間長短受到多個因素影響,比如學習方法是否正確,每天花多少時間學習,需要學到哪種程度等等,也有些人學習多年卻收穫甚微,那可能就是學習方法不對,難以入門。

大家學習C語言,最主要掌握的是程式設計的思想、方法以及積累豐富的程式設計經驗,如果能找到一本好的教材或者一家優秀的培訓機構,靜下心來踏實學習,多練習,勤敲程式碼,雖然無法一口吃成胖子,馬上成為大師級人物,但是達到C語言的入門水平還是比較容易的,要想成為高手,在掌握基礎的同時,還需要有豐富的程式設計經驗,閱讀大量程式碼,最好能化為己用,這樣才是理論與實踐兼具的C語言人才。

學習C語言要多長時間?如果加入適當的培訓機構,全日制學習時間是3-6個月。

通過上述介紹,相信大家對於C語言的學習時間有了更進一步瞭解。學習C語言並非一朝一夕的事情,如果你已經打定主意要學習C語言,希望大家都要牢牢把握學習的機會,為自己美好的未來而奮鬥。

C語言學習流程

如果你是剛剛起步,不要老想著一步登天,也不要以為入侵就是最高境界!不要以為你靠著一些黑客軟體、靠著一些漏洞資料,靠著別人所教的傻瓜式地去做,去入侵了,你就是高手,那樣,到頭來你會發現自己一無所獲。也可能很多人只知如何攻擊,卻不知道自己如何防護。

比如你按著某些黑客教程成功地利用了一個CGI漏洞,入侵成功,可是你知道為什麼會成為CGI 的漏洞嗎?你會根據一個CGI 的工作狀態來判斷他可能有哪些漏洞或那方面的漏洞嗎? 一系列的問題就是得有一系列的基礎知識。

想學,好!那你先從一個普通的使用者開始吧! 最起碼你得知道硬體的基本構成吧,什麼是主機板?主機板是拿來幹嘛的?什麼是CPU?CPU是怎麼樣來工作的?什麼是記憶體?什麼是硬體,等等。

而作業系統,WINDOWS98/WINDOWS2000/LINUX這些系統你都瞭解了吧?常用的軟體,如果你連WIZIP都不會用,那你就先修練一下自己吧。

那網路呢?網路是拿來幹嘛的?而在平常的操作中,碰到的問題都解決了嗎?等等。。。

如果上面的都懂了,你應該向前進了,你可以學更深的東西了。 那從TCP/IP網路協議學起吧,這對網路來說是很有用的哦。學會用一系列的網路命令,再弄懂埠等是怎麼樣去工作的。有空就學伺服器的配置,伺服器有多少種,都是拿來幹嘛的?它是怎麼樣配置和工作的?等等。

以上的都懂了,你再參考一些資料,去簡單地入侵一個站點,應該是沒有難度的了。如果你覺得自己已經不錯了,那再進一步吧!學程式設計。 程式設計是什麼?是拿來幹嘛的?學它有什麼用?學了它有什麼好處?我該學什麼語言?給自己定個位,好好學吧! 如果你已經有一個程式設計強項,而對各類的程式語言都瞭解,都熟悉那個領域了,那我想相對我來說你已經是個大高手了,我要像你學習。 但,其實,想讓自己的技術進步都得自己去研究、多看書、多查資料的,沒有人連埠都不懂就入侵了某些網站的。很多高手都是自學的。如果你連努力都不想努力,那何來進步?

多看、多寫、多實踐,你很快就會變成高手了。相信自己。 你自己去實踐和思考絕對勝過一碰到問題就上論壇問,其實論壇裡面有很多你所需要的資料的,是你自己不想找罷了。而如果你把論壇裡的那些文章都看完,你不成高手才怪。想學習就用點心!在學習的過程中碰到自己確定搞不定的,你可以提問,我想大家都會很熱心地幫助你的。 願大家能一起進步! 學習程式語言貴精不貴多,而且要循序漸進、有張有馳。 初學語言時,基本上都是從C語言入手。

如何學習C語言

學習C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習並精通C語言是本文的主題。請注意,即使是“最小的代價”,也絕不是什麼捷徑,而是以最短的時間取得最多的收穫,同時也意味著你需要經歷艱苦的過程。

  一、要讀就讀好書,否則不如不讀

所有初學者面臨的第一個問題便是:如何選擇教材。好的.開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。

大名鼎鼎的譚浩強教授出了一本《C語言程式設計》,據說發行量有超過400萬,據我所知,很多學校都會推薦這本書作為C語言課本。但我是無比堅定地黑他這本書的。這本書不是寫給計算機專業的學生的,而是給那些需要考計算機等級考試的其它專業學生看的(PS:這句話不假,的確夠淺顯的,不過入門也夠了,看過後在讀別的書就不會太難了)。這本書的主要缺點是:例子程式非常不專業,不能教給你程式設計應該掌握的思考方式;程式風格相當地不好,會讓你養成亂寫程式碼的惡習;錯誤太多,曾經有人指出過這本書的上百個錯誤,其中不乏關鍵的概念性錯誤(PS:的確有錯誤,看的時候多注意下)。好了,這本書我也不想說太多了,有興趣大家可以百度一下:)

Kernighan和 Ritchie的《The C Programming Language》(中譯名《C程式設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標準C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《C Reference Manual》,是C語言標準的詳細描述,包括絕大多數C標準庫函式的細節,算得上是最好的標準C語言的工具書。順便提一句,最新的《C程式設計語言》是根據C89標準修訂的,而《C語言參考手冊》描述的是C99標準,二者可能會有些出入,建議按照C99標準學習。還有一本《C和指標》,寫得也是相當地不錯,英文名是《Pointers on C》,特別地強調指標的重要性,算是本書的一個特點吧。不過這本書並不十分適合初學者,如果你曾經學過C語言,有那麼一些C語言的基礎但又不是很紮實,那麼你可以嘗試一下這本書。我相信,只要你理解了指標,C語言便不再神祕。

如果你已經啃完了一本C語言教材,想要更進一步,那麼有兩本書你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,裡面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什麼壞事。然後你可以挑戰一下《Expert C Programming》(中譯名《C專家程式設計》),書如其名,這本書頗具難度,一旦你仔細讀完並能透徹理解,你便可以放心大膽地在簡歷上寫“精通C語言”了。

切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎知識。此時,你要仔細分析自己需要補充哪些內容,然後再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。

 二、Unix/Linux還是Windows,這是個很大的問題

不同的程式設計環境會造就出不同思維的程式設計師。Windows的程式設計師大多依賴整合開發環境,比如Visual Studio,而Unix程式設計師更加鍾愛Makefile與控制檯。顯而易見,整合開發環境更容易上手,在Windows上學習C語言,只需要會按幾個基本的Visutal C++工具欄按鈕就可以開始寫Hello, World!了,而在Unix下,你需要一些控制檯操作的基本知識。有人也許認為Unix的環境更簡潔,但習慣的力量是很大的,大家都很熟悉 Windows的基本操作,而為了學習C語言去專門裝一個Unix系統,似乎有點不划算。

對於一個只懂得Windows基本操作、連 DOS是什麼都不知道的新手而言,儘快做一些有趣而有意義的事情才是最重要的。用C語言寫一個小程式遠比學習ls、cat等命令有趣,況且我們要專注於C 語言本身,就不得不暫時忽略一些東西,比如編譯連結的過程、Makefile的寫法等等等等。

所以我建議初學者應該以Visual C++ 6.0(不是VisualC++ )或者Dev C++作為主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今後你一定要轉向Unix環境的。Visual C++ 6.0使用很方便,除錯也很直觀,但其預設的編譯器對C標準的支援並不好,而Dev C++使用gcc編譯器,對C99的標準都支援良好。使用順帶提一下,很多大學的C語言課程還在使用Turbo C 2.0作為實驗環境,這是相當不可取的,原因其一是TC 2.0對C標準幾乎沒有支援,其二是TC 2.0編譯得到的程式是16位的,這對今後理解32位的程式會造成極大的困擾(當然,用djgpp之類的東西可以使TC 2.0編譯出32位程式,不過那過於複雜了)。

等你學完一本C語言的教材,你一定要轉向Unix平臺繼續學習,幾乎所有的C語言高階教程都是基於Unix平臺的(比如《C專家程式設計》)。轉變的過程是痛苦的,你需要面對的是各種紛繁複雜的命令,完全不同於Windows平臺的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習慣更加符合C語言的思考方式和習慣。在Unix下,你可以找到無數優秀的原始碼供你盡情閱讀,你可以方便地檢視某個庫函式的聯機手冊,還可以看到最優秀的程式碼風格(說到程式碼風格,我會專門寫一篇文章詳細敘述)。

歸結起來就是一句話:初學C語言,建議使用Windows系統和整合開發環境,在準備向“高手”方向努力時,請先轉向Unix平臺。

三、萬事俱備,你就是東風

書已選定,環境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什麼基礎才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎知識是否已經具備。看完前言,還要瀏覽一下目錄,瞭解一下書的整體結構,順便給自己安排一下學習計劃。

學習C語言,必需注意每一個細節,書上的例子程式碼一定要自己親自敲一遍,編譯執行輸出都跟書上說的一致才能算是學完了一個例子,如果不一致,就要仔細找原因。出了書本上有的例子,自己還要“創造”一些例子,比如學習運算子優先順序的時候,可以寫幾個相同的表示式,在不同的位置加上括號,看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的書上的例子以及改造之後的例子,還有自己“創造”的例子,都應該仔細地歸類儲存,並且要在原始碼中寫上簡短的註釋,闡述這個例子的意圖。

例子之後就是習題了,我建議初學者把所有的習題都獨立做一遍,然後對照答案的程式碼,看看自己的程式碼有那些不足,再試著修改自己的程式碼。很多人不重視習題,這是極大的錯誤,因為作者通常會在習題中說明一些重要的道理,而不是單純地檢驗前面的知識。

也許你認為這樣學習太慢,其實不然。學得細緻就不用走回頭路,等你學到後面才發現自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應該完成數千行乃至上萬行的程式碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今後繼續學習的一筆財富。以我自己舉例,閱讀《Windows核心程式設計》時(我只閱讀了3/4的內容),除了抄書上的程式碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統計),時隔多日,我早已記不清 Windows的系統程式設計了,但只要花幾分鐘翻出以前的程式碼看看,便會重新瞭然於胸。所謂好記性不如爛筆頭,就是這個道理。

仔細讀書、認真抄寫原始碼、獨立完成習題外加更進一步的實驗,最後將所有的程式碼留下,成為自己的經驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術,如果不是學習C語言,你還要具體情況具體分析。

寫到最後,還有非常非常重要的一點沒有提及——程式碼風格和英語,從最開始學習就必須強迫自己模仿最優秀的程式碼風格。英語要盡一切力學好,我以後會用專門的一篇文章來詳細討論,大家努力哦。。。。。。