學(xué)習(xí)啦 > 學(xué)習(xí)方法 > 通用學(xué)習(xí)方法 > 時(shí)間管理 > c語(yǔ)言學(xué)習(xí)需要的時(shí)長(zhǎng)以及方法

c語(yǔ)言學(xué)習(xí)需要的時(shí)長(zhǎng)以及方法

時(shí)間: 素雯896 分享

c語(yǔ)言學(xué)習(xí)需要的時(shí)長(zhǎng)以及方法

  C語(yǔ)言是很廣用的一種編程語(yǔ)言,那么想要學(xué)好C語(yǔ)言,大概要花多長(zhǎng)時(shí)間以及怎么去學(xué)習(xí)呢?下面是學(xué)習(xí)啦小編整理有關(guān)C語(yǔ)言學(xué)習(xí)的知識(shí),希望對(duì)您有所幫助。

  學(xué)習(xí)c語(yǔ)言要多長(zhǎng)時(shí)間

  C語(yǔ)言和java是一樣,是一種大家十分熟悉的計(jì)算機(jī)編程語(yǔ)言,很多同學(xué)都想通過(guò)學(xué)習(xí)C語(yǔ)言來(lái)進(jìn)入IT行業(yè),成為別人羨慕的IT精英,但是學(xué)習(xí)C語(yǔ)言要多長(zhǎng)時(shí)間呢?很多人擔(dān)心自己時(shí)間不夠,學(xué)不會(huì)。

  學(xué)習(xí)C語(yǔ)言的時(shí)間長(zhǎng)短受到多個(gè)因素影響,比如學(xué)習(xí)方法是否正確,每天花多少時(shí)間學(xué)習(xí),需要學(xué)到哪種程度等等,也有些人學(xué)習(xí)多年卻收獲甚微,那可能就是學(xué)習(xí)方法不對(duì),難以入門。

  大家學(xué)習(xí)C語(yǔ)言,最主要掌握的是編程的思想、方法以及積累豐富的編程經(jīng)驗(yàn),如果能找到一本好的教材或者一家優(yōu)秀的培訓(xùn)機(jī)構(gòu),靜下心來(lái)踏實(shí)學(xué)習(xí),多練習(xí),勤敲代碼,雖然無(wú)法一口吃成胖子,馬上成為大師級(jí)人物,但是達(dá)到C語(yǔ)言的入門水平還是比較容易的,要想成為高手,在掌握基礎(chǔ)的同時(shí),還需要有豐富的編程經(jīng)驗(yàn),閱讀大量代碼,最好能化為己用,這樣才是理論與實(shí)踐兼具的C語(yǔ)言人才。

  學(xué)習(xí)C語(yǔ)言要多長(zhǎng)時(shí)間?如果加入適當(dāng)?shù)呐嘤?xùn)機(jī)構(gòu),全日制學(xué)習(xí)時(shí)間是3-6個(gè)月。

  通過(guò)上述介紹,相信大家對(duì)于C語(yǔ)言的學(xué)習(xí)時(shí)間有了更進(jìn)一步了解。學(xué)習(xí)C語(yǔ)言并非一朝一夕的事情,如果你已經(jīng)打定主意要學(xué)習(xí)C語(yǔ)言,希望大家都要牢牢把握學(xué)習(xí)的機(jī)會(huì),為自己美好的未來(lái)而奮斗。

  C語(yǔ)言學(xué)習(xí)流程

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

  比如你按著某些黑客教程成功地利用了一個(gè)CGI漏洞,入侵成功,可是你知道為什么會(huì)成為CGI 的漏洞嗎?你會(huì)根據(jù)一個(gè)CGI 的工作狀態(tài)來(lái)判斷他可能有哪些漏洞或那方面的漏洞嗎? 一系列的問(wèn)題就是得有一系列的基礎(chǔ)知識(shí)。

  想學(xué),好!那你先從一個(gè)普通的用戶開始吧! 最起碼你得知道硬件的基本構(gòu)成吧,什么是主板?主板是拿來(lái)干嘛的?什么是CPU?CPU是怎么樣來(lái)工作的?什么是內(nèi)存?什么是硬件,等等。

  而操作系統(tǒng),WINDOWS98/WINDOWS2000/LINUX這些系統(tǒng)你都了解了吧?常用的軟件,如果你連WIZIP都不會(huì)用,那你就先修練一下自己吧。

  那網(wǎng)絡(luò)呢?網(wǎng)絡(luò)是拿來(lái)干嘛的?而在平常的操作中,碰到的問(wèn)題都解決了嗎?等等。。。

  如果上面的都懂了,你應(yīng)該向前進(jìn)了,你可以學(xué)更深的東西了。 那從TCP/IP網(wǎng)絡(luò)協(xié)議學(xué)起吧,這對(duì)網(wǎng)絡(luò)來(lái)說(shuō)是很有用的哦。學(xué)會(huì)用一系列的網(wǎng)絡(luò)命令,再弄懂端口等是怎么樣去工作的。有空就學(xué)服務(wù)器的配置,服務(wù)器有多少種,都是拿來(lái)干嘛的?它是怎么樣配置和工作的?等等。

  以上的都懂了,你再參考一些資料,去簡(jiǎn)單地入侵一個(gè)站點(diǎn),應(yīng)該是沒(méi)有難度的了。如果你覺(jué)得自己已經(jīng)不錯(cuò)了,那再進(jìn)一步吧!學(xué)編程。 編程是什么?是拿來(lái)干嘛的?學(xué)它有什么用?學(xué)了它有什么好處?我該學(xué)什么語(yǔ)言?給自己定個(gè)位,好好學(xué)吧! 如果你已經(jīng)有一個(gè)編程強(qiáng)項(xiàng),而對(duì)各類的編程語(yǔ)言都了解,都熟悉那個(gè)領(lǐng)域了,那我想相對(duì)我來(lái)說(shuō)你已經(jīng)是個(gè)大高手了,我要像你學(xué)習(xí)。 但,其實(shí),想讓自己的技術(shù)進(jìn)步都得自己去研究、多看書、多查資料的,沒(méi)有人連端口都不懂就入侵了某些網(wǎng)站的。很多高手都是自學(xué)的。如果你連努力都不想努力,那何來(lái)進(jìn)步?

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

  如何學(xué)習(xí)C語(yǔ)言

  學(xué)習(xí)C語(yǔ)言不是一朝一夕的事情,但也不需要花費(fèi)十年時(shí)間才能精通。如何以最小的代價(jià)學(xué)習(xí)并精通C語(yǔ)言是本文的主題。請(qǐng)注意,即使是“最小的代價(jià)”,也絕不是什么捷徑,而是以最短的時(shí)間取得最多的收獲,同時(shí)也意味著你需要經(jīng)歷艱苦的過(guò)程。

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

  所有初學(xué)者面臨的第一個(gè)問(wèn)題便是:如何選擇教材。好的開始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關(guān)鍵因素。不幸的是,學(xué)校通常會(huì)幫你指定一本很差勁的C語(yǔ)言課本;而幸運(yùn)的是,你還可以再次選擇。

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

  Kernighan和 Ritchie的《The C Programming Language》(中譯名《C程序設(shè)計(jì)語(yǔ)言》)堪稱經(jīng)典中的經(jīng)典,不過(guò)舊版的很多內(nèi)容都已過(guò)時(shí),和現(xiàn)在的標(biāo)準(zhǔn)C語(yǔ)言相去甚遠(yuǎn),大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權(quán)威的書,也沒(méi)有辦法面面俱到,所以手邊常備一本《C語(yǔ)言參考手冊(cè)》是十分必要的?!禖語(yǔ)言參考手冊(cè)》就是《C Reference Manual》,是C語(yǔ)言標(biāo)準(zhǔn)的詳細(xì)描述,包括絕大多數(shù)C標(biāo)準(zhǔn)庫(kù)函數(shù)的細(xì)節(jié),算得上是最好的標(biāo)準(zhǔn)C語(yǔ)言的工具書。順便提一句,最新的《C程序設(shè)計(jì)語(yǔ)言》是根據(jù)C89標(biāo)準(zhǔn)修訂的,而《C語(yǔ)言參考手冊(cè)》描述的是C99標(biāo)準(zhǔn),二者可能會(huì)有些出入,建議按照C99標(biāo)準(zhǔn)學(xué)習(xí)。還有一本《C和指針》,寫得也是相當(dāng)?shù)夭诲e(cuò),英文名是《Pointers on C》,特別地強(qiáng)調(diào)指針的重要性,算是本書的一個(gè)特點(diǎn)吧。不過(guò)這本書并不十分適合初學(xué)者,如果你曾經(jīng)學(xué)過(guò)C語(yǔ)言,有那么一些C語(yǔ)言的基礎(chǔ)但又不是很扎實(shí),那么你可以嘗試一下這本書。我相信,只要你理解了指針,C語(yǔ)言便不再神秘。

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

  切記一個(gè)原則,不要讀自己目前還看不懂的書,那是浪費(fèi)生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識(shí)。此時(shí),你要仔細(xì)分析自己需要補(bǔ)充哪些內(nèi)容,然后再去書店尋找講述的這些內(nèi)容的書籍。把基礎(chǔ)知識(shí)補(bǔ)充完畢再回頭來(lái)學(xué)習(xí),才會(huì)真正的事半功倍。

  二、Unix/Linux還是Windows,這是個(gè)很大的問(wèn)題

  不同的編程環(huán)境會(huì)造就出不同思維的程序員。Windows的程序員大多依賴集成開發(fā)環(huán)境,比如Visual Studio,而Unix程序員更加鐘愛(ài)Makefile與控制臺(tái)。顯而易見(jiàn),集成開發(fā)環(huán)境更容易上手,在Windows上學(xué)習(xí)C語(yǔ)言,只需要會(huì)按幾個(gè)基本的Visutal C++工具欄按鈕就可以開始寫Hello, World!了,而在Unix下,你需要一些控制臺(tái)操作的基本知識(shí)。有人也許認(rèn)為Unix的環(huán)境更簡(jiǎn)潔,但習(xí)慣的力量是很大的,大家都很熟悉 Windows的基本操作,而為了學(xué)習(xí)C語(yǔ)言去專門裝一個(gè)Unix系統(tǒng),似乎有點(diǎn)不劃算。

  對(duì)于一個(gè)只懂得Windows基本操作、連 DOS是什么都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語(yǔ)言寫一個(gè)小程序遠(yuǎn)比學(xué)習(xí)ls、cat等命令有趣,況且我們要專注于C 語(yǔ)言本身,就不得不暫時(shí)忽略一些東西,比如編譯鏈接的過(guò)程、Makefile的寫法等等等等。

  所以我建議初學(xué)者應(yīng)該以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作為主要的學(xué)習(xí)環(huán)境,而且千萬(wàn)不要在IDE的使用技巧上過(guò)多糾纏,因?yàn)榻窈竽阋欢ㄒD(zhuǎn)向Unix環(huán)境的。Visual C++ 6.0使用很方便,調(diào)試也很直觀,但其默認(rèn)的編譯器對(duì)C標(biāo)準(zhǔn)的支持并不好,而Dev C++使用gcc編譯器,對(duì)C99的標(biāo)準(zhǔn)都支持良好。使用順帶提一下,很多大學(xué)的C語(yǔ)言課程還在使用Turbo C 2.0作為實(shí)驗(yàn)環(huán)境,這是相當(dāng)不可取的,原因其一是TC 2.0對(duì)C標(biāo)準(zhǔn)幾乎沒(méi)有支持,其二是TC 2.0編譯得到的程序是16位的,這對(duì)今后理解32位的程序會(huì)造成極大的困擾(當(dāng)然,用djgpp之類的東西可以使TC 2.0編譯出32位程序,不過(guò)那過(guò)于復(fù)雜了)。

  等你學(xué)完一本C語(yǔ)言的教材,你一定要轉(zhuǎn)向Unix平臺(tái)繼續(xù)學(xué)習(xí),幾乎所有的C語(yǔ)言高級(jí)教程都是基于Unix平臺(tái)的(比如《C專家編程》)。轉(zhuǎn)變的過(guò)程是痛苦的,你需要面對(duì)的是各種紛繁復(fù)雜的命令,完全不同于Windows平臺(tái)的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習(xí)慣更加符合C語(yǔ)言的思考方式和習(xí)慣。在Unix下,你可以找到無(wú)數(shù)優(yōu)秀的源代碼供你盡情閱讀,你可以方便地查看某個(gè)庫(kù)函數(shù)的聯(lián)機(jī)手冊(cè),還可以看到最優(yōu)秀的代碼風(fēng)格(說(shuō)到代碼風(fēng)格,我會(huì)專門寫一篇文章詳細(xì)敘述)。

  歸結(jié)起來(lái)就是一句話:初學(xué)C語(yǔ)言,建議使用Windows系統(tǒng)和集成開發(fā)環(huán)境,在準(zhǔn)備向“高手”方向努力時(shí),請(qǐng)先轉(zhuǎn)向Unix平臺(tái)。

  三、萬(wàn)事俱備,你就是東風(fēng)

  書已選定,環(huán)境配置完成,正所謂萬(wàn)事俱備,只欠你自己的努力了。請(qǐng)從書的前言開始,仔細(xì)地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯(cuò)誤的做法。前言是作者對(duì)整本書的大體介紹,作者一般會(huì)告訴你需要什么基礎(chǔ)才能夠順利閱讀本書,這可以幫助你檢驗(yàn)自己的基礎(chǔ)知識(shí)是否已經(jīng)具備??赐昵把裕€要瀏覽一下目錄,了解一下書的整體結(jié)構(gòu),順便給自己安排一下學(xué)習(xí)計(jì)劃。

  學(xué)習(xí)C語(yǔ)言,必需注意每一個(gè)細(xì)節(jié),書上的例子代碼一定要自己親自敲一遍,編譯執(zhí)行輸出都跟書上說(shuō)的一致才能算是學(xué)完了一個(gè)例子,如果不一致,就要仔細(xì)找原因。出了書本上有的例子,自己還要“創(chuàng)造”一些例子,比如學(xué)習(xí)運(yùn)算符優(yōu)先級(jí)的時(shí)候,可以寫幾個(gè)相同的表達(dá)式,在不同的位置加上括號(hào),看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的書上的例子以及改造之后的例子,還有自己“創(chuàng)造”的例子,都應(yīng)該仔細(xì)地歸類保存,并且要在源代碼中寫上簡(jiǎn)短的注釋,闡述這個(gè)例子的意圖。

  例子之后就是習(xí)題了,我建議初學(xué)者把所有的習(xí)題都獨(dú)立做一遍,然后對(duì)照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習(xí)題,這是極大的錯(cuò)誤,因?yàn)樽髡咄ǔ?huì)在習(xí)題中說(shuō)明一些重要的道理,而不是單純地檢驗(yàn)前面的知識(shí)。

  也許你認(rèn)為這樣學(xué)習(xí)太慢,其實(shí)不然。學(xué)得細(xì)致就不用走回頭路,等你學(xué)到后面才發(fā)現(xiàn)自己前面沒(méi)搞清楚,那才是真的得不償失。一般說(shuō)來(lái),整本書讀完,你應(yīng)該完成數(shù)千行乃至上萬(wàn)行的代碼,無(wú)論是原封不動(dòng)照抄書上的,還是自己心血來(lái)潮寫就的,都是今后繼續(xù)學(xué)習(xí)的一筆財(cái)富。以我自己舉例,閱讀《Windows核心編程》時(shí)(我只閱讀了3/4的內(nèi)容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統(tǒng)計(jì)),時(shí)隔多日,我早已記不清 Windows的系統(tǒng)編程了,但只要花幾分鐘翻出以前的代碼看看,便會(huì)重新了然于胸。所謂好記性不如爛筆頭,就是這個(gè)道理。

  仔細(xì)讀書、認(rèn)真抄寫源代碼、獨(dú)立完成習(xí)題外加更進(jìn)一步的實(shí)驗(yàn),最后將所有的代碼留下,成為自己的經(jīng)驗(yàn)和財(cái)富,絕對(duì)的辛苦,也絕對(duì)的事半功倍。當(dāng)然,這種方式只適合學(xué)習(xí)需要精通的技術(shù),如果不是學(xué)習(xí)C語(yǔ)言,你還要具體情況具體分析。

  寫到最后,還有非常非常重要的一點(diǎn)沒(méi)有提及──代碼風(fēng)格和英語(yǔ),從最開始學(xué)習(xí)就必須強(qiáng)迫自己模仿最優(yōu)秀的代碼風(fēng)格。英語(yǔ)要盡一切力學(xué)好,我以后會(huì)用專門的一篇文章來(lái)詳細(xì)討論,大家努力哦。。。。。。

1758280