-
1 # 玩著學程式設計
-
2 # EmacserVimer
筆者對這個問題做個稍稍的擴充套件一下,C語言新手入門有哪些方法,有哪些書籍或者教程可以參考。
本文的回答完全基於筆者大學時候的學習經歷作出的自己的一些看法,本文適合那些真正想成為一個軟體工程師或者說成為一個真正的程式設計師的同學,因為本文並不會推薦譚浩強老師那本銷量超千萬的異常驚人的《C程式設計》,因為筆者認為那更適合那些只是想考一個計算機等級證書的童鞋,而不適合想成為一名真正程式設計師同學的需求。當然這並不是說有抹黑譚浩強老師的意思,作為中國計算機科學界老一輩的計算機教育學家,老教授依然是值得我們尊重的德高望重的行業佈道師,只是筆者覺得有更好的選擇。所以,如果你只是想要學習C語言來考個計算機等級證書,僅此而已,出門左轉,譚浩強老師那本《C程式設計》對於考級來說絕對是本好書。但是這本書的問題在於太糾結於語法細節,也就是說過於關注糾結於類似於文字遊戲的東西,但是對於程式設計思想的培養做得不夠,而且很多地方講得不夠深入,總感覺點到為止,沒到精髓這種,而且程式碼風格也非常不好。
首先推薦如題所說C語言入門需要看什麼新書,這裡筆者拓展一下,推薦一本書和一個影片,當然書筆者是看完了,但是影片確實只是看了一點,因為影片是因為畢業工作以後當時覺得網易雲課堂是個不錯的平臺看到的,隨便看了一下,覺得老師講課風格不錯所以推薦了。這本書就是《C Primer Plus》,注意名字不要搞錯了,因為還有兩本名字跟這本書比較像的,不過都是C++的書喲。這本書英文版中文翻譯版都有,大家可以去買,當然如果你的英語不太差的話我建議去買英文版的來看,因為譯本沒辦法原汁原味,有的地方翻譯有一點費解。我相信普通的大學生還是有這個水平的,如果遇到少數不懂的,藉助網路的力量,Google翻譯、百度翻譯,金山詞霸、有道詞典什麼的都能很好的解決。這本書不糾結於摳字眼等語法細節上的問題,程式碼規範也較好,注重思想培養,但是書洋洋灑灑近700頁,所以需要一些耐心來閱讀這本書籍,但是就好想說學習就是攀登高峰,過程一定是艱難的,但是結果是美好的,等你攀上高峰以後,再回頭,風景這邊獨好。
再一個推薦的入門的影片時網易雲課堂上,浙江大學翁凱老師的C語言課程,當然筆者工作忙,再加上入門課程來說對我已經沒有太大的作用,所以沒聽完,但是聽了幾個小節覺得老師的風格還是講得很好的。雖然跟國外很多教授的課程比起來還有差距,但是在國內來說還是算不錯的課程了,因為能看到思想上的東西。有了這兩個課程,我相信你一定可以有一個較好的基礎了,那麼接下來應該做什麼來提高自己呢?
筆者認為,既然講到C語言,有一本書是不得不講的,雖然隨著時間的推移,C語言標準也在不斷前進,但是這本書依然是一本非常好的書籍,她背後所蘊含的哲學,兩位偉大的計算機科學家的偉大哲學思想,都是值得肯定的,並且這些學家還一手打造了unix作業系統,並用C語言重寫了unix作業系統。這本書就是Dennis Ritchie和Brian W. Kernighan的《c programming language》(the second edition)。這兩位科學家一位是參與了貝爾實驗室的諸多關於unix和C語言的相關工作,另一位丹尼斯里奇則是和肯湯普森齊名的unix和C語言之父。
如果你能堅持的把這兩本書看完,你在C語言一定會有很好的收穫,如果你還想學習到更多有關C語言的知識,你還可以看諸如《C陷阱與缺陷》、《C專家程式設計》、《C和指標》等等這些書籍來提升自己的理解力,更加全方位和深入的理解C語言這門程式語言,畢竟C語言是很多程式語言的原始模板,學好C語言對於以後學習其他程式語言也是非常有幫助的。
除此之外,要學好程式設計,良好的數學基礎、資料結構、演算法基礎等等也是很重要的,你可能需要學習一些數學(尤其是離散數學)方面的知識,再就是學好演算法等知識。這裡筆者在推薦兩門經典的課程,一門是MIT的《演算法導論》這門課,在一個就是Stanford的《程式設計方法學》這兩門課程,在網易公開課上都能找到。這兩門課程筆者陪伴了幾乎一個學年的大學時代,雖然到現在為止筆者都還沒能全部消化掉,但是至今仍然覺得這是兩門非常經典的課程,這些世界上最頂尖計算機院校的經典課程,老教授都是德高望重的頂尖教授、科學家,絕對值得你學習。
最後,筆者要再次強調的是,寫程式碼這件事情,最重要的是實踐,一定要多學習多實踐,沒事多逛逛GitHub、stack overflow等等站點,國內例如開源中國,segmentfault、CSDN等等站點,有時間也關注一下開源論壇,以及類似於Google的開源AI學習框架TensorFlow等等眾多新技術趨向,如果你願意跟我一樣熬夜看三巨頭Google I/O、Microsoft build以及apple WWDC等等開發者大會,增長自己的見識。堅持就是勝利,養成獨立解決問題的習慣,還能隨時關注技術動向,我相信你一定能成為一個優秀的程式設計師的。
-
3 # 非究極體工程師
對於新手來說首先肯定是國家級C語言大師譚浩強的書——《C語言程式設計》
看看譚老師的貢獻,從這三個世界記錄你就能明白譚老師的厲害。
下面從銷售量,知識點分類、輔導資料來講解下為什麼選這本書從銷售量來看譚老師寫的《C語言程式設計》銷售量多大1400w冊。平均每兩人一本,可見其受歡迎的程度。從其銷售量上面大家就可以推斷出譚老師的這本書寫的質量是多麼高。
從知識點分類來看譚老師寫的書由淺入深,講解細緻,還有對比案例分析,方便知識點記憶。對C語言和程式設計的基本概念和要點講解透徹、全面而深入;按照作者提出的“提出問題—解決問題—歸納分析”三部曲進行教學和組織教材;
本書的每個例題都按以下幾個步驟展開:提出任務—解題思路—編寫程式—執行程式—程式分析—有關說明。符合讀者認知規律,容易入門與提高。
此外本書還講解了上機軟體的操作和應用,對於那些不會操作的軟體和不知道用什麼軟體的人來說是一個巨大的福音。
從輔導教材來看此書包括4個部分:
第1部分是《C程式設計(第五版)》一書的習題和參考解答,包括該書各章的全部習題,對全部程式設計習題都給出了參考解答,共計132個程式。
第2部分是深入學習C程式設計,包括預處理指令、位運算、常見錯誤分析和C程式案例。
第3部分是上機指南,詳細介紹Visual C++ 6.0和Visual Studio 2010整合環境下編輯、編譯、除錯和執行程式的方法。
第4部分是上機實踐指導,包括程式的除錯與測試、實驗的目的與要求,並提供了12個實驗。
此書內容豐富,實用性強,可以有效地幫助讀者學好C程式設計並提高應用水平,不僅可以作為《C程式設計(第五版)》的配套教材,而且可以作為其他版本的C語言教材的參考書;既適合高等學校師生使用,也可供自學者參考。
最後,我想說的是學習C語言,影片結合教程才是最佳的學習方法。
對於新手學習C語言,建議看著譚浩強老師的書,然後看影片加深理解,然後實際上機操作。
如果沒有影片,那麼我就推薦一個大學生學習網站——嗶哩嗶哩,上面有各種學習資料,是學習必不可少的一個良心網站。
回覆列表
最開始學習C語言的時候,看影片的效果會更好一些,自己看書不明白的地方,老師幾句話就給講明白了,更加高效,而且在視覺體驗上也會更好一些;
初學一門程式語言一定要用合適的方式培養興趣,黑框顯然不是一個好方法。所以,我建議在學習c語言的過程中,把系統API什麼的也加進去一起學吧,教人寫個帶介面的程式比教人成天面對控制檯程式,效果可能會好很多,因為這讓人覺得學習c語言能做事情。
當時學習C語言看的是如鵬網的影片教程《C語言也能幹大事》系列,寫的一些小程式,簡單但比較好玩,適合培養程式設計興趣;
透過開發超級瑪麗,飛機大戰,吃金幣等好多經典的小遊戲,C語言開發網站來講解C語言的知識點,沒想到C語言還可以這麼學,挺好玩的,適合於C語言初學者;
有問題隨時提問,老師實時線上答疑,有技術大牛親自授課,口碑不錯,基本上都是慕名而去的,具體的可以到如鵬網官網上去了解一下;
http://www.rupeng.com/Courses/Index/66?lianbot