介紹
做Web開(kāi)發(fā)已經(jīng)有5年多了,現(xiàn)在覺(jué)得如果想讓自己在技術(shù)上有所提高,必須在C語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)和算法上下點(diǎn)苦功。以前我也是零零散散的學(xué)習(xí)C語(yǔ)言,總是沒(méi)有耐心堅(jiān)持下來(lái)?!@次我得下決心學(xué)好了。
為什么我學(xué)習(xí)C呢?
1、PHP內(nèi)核是用C開(kāi)發(fā)的。
1》如果你想知道某個(gè)函數(shù)是怎么實(shí)現(xiàn)的,手冊(cè)有的時(shí)候是說(shuō)不明白的?!愀冶WC你能把你寫(xiě)的代碼中所有函數(shù),所有類(lèi)說(shuō)明白嗎?我估計(jì)你一般心里明白。 ——所以看代碼是最直接和最有效的。
2》如果你想做一些特殊優(yōu)化,或者需要一些特殊的加密,通過(guò)擴(kuò)展實(shí)現(xiàn)這些功能,那么使用C是首選。
2、很多數(shù)據(jù)結(jié)構(gòu)和算法的書(shū)是以C為基礎(chǔ)語(yǔ)言。就像英語(yǔ)是國(guó)際語(yǔ)言一樣,C語(yǔ)言應(yīng)該是程序員的國(guó)際語(yǔ)言吧?
3、C比較接近于底層,能更直接的控制計(jì)算機(jī)。PHP只是在應(yīng)用層面上,想直接控制底層硬件設(shè)備,比如寄存器,緩存,還是比較困難的,所以C對(duì)底層硬件的控制和優(yōu)化是不二的選擇。
4、很多開(kāi)源軟件使用C開(kāi)發(fā)的。
如nginx,apache,linux,memcached,MySQL等等,你想真正用好這些軟件,不是一個(gè)簡(jiǎn)單的配置或架構(gòu),就能做好的,你必須能夠把他們關(guān)聯(lián)起來(lái),那么C又是一個(gè)不二的選擇?!@個(gè)主要是我發(fā)現(xiàn)我們公司UC部門(mén)就是用C把這些軟件串起來(lái)的,具體怎么弄的搞不清楚。
5、還有大家都知道的Linux,unix是用C寫(xiě)的,所以我學(xué)習(xí)C語(yǔ)言是'必須的'。
C語(yǔ)言雖然有很多優(yōu)點(diǎn),但是隨著應(yīng)用的不斷深入和廣泛,其本身所擁有的弱點(diǎn)也顯現(xiàn)出來(lái)?! ?)容易造成內(nèi)存泄漏?! ?)類(lèi)型檢查機(jī)制較弱?! ?)代碼冗余處理不夠。
攻占堡壘
1、Linux下的C語(yǔ)言編程環(huán)境
2、文件編程
3、標(biāo)準(zhǔn)I/O庫(kù)
4、進(jìn)程操作
5、線(xiàn)程操作
6、網(wǎng)絡(luò)編程
7、數(shù)據(jù)庫(kù)編程
計(jì)劃
1、從書(shū)籍入手
要想學(xué)好C語(yǔ)言,我得從書(shū)籍入手,沒(méi)有辦法,又不能在學(xué)校那樣,有老師帶。到社會(huì)上,程序員培養(yǎng)的就是自學(xué)能力。通常我都是從書(shū)入手。
有人會(huì)問(wèn)了,為什么不通過(guò)博客入手學(xué)習(xí)?。窟@個(gè)我以前也這樣做了,但是后來(lái)發(fā)現(xiàn),學(xué)得東西零零散散的,沒(méi)有一個(gè)統(tǒng)一性。而書(shū)呢?能系統(tǒng)的進(jìn)行學(xué)習(xí)。
2、看代碼
看國(guó)內(nèi)程序員的代碼:比如張宴的httpSqs。——這個(gè)代碼我早期研究過(guò),也手動(dòng)打過(guò)里面的代碼。
看開(kāi)源的代碼:比如試著看看PHP內(nèi)核,memcached,nginx這些代碼,看能不能看懂。
3、溝通
多參加一些社區(qū)(如http://sourceforge.net/),我也試試,能不能參與到里面?!跗冢蚁茸约涸囍鴮?xiě)一些小工具。
多跟這方面有經(jīng)驗(yàn)的人溝通(我很贊同一點(diǎn),要多跟一些牛人溝通,那么你也會(huì)變的牛起來(lái),要把這個(gè)當(dāng)成習(xí)慣)。
4、寫(xiě)代碼
資源
我已經(jīng)買(mǎi)了一本書(shū)《精通Linux C編程》,本來(lái)想找電子版的,但是沒(méi)有找到?!覀€(gè)人比較喜歡電子版的書(shū),帶著方便,家里,公司都能看。
其他的電子書(shū)籍,你點(diǎn)擊可以下載。
《C程序設(shè)計(jì)語(yǔ)言(第2版·新版)》 ——看過(guò),但是未“破萬(wàn)卷”
《C 專(zhuān)家編程》 ——未看,看完《精通Linux C編程》之后再看。
《Linux C編程一站式學(xué)習(xí)》 ——未看(博友提供)
《C語(yǔ)言 - 維基百科,自由的百科全書(shū)》
《精通UNIX下C語(yǔ)言編程與項(xiàng)目實(shí)踐》
圖錄
計(jì)劃表
總結(jié)
我個(gè)人覺(jué)得我們做事情必須要堅(jiān)持,否則同一件事情你失敗兩次,一般你就會(huì)放棄它。所以堅(jiān)持之后,會(huì)有我們意想不到的收獲。
我希望大家也能給我好的建議,幫助我進(jìn)行學(xué)習(xí)。我在C方面是個(gè)典型的菜鳥(niǎo),多多賜教!
本文來(lái)自:川山甲 - 博客園
鏈接:http://t.cn/zWZQ6XO
●本文編號(hào)33,以后想閱讀這篇文章直接輸入33即可。
●輸入m可以獲取到全部文章目錄
聯(lián)系客服