-
1 # 小縣城裡的故鄉往事
-
2 # C語言基礎
學C語言不知道從哪兒下手?學習框架都幫你列好了!
隨著高考結束,在未來計算機專業講又要迎來一批新生小鮮肉!C語言入門到入土,從長髮飄飄到禿頂的老鐵也越來越多,其中,想自學成才的也佔了不少數;想笨鳥先飛的也佔有不少數。
傳說中的C語言就是那麼刺激和高挑戰
沒有基礎的人也可以直接學習,速度會慢一點
C語言上手可能不是很容易,首先你的花費一週時間掌握最基本的內容。(PS:沒有基礎的人也可以直接學習,速度會慢一點)
常用的基本資料型別(int,float,double,char)的使用,必然包含常用的輸入和輸出函式。程式的三大結構學習:順序結構,選擇結構,迴圈結構。模組化程式設計的函數了解下你再花2周學習些:
指標結構體檔案此時,有些人就在簡歷中得意的自稱"會"C語言了。
但是學到如此程度,在實際程式設計中會經常遇到挫折,主要源自理解不夠深入,僅僅體驗了一下C語言語法而已。
隨意列舉一些新手普遍存在的問題:
不瞭解C語言模組化設計,變數名, 指標概念含混。更換編譯器,程式出現怪異的結果。怎樣定義和宣告C語言全域性變數和函式最好?在C語言中,一個結構不能包含指向自己的指標嗎?什麼是C語言最好的程式碼佈局風格?為什麼不能向接受const char **的函式傳入char **?用縮寫“if(p)”檢查空指標是否可靠?char *指標指向一些int變數,如何跳過?怎樣建立和理解非常複雜的宣告?師傅給我剃個光頭
擁有某項技能的程式設計師的價值,可以用學習技能所需的成本來衡量。你用2周學習達到的這種程度,對於企業就是沒有價值的,因為老闆可以讓一個公司裡任意其他語言的程式設計師經過2-3周的學習就能達到你現在的程度。
C語言的 簡潔緊湊、靈活方便。快速開發對專案有價值,但這不是你的價值,是C語言的價值。所以提高自身價值,也就是不讓別人輕易追上你。以極低的成本替代你。
你只能快跑,進一步學習,C語言語言層面還需要學習下面一些內容:
1.C語言執行機制,編譯過程。
2.C語言模組化思想。
3.深入理解C語言面向過程的設計思路。
4.C語言程式設計思維。
5.C語言檔案同步操作
上述都是語言層面的,屬於內功。實戰中當然也需要一些更為具體的外功,訓練外功可以從熟悉C語言標準庫開始,這些模組能進入標準庫說明他們足夠好並且在實際專案中足夠常用,列舉一些極為常用的:
1.正則表示式
2.Socket網路程式設計
3.讀取PE檔案操作
4.程序記憶體查詢與修改
5.常用的資料結構與演算法
老闆我要換種洗髮水
無論練習內功或外功,結合實戰都是最好的訓練方式和檢驗手段,可以根據個人情況以及喜好選擇,如:
網路程式設計借用第三方網站為跳板做實時資訊查詢.(例如身份證查詢)使用第三方庫開發小遊戲案列,例如推箱子,掃雷,連連看,消消樂編寫小應用,個人詞典啊使用C語言做演算法題,ACM,還有各種地方的什麼杯(飛機杯,罩杯)使用C語言做數學建模或者數學計算使用第三方庫做終端模式的播放器OpenGL做圖形處理個人建議選擇小專案進行實訓,有些新手上來就想定一個大目標,做的時候很挫折,往往半途而廢。把小東西先實現,然後最佳化。接下來新增新功能,慢慢迭代把小東西做大。這樣在做的時候,每實現一個小功能你都會有成就感,激勵繼續前進。
可能經過比較漫長的一段時間,你成為了一個熟練的C語言小癟三,還有些高階話題可以繼續學習:
windows程式設計Linux程式設計這些高階話題在開發中經常使用, 它們可以幫你更便利實現功能。
通常自稱一個月光速學了會C語言的人基本都不是天才,只是浮躁,目標定的比較低而已,認知侷限而已。
不要太過急功近利,慢慢玩,精進。
當然啦,自學C語言想拔高精進大多都是困難的
我有點方哦
沒有良師講解,有些知識點和技術沒法消化自身理解力不夠,稍微高深一些的就看不懂了還有的……時間不夠,自制力也不夠沒錯說的就是你老鐵
這個時候你就需要和一群志同道合的的人一起學習,陪著你一起提高哦~
-
3 # 和不同
簡單的說,兩個方向可選:
加深C語言的學習可考慮《C專家程式設計》(Expert C Programming),《C程式設計語言》(C Programming Language)。深入C本身的學習。
進行一定Unix/Linux系統的學習C語言與Unix/Linux系統有緊密的聯絡,可熟悉一下Linux/Unix(比如macOS)的常見操作、正則表示式、Makefile編寫等。這方面書就比較雜而多了。
鑑於僅學習了一個學期的C語言基礎,類似Linux核心原始碼或者Minix原始碼等可待水平進一步提高後再學習。
回覆列表
推薦一本windows遊戲程式設計大師技巧。
很多人學完c語言後都很迷茫,這語言能幹嘛?書上講的跟現實中使用的電腦有什麼關係?在黑乎乎的螢幕上顯示出一堆堆白色的字元這些都跟現實中用的電腦相距甚遠呀。
很顯然,現在的c語言課程基本都是著重講變數,函式,資料結構以及演算法等基礎內容,這些東西學完一個學期下來可能你連怎麼顯示一張圖片播放一個音訊都不懂,而來來去去都是printf一堆經典數學函式的結果,這樣子就對程式設計失去了信心。
誠然,c語言是有能力完成你想要的,只不過是需要藉助windows的API,而這些API是在c語言教程裡不會講到的,而windows遊戲程式設計大師技巧這本書裡會教你從怎麼引用windows API庫,到完成一個遊戲的開發總過程。
你可以按著書上的教程,從建立一個視窗開始,然後到申請一塊虛擬視訊記憶體,然後在視訊記憶體上任意畫你想畫的東西,最後顯示到視窗上,然後學習如何解碼音訊檔案然後把解碼後的音訊放到聲道快取中播放的過程。最後當你成功擼出一個俄羅斯方塊小遊戲來,你的人生就達到了巔峰。等跨過了這座山峰,你就會發現學習其他的任何程式設計只要你成功擼出hello world之後就再無難事。