介紹
做Web開發(fā)已經(jīng)有5年多了,現(xiàn)在覺得如果想讓自己在技術(shù)上有所提高,必須在C語言、數(shù)據(jù)結(jié)構(gòu)和算法上下點苦功。以前我也是零零散散的學(xué)習(xí)C語言,總是沒有耐心堅持下來?!@次我得下決心學(xué)好了。

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

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

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

進(jìn)度圖

監(jiān)督你

總結(jié)
我個人覺得我們做事情必須要堅持,否則同一件事情你失敗兩次,一般你就會放棄它。所以堅持之后,會有我們意想不到的收獲。
我希望大家也能給我好的建議,幫助我進(jìn)行學(xué)習(xí)。我在C方面是個典型的菜鳥,多多賜教!
本文來自:川山甲 - 博客園 鏈接:http:///zWZQ6XO
●本文編號33,以后想閱讀這篇文章直接輸入33即可。 ●輸入m可以獲取到全部文章目錄
|