當前位置:
首頁 > 知識 > 新手如何學習C語言,我用一年時間是怎麼自學的

新手如何學習C語言,我用一年時間是怎麼自學的

最近會有一些低年級的同學問,C語言不會寫代碼怎麼辦?大致上都是一些類似的問題吧,回想一下自己走過的路,反覆的思考然後寫了這篇文章,希望可以對一些迷惘的同學一絲幫助,那我將是莫大的欣喜與榮幸了。

回想一下,我去年的時候也和你是一樣的狀態吧,也有類似的疑惑,一年時間的成長,現在身在大二的我雖然談不上很厲害吧,但是也算是走過了最初的那段迷惘吧,就分享一下自己的感受與經歷吧,希望對以有幫助。

零基礎小白到大神之路,歡迎加裙 四八七八七五零零四,群里有免費C++課程,還有大量乾貨哦

一:現在大一上學期應該只學一門專業課,除了數學與英語課之外,還是有很多的業餘時間的,抽出一小部分去了解一些計算機的文化吧。舉個例子吧,比如計算」機科學之父」,艾倫.圖靈的生平啊什麼的,了解一下他是如何以一個數學家的身份去首次提出圖靈思想的,再比如他是如何創造性的提出「機器可以思考嗎」這樣子的論文而開創了AI的先河的。

這是說了一個人物的了解吧,再比如你可以去了解一下計算機的發展歷史啊,比如第一台計算機是在1946年誕生於美國的賓夕法尼亞大學的;再或是去了解一下你們的C語言的發展史,等等等等,這些東西沒有必要刻意的去看,興趣來了偶爾去百度一下子,會開闊一下見識與思維的,而且還可以增加自己對相關領域的興趣程度。

這些知識如果要系統的細看的話,可以去看,或是這兩本書講的是比較系統的,都是簡單的提一下計算機科學體系吧,沒有深入的講解部分。

二:計算機科學知識的學習是最注重循序漸進的,注重基礎的,萬萬不可跳躍性的學習,當然你是天才或是個別的話我只能膜拜了,至少我是一步一個腳印學過來的。我們不討論哪一門語言才適合做大學計算機相關專業的第一門編程課的問題,我們是C語言,也聽說很多學校都是以C語言為第一門編程語言對待的,我想大部分都是吧。那我們就把C語言盡自己的最大努力學好吧,有一些學弟學妹會問一些問題,自己不會敲代碼怎麼辦?還有人會說能看懂別人寫的代碼,但是自己就是敲不出來。

這些問題我曾經也遇到過吧,首先要明確一個觀念:C語言不難學,一點都不難學。這門課程不需要那麼多的動腦筋的地方,就我感覺還沒有數學難呢,當然這僅僅是一孔之見吧。入門一個語言最重要的是要選擇一本好書,一本能夠以最簡單的描述來表達出基本知識的書,我想很多國內的首學C的人會選擇譚老的C吧,我當時也不例外,因為畢竟是國人寫的書,在問題描述與問題展開與循序講解的過程中透漏的思考問題的方式都是符合國人思考方式的,所以易於理解吧,當然如果喜歡讀外國的名著當然也是可以的,比如C之父的,這當然是傳世經典之作了。

還要明確一個觀念是:譚老的書僅僅是作為一個最基本語法的講解書,看完譚老的書後確實會把很多語法細節學到,但是這也僅僅是語法,只能保證你會用這些語法了,你是知其然而不知其所以然。看完譚老的書後最好把這本書看看,而且更要仔細的看,這個時候有了基礎後看起來會輕鬆一些的,會發現有很多原理性的講解了,而且會有一些譚老書中講不到的細節。看完了後會有一種小小的豁然開朗吧。

以上說的看書,過程應該是這樣子的:看基本語法,看書上的例題,試著自己去敲一遍例題,即使你看懂了例題,但是讓你合上書自己敲,我保證還是會出錯的,肯定是某些地方理解的不夠透徹,再看書,然後再敲,直到無誤的敲出為止。慢慢的經過一段時間的堅持練習,會發現自己合上書後敲的時候錯誤越來越少了。然後是做課後的習題,最開始看懂例題去敲書後習題也是很難下手的,但是要嘗試,第二次寫習題就不會那麼糾結了。編程容不得一點的摻假,必須要動手去敲代碼,而且還要準確無誤的敲出來。不可手寫而不去上機驗證。

還有就是培養一個習慣:先思考清楚問題,然後再去敲代碼。因為我們敲代碼僅僅是為了用程序設計語言把我們人的思維轉換成了計算機可理解的方式了而已。有的同學會看完題目不思考就直接敲,發現總是會出一些錯誤,然後在那苦逼的各種改啊調試啊等等,這樣子不是一個好的編程習慣。

三:認真的看書,做練習題,敲代碼。這樣子下來一個學期完全可以把C語言學好的,一般性的題目是沒問題的。學習了程序設計語言後會發現我們的思維在慢慢的轉變,我們思考問題的方式也在更加的嚴謹了,這是學習編程的結果。

如果有興趣的話可以考慮進階了,去學習,吧,這兩本書會介紹很多在課程老師講不到的,在一般性的書上看不到的。更多的是站在編譯器的角度去看待代碼,看待基本的語法了。比如編譯器如何編譯語言並生成可執行二進位文件的?這個編譯的過程是怎樣的?編譯器又是如何獎產生的.exe文件交給CPU執行的?一個基本語法的規則背後肯定是和編譯器的某一項工作原理是契合的,舉個例子吧:大家都知道的函數中的普通變數是在函數的調用結束後悔自動銷毀的,而我們在函數中定義的靜態變數,也就是用static修飾的類型變數,他的內存空間在函數調用結束後是不會銷毀的,這是為什麼呢?這是因為編譯器為我們的程序分配的內存進行了一個分類,把不同類型的變數分門別類的存儲,這樣子便於管理。至於變數內存空間銷毀與否的區別就不在這細說了。當然兩本進階的書我是當時沒有看,也是後面的學習中翻了翻的。

四:最後不得不說的是,還要把數學學好,這個好並不是要投入很多的精力在上面,但最起碼你要能獨立寫得出習題,考試不要分太低吧。計算機科學還是很依賴數學的,畢竟圖靈與馮諾依曼兩位大師都是數學家出身呢。數學更多的是培養一個思考問題的方式吧,通過做一些習題是很鍛煉自己對問題的認識與整體把握的。

零基礎小白到大神之路,歡迎加裙 四八七八七五零零四,群里有免費C++課程,還有大量乾貨哦

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT技術java交流 的精彩文章:

C語言不利於初學者的原因竟然是這個
DIV CSS學習筆記 下
DIV CSS學習筆記 上
C語言公共基礎知識
鄭重聲明:程序員不是修電腦的!

TAG:IT技術java交流 |