如何學(xué)好C語言尖淘?為什么會有學(xué)的既不深,也不扎實(shí)著觉,半吊子的感覺
我相信村生,這可能是很多朋友的問題,我以前也有這樣的感覺饼丘,編程編到一定的時候趁桃,發(fā)現(xiàn)能力到了瓶頸,既不深肄鸽,也不扎實(shí)卫病,半吊子。比如:你長期地使用Java和.NET 典徘,這些有虛擬機(jī)的語言對于開發(fā)便利是便利蟀苛,但是對于程序員來說可能并不太好,原因有兩個:
虛擬機(jī)屏蔽了操作系統(tǒng)的系統(tǒng)調(diào)用逮诲,以及很多底層機(jī)制帜平。
大量的封裝好的類庫也屏蔽了很多實(shí)現(xiàn)細(xì)節(jié)。
一段時間后汛骂,你會發(fā)現(xiàn)你知其然罕模,不知所以然评腺。帘瞭。我以前在CSDN上寫過一篇文章,提到過(有譏諷的語氣)Java的程序員不懂底層實(shí)現(xiàn)蒿讥,所以很難把技術(shù)學(xué)得更扎實(shí)蝶念。此時抛腕,一部分程序員會不自然地想學(xué)學(xué)底層的技術(shù),很自然的媒殉,C語言就被提了上來担敌。
下面是我給大家的一些建議:
小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六二七,零一二廷蓉,四六四 】全封,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)桃犬!裙內(nèi)有開發(fā)工具刹悴,很多干貨和技術(shù)資料分享!
鼓勵并為你叫好攒暇。我鼓勵你想要去學(xué)C語言的想法和精神土匀,很多人都覺得C語言好學(xué),其實(shí)并不然形用。(你可以看看《C語言的迷題》)現(xiàn)在的這個社會更多地去關(guān)注那些時髦的技術(shù)就轧,而忽略了這個流行了40+年的C語言。一門技術(shù)如果能夠流行40多年田度,這才是你需要去關(guān)注和學(xué)習(xí)的技術(shù)妒御,而不是那些剛出來的技術(shù)(過度炒作的技術(shù),Windows編程史)每币。這才是踏踏實(shí)實(shí)的精神携丁。
不要找借口。這一條路走下來并不容易兰怠,不要給自己找借口梦鉴。我最不喜歡聽到的就是“很忙,沒有時間”這樣的借口揭保。我以前在銀行做項目肥橙,早9點(diǎn)到晚10點(diǎn),周一到周六秸侣,我一樣可以每天抽1個小時來看書和專研存筏,一年下來也能精讀5、6本書味榛。我現(xiàn)在的工作項目和招聘任務(wù)很緊張椭坚,剛生的小孩只有自己和老婆兩人帶,還需要準(zhǔn)備講課搏色,但是我還是能夠找到時間看文章寫文章維護(hù)酷殼善茎。所以,我可以告訴你频轿,“時間就像乳溝垂涯,只要你肯擠烁焙,就一定會有”。
學(xué)好C語言和系統(tǒng)編程耕赘。我認(rèn)為骄蝇,學(xué)好編程有四個方面:語言、算法和數(shù)據(jù)結(jié)構(gòu)操骡、系統(tǒng)調(diào)用和設(shè)計九火。
語言。我可以告訴你C語言有兩大主題你要好好學(xué)册招,一個是內(nèi)存管理吃既,一個是指針!這個世界上90%以上的C/C++出的嚴(yán)重性錯誤全是和這兩個有關(guān)跨细。不要看譚浩強(qiáng)的那本書鹦倚,那本是本爛書。推薦這本書給你《C程序設(shè)計語言(第2版·新版)》
算法和數(shù)據(jù)結(jié)構(gòu)冀惭。我認(rèn)為震叙,用C語言實(shí)現(xiàn)算法和數(shù)據(jù)結(jié)構(gòu)莫過于最爽的事情。推薦你看這本書——算法:C語言實(shí)現(xiàn)(第1~4部分)基礎(chǔ)知識散休、數(shù)據(jù)結(jié)構(gòu)媒楼、排序及搜索(原書第3版),還有那本經(jīng)典的《算法導(dǎo)論》
系統(tǒng)編程戚丸。Windows下推薦兩本書——《Windows 程序設(shè)計 》和《Windows核心編程》划址,Unix/Linux下推薦兩本書——《Unix高級環(huán)境編程》和《Unix網(wǎng)絡(luò)編程卷1,套接字》《Unix網(wǎng)絡(luò)編程卷2限府,進(jìn)程間通信》尤其是《Unix網(wǎng)絡(luò)編程》這本書夺颤,一通百通,無論Windows還是Unix/Linux胁勺,都是一樣的世澜。
系統(tǒng)設(shè)計。關(guān)于設(shè)計方面署穗,我全力推薦《Unix編程藝術(shù)》寥裂,看完以后,你就明白什么是真正的編程文化了案疲。然后封恰,當(dāng)你看到Windows的Fans的某些言論時,你就知道什么叫一笑了之了褐啡。
如果你能在2-3年內(nèi)精讀完這些書诺舔,并全部融會貫通,那么你就明白什么是一覽眾山小的感覺了!我足足花了5年時間才算是真正全部讀完這些書的混萝。最后,祝你好運(yùn)萍恕!努力逸嘀!
個人總結(jié)
小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六二七,零一二允粤,四六四 】崭倘,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)类垫!裙內(nèi)有開發(fā)工具司光,很多干貨和技術(shù)資料分享!
我想悉患,這篇文章主要想告訴大家這么幾件事:
編程編到一定時候残家,你就需要了解底層系統(tǒng)的機(jī)制,否則售躁,知其然不知所以然坞淮。
我沒有否定非C的程序員的邏輯,真正的邏輯是——如果你想要了解底層機(jī)制陪捷,請學(xué)習(xí)C語言和操作系統(tǒng)回窘。
40多年的Unix/C影響深遠(yuǎn)。包括影響了Windows市袖。如果你想一通百通啡直,一定要了解Unix。那是計算機(jī)文化真正的根苍碟。
不要膚淺地去思考問題酒觅。比如,不要以為一個DBA就不會考慮數(shù)據(jù)庫引擎的內(nèi)存頁面的問題微峰。也不要以為Web程序員就不需要了解后臺的服務(wù)器和腳本的運(yùn)行性能以及TCP/IP的問題阐滩。
高手往往都是有很強(qiáng)的系統(tǒng)的基礎(chǔ)知識的,表面的東西永遠(yuǎn)是膚淺的县忌。