Web程序員學習C語言之讀書計劃
介紹
做web開發已經有5年多了,現在覺得如果想讓自己在技術上有所提高,必須在C語言、數據結構和算法上下點苦功。以前我也是零零散散的學習C語言,總是沒有耐心堅持下來。——這次我得下決心學好了。
為什么我學習C呢?
1、php內核是用C開發的。
如果你想知道某個函數是怎么實現的,手冊有的時候是說不明白的。——你敢保證你能把你寫的代碼中所有函數,所有類說明白嗎?我估計你一般心里明白。 ——所以看代碼是最直接和最有效的。
如果你想做一些特殊優化,或者需要一些特殊的加密,通過擴展實現這些功能,那么使用C是首選。
很多數據結構和算法的書是以C為基礎語言。就像英語是國際語言一樣,C語言應該是程序員的國際語言吧?
C比較接近于底層,能更直接的控制計算機。PHP只是在應用層面上,想直接控制底層硬件設備,比如寄存器,緩存,還是比較困難的,所以C對底層硬件的控制和優化是不二的選擇。
很多開源軟件使用C開發的。如nginx,apache,linux,memcached,MySQL等等,你想真正用好這些軟件,不是一個簡單的配置或架構,就能做好的,你必須能夠把他們關聯起來,那么C又是一個不二的選擇。——這個主要是我發現我們公司UC部門就是用C把這些軟件串起來的,具體怎么弄的搞不清楚。
還有大家都知道的linux,unix是用C寫的,所以我學習C語言是"必須的"。
C語言雖然有很多優點,但是隨著應用的不斷深入和廣泛,其本身所擁有的弱點也顯現出來。
容易造成內存泄漏。類型檢查機制較弱。代碼冗余處理不夠。
攻占堡壘
Linux下的C語言編程環境;文件編程;標準I/O庫;進程操作;線程操作;網絡編程;數據庫編程
計劃
1、從書籍入手
要想學好C語言,我得從書籍入手,沒有辦法,又不能在學校那樣,有老師帶。到社會上,程序員培養的就是自學能力。通常我都是從書入手。
有人會問了,為什么不通過博客入手學習啊?這個我以前也這樣做了,但是后來發現,學得東西零零散散的,沒有一個統一性。而書呢?能系統的進行學習。
2、看代碼
看國內程序員的代碼:比如張宴的httpSqs。——這個代碼我早期研究過,也手動打過里面的代碼。看開源的代碼:比如試著看看PHP 內核,memcached,nginx這些代碼,看能不能看懂。
3、溝通
多參加一些社區(如http://sourceforge.net/),我也試試,能不能參與到里面。——初期,我先自己試著寫一些小工具。多跟這方面有經驗的人溝通(我很贊同一點,要多跟一些牛人溝通,那么你也會變的牛起來,要把這個當成習慣)。
4、寫代碼
資源
我已經買了一本書《精通Linux C編程》,本來想找電子版的,但是沒有找到。——我個人比較喜歡電子版的書,帶著方便,家里,公司都能看。
進度圖
監督你
總結
我個人覺得我們做事情必須要堅持,否則同一件事情你失敗兩次,一般你就會放棄它。所以堅持之后,會有我們意想不到的收獲。
原文鏈接:http://www.cnblogs.com/baochuan/archive/2012/06/20/2554983.html