C語言從零開始(一)

寫在前面

毫無疑問,大部分資深程序員的編程生涯都是從C語言開始的。依稀還記得大一時候自學(xué)C語言時的情景,當(dāng)時剛上大一,博主為了追求心儀的妹子就在完全不懂得C語言是什么的情況下報名參加下學(xué)期的計算機二級(C語言)考試。這一行為果斷引來了女神關(guān)注,效果頗佳。然而在仔細(xì)了解了C語言之后,才發(fā)現(xiàn)比想象中的困難了一些。再加上大二的學(xué)長們各種渲染C語言有多難學(xué),于是心中開始打鼓。

大一的寒假,我從圖書館借來了三本C語言入門的書,開始自學(xué)。其中自然有大名鼎鼎的譚浩強老人家的書。記得當(dāng)時安裝Turb C就花了好幾天的時間,幾近崩潰邊緣。后來終于用一個寒假的時間把基礎(chǔ)知識都學(xué)會了,又做了幾套計算機二級的卷子,連蒙帶猜的通過了第二學(xué)期的考試。從此就算是和編程結(jié)了緣。

當(dāng)年的妹子如今已經(jīng)杳無音信,而C語言的代碼我一寫就寫了十年。

這十年里,IDE從最簡單的Turb C到VC 6.0再到VS2005、2008、2010、2013...開發(fā)方向從嵌入式到Windows開發(fā)再到Linux服務(wù)器開發(fā),當(dāng)年學(xué)習(xí)C語言那份熱情依然還在。后來又在公司擔(dān)任了新員工試用期項目培訓(xùn)的工作,每年都要把變量的指針和指針變量這樣的東西反復(fù)講。看著他們一個個獨立完成了自己的試用期項目,博主成就感爆棚。

最近幾年,一直堅持利用業(yè)余時間幫助網(wǎng)友解決C語言學(xué)習(xí)過程中的各種疑難問題。每天至少花費2小時時間回復(fù)郵件。隨著來信越來越多,越發(fā)感到力不從心。況且大部分朋友的問題都是類似的,重復(fù)回答實在無趣,于是萌生了在簡書做分享的念頭。希望更多的朋友與我交流。

下面進(jìn)入正題

1. 教材選擇

不想給大家一長串書名,那樣也許就直接抹殺了你學(xué)習(xí)C語言的興趣,這里重點推薦三本。

《C程序設(shè)計》譚浩強

C程序設(shè)計

很多大牛都不推薦譚浩強的《C語言程序設(shè)計》,但我不這么認(rèn)為。這本書雖然講的不那么到位但作為初學(xué)者從它入門還是挺合適的。最重要的是,網(wǎng)上大部分初級網(wǎng)友都是以它為基礎(chǔ)進(jìn)行交流的,有了它更容易融進(jìn)各種論壇的討論。

《C程序設(shè)計語言》 Brian W.Kernighan | Dennis M.Ritchie

C程序設(shè)計語言

這本書是C語言之父Dennis參與編寫的,雖然不厚,但有些思想講得比較到位。建議初學(xué)者學(xué)習(xí)。

《C Primer Plus》

C Primer Plus

這本書是非常經(jīng)典的教材,每個知識點都介紹的非常到位。可以說這是入門級的選手的終結(jié)教材。如果想學(xué)好C語言并在后面有更大的發(fā)展,這本書必須要看。它能幫你打下堅固的程序設(shè)計基礎(chǔ)。

學(xué)習(xí)好這本書之后,學(xué)校里的各種考試和小競賽就不在話下了。接下來,你該開始自己的進(jìn)階之路了。

2. IDE選擇

如今,Turb C肯定是已經(jīng)永遠(yuǎn)地退出歷史舞臺了,但初學(xué)者還是要選擇一款合適的IDE才能方便的上手。

GCC + vim

很多學(xué)校的實驗室都用的Linux系統(tǒng),建議大家從vim開始編寫最初的代碼。

編寫好后執(zhí)行下面代碼:

$ gcc -c main.c
$ gcc -o main main.o
$ ./main

Code::Blocks

這是一個輕量級的IDE,對于初學(xué)者而言,這是不二選擇。

Code::Blocks

可以從這里下載你需要的版本

VS 2013

無疑這是C語言開發(fā)最牛X的工具,然而這里不建議初學(xué)者使用。由于Microsoft自己制定了很多自己關(guān)于開發(fā)的規(guī)則,初學(xué)者會發(fā)現(xiàn)課本上的代碼原封不動的敲在上面卻報出莫名其妙的錯誤。

VS2013

不過,當(dāng)你擁有一定C語言基礎(chǔ)的時候,VS的學(xué)習(xí)一定是必不可少的。

3. 實踐

編程是一門非常注重實踐的學(xué)科,如果你不去親自敲代碼的話,那你永遠(yuǎn)也學(xué)不會。而博主也更愿意在郵件中針對具體的編程問題和大家討論。

這里推薦兩個適合初學(xué)者編程練習(xí)的在線系統(tǒng)。

北京大學(xué) POJ | 杭州電子科技大學(xué) ACM

已經(jīng)入門的朋友可以前去練習(xí),有什么問題我們一起討論。

4. C語言知識結(jié)構(gòu)

C語言知識結(jié)構(gòu)

這幅圖來自 bkdwei的博客

今天就先到這里,最后想說一下,如果你對編程沒有興趣的話,那還是奉勸你不要在這里浪費時間了,相信這個世界上還有太多遠(yuǎn)比編程更適合你的事情等著你去體驗。

我是天花板,讓我們一起在軟件開發(fā)中自我迭代。
如有任何問題,歡迎與我聯(lián)系。


下一篇:C語言從零開始(二)-Code::Blocks使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,284評論 25 708
  • 本文把程序員所需掌握的關(guān)鍵知識總結(jié)為三大類19個關(guān)鍵概念,然后給出了掌握每個關(guān)鍵概念所需的入門書籍,必讀書籍,以及...
    dle_oxio閱讀 11,207評論 6 244
  • 轉(zhuǎn)自http://blog.csdn.net/xugangwen/article/details/44811783...
    扎Zn了老Fe閱讀 12,821評論 1 142
  • 喜歡一個人,是一種幸福,閑暇時間可以想想好玩的事,浪漫的故事。 喜歡一個人不一定擁有,心里牽掛著,時刻關(guān)注著,就是...
    您所撥打的電話已停機閱讀 288評論 0 0
  • 童年中,記憶最深刻的是爸爸那臺每天都擦得锃亮的永久牌自行車 ! 爸爸當(dāng)時在鄉(xiāng)里上班,是吃皇糧的“公家...
    冰溶兒閱讀 674評論 3 4