面向閱讀對象
- 剛剛升入大學,開始接觸C語言的計算機相關專業(yè)新生
- 特別感興趣,想通過編程鍛煉思維的C語言學習者
不愿看我絮叨的大佬鹏浅,可以直接拖到文章下方
我的C語言學習之路
0x00前言
距離第一次接觸C語言編程纳击,過去很長時間了牢酵。這中間陸續(xù)學習了很多門語言秸弛,零散的寫過一些代碼医咨,然而水平并不高构舟。在C語言上灰追,我的能力也大概就是能夠獨立完成課后設計,數據結構相關的題目狗超,二叉樹弹澎、圖等的課后設計,可以使用C或者C++獨立實現(xiàn)努咐。后面寫的Java Web代碼稍多一點苦蒿。做過的代碼行數最多的也就是在linux下實現(xiàn)過一個基于控制臺的局域網通信項目。
在C語言上渗稍,因為做過的很多項目都是一些課后作業(yè)性質的佩迟,缺乏大項目洗禮、鍛煉竿屹。只能點到為止报强,希望對于感覺C語言學習有困難有所幫助,并同時期望閱讀到本文的新生們能夠在大二結束時候達到獨立完成各種使用C語言的作業(yè)的水平拱燃,對于VS等IDE也有較深程度的了解秉溉。
0x01 忘不了的黃昏
我大學時候使用的教程是錢能的C++教程,一本紅皮書。記憶里召嘶,那是個帶著晴朗空氣的九月下午父晶,從學校科技館提前一節(jié)下課弄跌,到了信息樓實驗室甲喝。
因為沒有帶課本,就在學校的老機器上憑記憶碼著hello world碟绑。寫完后運行了一下俺猿,有幾個錯誤,然后定位到錯誤修改格仲。再次運行押袍,0 error 0 warning。真是最美的初體驗凯肋,或許是占了記憶力稍好一點的優(yōu)勢谊惭,從hello world中得來了自信心。下機后侮东,拿到課本在讀一邊關于hello world的介紹圈盔,從include開始,到最后的return悄雅,一點一點去理解行行代碼的實際意思驱敲,恍然大悟,編程的感覺很好哇宽闲。
實際上現(xiàn)在是10月份下旬了众眨,大家肯定都學完這個經典的入門程序了。如果要你紙上默寫一下這個程序容诬,能不能默寫的出來娩梨?能不能講出每一行代碼的作用?览徒。這就是第一步狈定,千里之行,始于hello world习蓬。Hello world雖小纽什,五臟俱全。關于編程友雳,關于計算機體系稿湿,關于API,都在這小小的幾行代碼了押赊。
0x02 初窺編程門徑
實際上這個不應該算是第二階段,算作1.5階段比較合適。
這個節(jié)點是怎么樣的呢流礁?
學完for涕俗、while、do while循環(huán)神帅,很多人還是寫不出代碼再姑,覺得看是看的懂了,就是寫不出找御,通病元镀。那我們應該怎么解決?
我是通過打印第一個平行四邊形起家的霎桅。想做得出這個沒別的辦法栖疑,先看書上例子√鲜唬看完例子遇革,做習題,琢磨哪一些是在變化的量揭糕,哪一些沒有在變化萝快。替換掉那些行數,列數的數字著角,能夠獨立成功打印出一個三角形揪漩,一個平行四邊形,對于循環(huán)等結構的具體執(zhí)行過程也就聊熟于心了吏口。
0x03 具體知識學習
實際上過了上一關奄容,編程就沒有問題了。剩下的就是學習各種語言相關的細節(jié)了锨侯,C語言的話嫩海,就是字符串、指針囚痴、結構體等知識叁怪,后面復雜點有位運算、共用體深滚、枚舉結構奕谭。加上最后的文件操作。有了前面的例子痴荐,后面認真聽課血柳,完成老師的作業(yè),抄一抄課本上樣例代碼生兆,就結束了难捌。真的,C語言學起來就應該是如此輕松。因為當獨立打印出平行四邊形時候根吁,你就已經領悟了編程的本質员淫。
0x04 練習加強基礎
在我的C語言學習經歷中,再新的階段就是大一的寒假了击敌。寒假在家介返,也沒有筆記本電腦。還是在紙上將書本上的所有代碼抄寫了一邊沃斤。
在接下來大一下學期有時間就刷題目圣蝎,做完了酷勤C語言100題中的一大半吧!做這些題我零零散散大概用了我半個學期的時間衡瓶。中間還從學校的圖書館借了一本C語言小游戲百例徘公,都是寫猜數字什么的簡單游戲。
0x05 最后
其實我個人資質是很平庸的鞍陨,寫代碼到今天步淹,也沒有取得很大的成績,但是至少在寫代碼這條道路上找到了一點兒方向感诚撵,希望這微薄的話語能夠給大家?guī)硪稽c前行的力量缭裆。在開始的時候遇到一些困難是應該的,覺得時間被浪費很多也是必然的寿烟,一定要有一個練習的心態(tài)澈驼。
簡版-數語以敝之
秘訣
一本語法書+50道練習題=入門
達成目標
- 獨立完成C語言的課程設計,看懂幾百行甚至千行內的代碼(能力水平判定)
- 通過對C語言的學習加強計算機修養(yǎng)(軟性)
簡短版-C語言升級打怪之路
- 第一關:手寫hello world調試運行筛武,理解每一行代碼
- 第二關:使用順序缝其、判斷、循環(huán)三種結構打印規(guī)律的復雜圖形
- 第三關:認真閱讀C語言語法書上的其他內容
- 第四關:50道題目左右的編程訓練
- 第五關:獨立完成課程的大作業(yè)