介紹 做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語言 - 維基百科,自由的百科全書》 《精通UNIX下C語言編程與項目實踐》 圖錄 計劃表
進度圖
監督你
總結 我個人覺得我們做事情必須要堅持,否則同一件事情你失敗兩次,一般你就會放棄它。所以堅持之後,會有我們意想不到的收穫。 我希望大家也能給我好的建議,協助我進行學習。我在C方面是個典型的菜鳥,多多賜教! 推薦