介紹
做web開發已經有5年多了,現在覺得如果想讓自己在技術上有所提高,必須在C語言、數據結構和算法上下點苦功。以前我也是零零散散的學習C語言,總是沒有耐心堅持下來。——這次我得下決心學好了。

為什么我學習C呢?
1、php內核是用C開發的。
1》如果你想知道某個函數是怎么實現的,手冊有的時候是說不明白的。——你敢保證你能把你寫的代碼中所有函數,所有類說明白嗎?我估計你一般心里明白。 ——所以看代碼是最直接和最有效的。
2》如果你想做一些特殊優化,或者需要一些特殊的加密,通過擴展實現這些功能,那么使用C是首選。
2、很多數據結構和算法的書是以C為基礎語言。就像英語是國際語言一樣,C語言應該是程序員的國際語言吧?
3、C比較接近于底層,能更直接的控制計算機。PHP只是在應用層面上,想直接控制底層硬件設備,比如寄存器,緩存,還是比較困難的,所以C對底層硬件的控制和優化是不二的選擇。
4、很多開源軟件使用C開發的。
如nginx,apache,linux,memcached,MySQL等等,你想真正用好這些軟件,不是一個簡單的配置或架構,就能做好的,你必須能夠把他們關聯起來,那么C又是一個不二的選擇。——這個主要是我發現我們公司UC部門就是用C把這些軟件串起來的,具體怎么弄的搞不清楚。
5、還有大家都知道的linux,unix是用C寫的,所以我學習C語言是"必須的"。
C語言雖然有很多優點,但是隨著應用的不斷深入和廣泛,其本身所擁有的弱點也顯現出來。
1)容易造成內存泄漏。
2)類型檢查機制較弱。
3)代碼冗余處理不夠。


攻占堡壘
1、Linux下的C語言編程環境
2、文件編程
3、標準I/O庫
4、進程操作
5、線程操作
6、網絡編程
7、數據庫編程
計劃
1、從書籍入手
要想學好C語言,我得從書籍入手,沒有辦法,又不能在學校那樣,有老師帶。到社會上,程序員培養的就是自學能力。通常我都是從書入手。
有人會問了,為什么不通過博客入手學習啊?這個我以前也這樣做了,但是后來發現,學得東西零零散散的,沒有一個統一性。而書呢?能系統的進行學習。
2、看代碼
看國內程序員的代碼:比如張宴的httpSqs。——這個代碼我早期研究過,也手動打過里面的代碼。
看開源的代碼:比如試著看看PHP 內核,memcached,nginx這些代碼,看能不能看懂。
3、溝通
多參加一些社區(如http://sourceforge.net/),我也試試,能不能參與到里面。——初期,我先自己試著寫一些小工具。
多跟這方面有經驗的人溝通(我很贊同一點,要多跟一些牛人溝通,那么你也會變的牛起來,要把這個當成習慣)。
4、寫代碼

資源
我已經買了一本書《精通Linux C編程》,本來想找電子版的,但是沒有找到。——我個人比較喜歡電子版的書,帶著方便,家里,公司都能看。
其他的電子書籍,你點擊可以下載。
《C程序設計語言(第2版·新版)》 ——看過,但是未“破萬卷”
《C 專家編程》 ——未看,看完《精通Linux C編程》之后再看。
《Linux C編程一站式學習》 ——未看(博友提供)
圖錄
計劃表

進度圖
監督你

總結
我個人覺得我們做事情必須要堅持,否則同一件事情你失敗兩次,一般你就會放棄它。所以堅持之后,會有我們意想不到的收獲。
我希望大家也能給我好的建議,幫助我進行學習。我在C方面是個典型的菜鳥,多多賜教!
推薦

喜歡編程
浙公網安備 33010602011771號