https://www.toutiao.com/a6626142205025190414/ 在討論如何學(xué)習(xí)C語(yǔ)言之前,,我們先來(lái)了解為什么要學(xué)習(xí)C語(yǔ)言,,明確學(xué)習(xí)的目的是很重要的,只有明確了學(xué)習(xí)目的,,才會(huì)有持久的學(xué)習(xí)動(dòng)力,。C語(yǔ)言是很多程序員學(xué)習(xí)的第一個(gè)計(jì)算機(jī)語(yǔ)言,許多程序員經(jīng)過了多年的開發(fā)經(jīng)驗(yàn)后都感覺到C語(yǔ)言對(duì)于一個(gè)程序員來(lái)說是多么的重要,,如果不懂C語(yǔ)言,,你難以編寫底層程序,如果不懂C語(yǔ)言,,你難以寫出優(yōu)秀高效的程序,,為什么說C語(yǔ)言如此重要呢? 第一,,C語(yǔ)言語(yǔ)法結(jié)構(gòu)很簡(jiǎn)潔精練,,程序效率高。C語(yǔ)言本身只提供必要的語(yǔ)言特性,,其他復(fù)雜一點(diǎn)的功能如文件處理,、數(shù)學(xué)計(jì)算等等都以庫(kù)函數(shù)方式提供,,便于描述算法,,大多數(shù)的程序員愿意使用C語(yǔ)言去描述算法本身,,如果你想在程序設(shè)計(jì)方面有所建樹,那么你應(yīng)該學(xué)習(xí)C語(yǔ)言,。 第二,,C語(yǔ)言的可移植性非常好,。實(shí)際上C語(yǔ)言從早期開始就幾乎達(dá)到了“一次編寫,,處處編譯”,ANSI在1989年統(tǒng)一了C語(yǔ)言標(biāo)準(zhǔn)以后(稱之為C89),,只要特定平臺(tái)上的編譯器完整實(shí)現(xiàn)了C89標(biāo)準(zhǔn),,而且你的代碼沒有使用某些特殊的擴(kuò)展,,那么代碼一定可以編譯通過,,再實(shí)現(xiàn)一下操作系統(tǒng)相關(guān)的函數(shù)庫(kù),,C語(yǔ)言的移植就是很簡(jiǎn)單的事情,。 第三,C語(yǔ)言能夠深入系統(tǒng)底層,,甚至直接和硬件打交道,。許多的操作系統(tǒng)都是C語(yǔ)言寫的,。例如Windows,Unix,,Linux,,Mac,Os/2等,,如果你將來(lái)希望能夠編寫內(nèi)核程序,,那么你必須懂C語(yǔ)言,才可以深入到這些操作系統(tǒng)當(dāng)中去,。 第四,,很多新型的語(yǔ)言都是衍生自C語(yǔ)言,例如C++,,Java,,C#,,J#,,perl,,等等。掌握了C語(yǔ)言,,可以說你就為掌握這些語(yǔ)言打好了基礎(chǔ),經(jīng)過進(jìn)一步的學(xué)習(xí),,你就可以用這些新型的語(yǔ)言去開發(fā)了,所以說C語(yǔ)言是程序設(shè)計(jì)的重要基礎(chǔ),,許多招聘和考試都必考C語(yǔ)言,。 明確了學(xué)習(xí)C語(yǔ)言的重要性之后,,我們?cè)賮?lái)討論一下如何學(xué)習(xí)C語(yǔ)言,。很多初學(xué)者剛開始都有要學(xué)好C語(yǔ)言的愿望,但是經(jīng)過一段時(shí)間后,,漸漸對(duì)C語(yǔ)言失去了興趣,,再下來(lái)對(duì)C語(yǔ)言產(chǎn)生了厭倦甚至是恐懼的情緒。是C語(yǔ)言難學(xué)嗎,?與其說是C語(yǔ)言難學(xué),,倒不如說是這些人沒有掌握好學(xué)習(xí)方法,。什么才是好的學(xué)習(xí)方法呢?每個(gè)人的學(xué)習(xí)習(xí)慣和理解方式不同,,適合自己的學(xué)習(xí)方法也就不同,。在這里提出一點(diǎn)看法,僅供參考,。 首先,不要浮躁,,靜下心來(lái)認(rèn)真學(xué)習(xí)每一個(gè)細(xì)節(jié),。心態(tài)很重要,做一名出色的程序員要耐得住性子,,耐得住寂寞,,學(xué)習(xí)時(shí)才能真正掌握每一個(gè)語(yǔ)句的每一個(gè)細(xì)節(jié),當(dāng)你成為一名程序員時(shí),才能有縝密的邏輯思維,,才能讓你的程序滴水不漏,。不少學(xué)習(xí)者心浮氣躁,語(yǔ)句看了個(gè)大概,,就自以為懂得差不多了,,編寫程序遇到些許困難就不愿再思考,急于找答案來(lái)看,,一看似乎又懂了,,下次再編寫又不懂了。切記,,心浮氣躁是編程的大忌,。 其次,仔細(xì)研讀教材,。教材的內(nèi)容是經(jīng)過精心組織安排的,,知識(shí)點(diǎn)往往循序漸進(jìn),除有細(xì)致的講解之外,,還有詳細(xì)的案例,、習(xí)題,是初學(xué)者必備的工具,。有知識(shí)點(diǎn)看不懂,,請(qǐng)多找?guī)妆緟⒖紩僮屑?xì)研讀,,“書讀百遍,,其意自現(xiàn)”。 第三,,多閱讀源代碼,。除書上的例題外,可以多找些源程序代碼來(lái)閱讀,。閱讀源程序時(shí),,對(duì)不懂的語(yǔ)句、函數(shù)要查閱相關(guān)資料及時(shí)弄懂,,這樣一來(lái)可以學(xué)習(xí)或鞏固語(yǔ)句語(yǔ)法,。另外,要弄清楚作者的解題思路,,程序是思維的體現(xiàn),,不是簡(jiǎn)單的語(yǔ)句疊加,對(duì)初學(xué)者來(lái)說,,有兩件難事:一是解決問題的思路,,也就是算法,,二是如何用C語(yǔ)言實(shí)現(xiàn)算法。在閱讀源代碼時(shí),,我們總會(huì)有這方面的收獲,。 第四,,多編寫程序是掌握C語(yǔ)言的不二法門,。一定要?jiǎng)邮志帉懀灰詾榭吹枚绦虼a就能寫程序,。很多失敗的學(xué)習(xí)者就是在這里吃的虧,,他們?cè)趯W(xué)習(xí)教材時(shí),能讀懂所有內(nèi)容,,卻懶于對(duì)習(xí)題進(jìn)行編寫訓(xùn)練,,結(jié)果真正寫起程序卻不知如何下手。應(yīng)該說編寫程序不僅僅是一門知識(shí),,它還是一種技能,,你不訓(xùn)練,就不能掌握,,就如你能通過書本知道游泳的方法,,但是,如果你不練習(xí),,最終你還是不會(huì)游泳,。 第五,調(diào)試修改程序,。程序?qū)懲旰蟛⒉灰欢ň驼_,,要讓編譯運(yùn)行,讓機(jī)器來(lái)檢驗(yàn)它的正確性,。當(dāng)然,,語(yǔ)法正確了還不能代表邏輯也正確了,應(yīng)該多設(shè)計(jì)幾個(gè)區(qū)間合理的輸入數(shù)據(jù),,看看能否得到預(yù)期的輸出結(jié)果,,通過調(diào)試修改,不斷完善程序,。 第六,其他建議,。多參與討論,,同一題目要求,往往有多種算法,,參考他人的算法,,拓寬自己的思路,,盡量讓程序的時(shí)間、空間效率提高,。在學(xué)習(xí)的后期,,設(shè)計(jì)一款小軟件,讓它能實(shí)際應(yīng)用在某一方面,。分章節(jié)的學(xué)習(xí),,我們學(xué)到的是零散的知識(shí),如何綜合運(yùn)用,,只有通過實(shí)際的開發(fā)才能體會(huì),,同時(shí),也讓我們學(xué)以致用,,把學(xué)到的東西,,轉(zhuǎn)換成實(shí)實(shí)在在的好處。 https://www.toutiao.com/a6626142205025190414/ |
|