毫無疑問,大部分資深程式員的程式設計生涯都是從c語言開始的。依稀還記得大一時候自學c語言時的情景,當時剛上大一,部落客為了追求心儀的妹子就在完全不懂得c語言是什麼的情況下報名參加下學期的計算機二級(c語言)考試。這一行為果斷引來了女神關注,效果頗佳。然而在仔細了解了c語言之後,才發現比想象中的困難了一些。再加上大二的學長們各種渲染c語言有多難學,于是心中開始打鼓。
大一的寒假,我從圖書館借來了三本c語言入門的書,開始自學。其中自然有大名鼎鼎的譚浩強老人家的書。記得當時安裝turb c就花了好幾天的時間,幾近崩潰邊緣。後來終于用一個寒假的時間把基礎知識都學會了,又做了幾套計算機二級的卷子,連蒙帶猜的通過了第二學期的考試。從此就算是和程式設計結了緣。
當年的妹子如今已經杳無音信,而c語言的代碼我一寫就寫了十年。
這十年裡,ide從最簡單的turb c到vc 6.0再到vs2005、2008、2010、2013...開發方向從嵌入式到windows開發再到linux伺服器開發,當年學習c語言那份熱情依然還在。後來又在公司擔任了新員工試用期項目教育訓練的工作,每年都要把變量的指針和指針變量這樣的東西反複講。看着他們一個個獨立完成了自己的試用期項目,部落客成就感爆棚。
最近幾年,一直堅持利用業餘時間幫助網友解決c語言學習過程中的各種疑難問題。每天至少花費2小時時間回複郵件。随着來信越來越多,越發感到力不從心。況且大部分朋友的問題都是類似的,重複回答實在無趣,希望更多的朋友與我交流。
下面進入正題
不想給大家一長串書名,那樣也許就直接抹殺了你學習c語言的興趣,這裡重點推薦三本。
c程式設計
很多大牛都不推薦譚浩強的《c語言程式設計》,但我不這麼認為。這本書雖然講的不那麼到位但作為初學者從它入門還是挺合适的。最重要的是,網上大部分初級網友都是以它為基礎進行交流的,有了它更容易融進各種論壇的讨論。
c程式設計語言
這本書是c語言之父dennis參與編寫的,雖然不厚,但有些思想講得比較到位。建議初學者學習。
如果你想學習c/c++可以來這個群,首先是三三零,中間是八五九,最後是七六六,裡面有大量的學習資料可以下載下傳。
c primer plus
這本書是非常經典的教材,每個知識點都介紹的非常到位。可以說這是入門級的選手的終結教材。如果想學好c語言并在後面有更大的發展,這本書必須要看。它能幫你打下堅固的程式設計基礎。
學習好這本書之後,學校裡的各種考試和小競賽就不在話下了。接下來,你該開始自己的進階之路了。
如今,turb c肯定是已經永遠地退出曆史舞台了,但初學者還是要選擇一款合适的ide才能友善的上手。
很多學校的實驗室都用的linux系統,建議大家從vim開始編寫最初的代碼。
編寫好後執行下面代碼:
這是一個輕量級的ide,對于初學者而言,這是不二選擇。
code::blocks
無疑這是c語言開發最牛x的工具,然而這裡不建議初學者使用。由于microsoft自己制定了很多自己關于開發的規則,初學者會發現課本上的代碼原封不動的敲在上面卻報出莫名其妙的錯誤。
vs2013
不過,當你擁有一定c語言基礎的時候,vs的學習一定是必不可少的。
程式設計是一門非常注重實踐的學科,如果你不去親自敲代碼的話,那你永遠也學不會。而部落客也更願意在郵件中針對具體的程式設計問題和大家讨論。
這裡推薦兩個适合初學者程式設計練習的線上系統。
已經入門的朋友可以前去練習,有什麼問題我們一起讨論。
c語言知識結構