國(guó)內(nèi)的教材你為何如此不堪入目?碼農(nóng)該如何脫離碼農(nóng)?
國(guó)內(nèi)、國(guó)外教材對(duì)比
國(guó)內(nèi)教材:
1、致命缺陷:只有入門,沒(méi)有進(jìn)階,間接導(dǎo)致量產(chǎn)中國(guó)碼農(nóng);
2、入門書的錯(cuò)誤會(huì)給新手帶來(lái)不良編碼習(xí)慣,中國(guó)C語(yǔ)言之父的void main()就是一個(gè)典型例子;
3、許多大學(xué)老師出書都是學(xué)生寫的,錯(cuò)誤連篇;
4、書上舉例1+1=2,到了實(shí)際中要解決;
4、有一些國(guó)外比較好的書,翻譯過(guò)來(lái)往往變了味道,比如《C++變成死相》,不過(guò)也不乏少部分翻譯的不錯(cuò)的書,比如段菲翻譯的DX9那本龍書;
5、入門書介紹的不夠全面,使用的例子過(guò)于教學(xué)化。當(dāng)然,對(duì)于這一點(diǎn)到底好不好,不太好說(shuō),畢竟如果內(nèi)容太多,很多新手會(huì)跟不上。
國(guó)外教材:
1、厚;
2、老外態(tài)度認(rèn)真,內(nèi)容沒(méi)有弄虛作假,而且作者往往有實(shí)際開(kāi)發(fā)或研發(fā)經(jīng)驗(yàn),與國(guó)內(nèi)大學(xué)老師寫書充數(shù)量形成鮮明對(duì)比;
3、入門級(jí)的書會(huì)介紹的比較全面,完整的說(shuō)明所有的用法,或者常用的方案,因而書比較厚,看的時(shí)候***的感受是很多以后可能出現(xiàn)的問(wèn)題,書上都提到了,與上述的國(guó)內(nèi)教材第4點(diǎn)形成鮮明對(duì)比;
4、帶“導(dǎo)論”倆字的書,格外犀利,能夠真正讓別人理解其原理,很多都是N年研發(fā)經(jīng)驗(yàn)的大神寫的,用于入門之后的提高,往往看了以后受益匪淺;
當(dāng)然,不排除確實(shí)有一些比較好的國(guó)內(nèi)的教材,不過(guò)真的太少太少了。另外,雖然譚**的書給我留下了不良編程習(xí)慣,書的質(zhì)量也不如國(guó)外的書,但是對(duì)于大多數(shù)國(guó)內(nèi)學(xué)生入門來(lái)說(shuō),也許是個(gè)不錯(cuò)的選擇。國(guó)外入門書未必適合我們,畢竟國(guó)內(nèi)學(xué)生水平層次不齊。國(guó)外在中學(xué)階段就接觸一些我們?cè)诖髮W(xué)才接觸的東西,等他們上了大學(xué),自然就可以更深入的學(xué)習(xí);反觀中國(guó)學(xué)生,中學(xué)階段辛苦備戰(zhàn)高考,大學(xué)階段才能入門,或者干脆什么都沒(méi)學(xué)四年就過(guò)去了。
國(guó)內(nèi)教材只有入門書,幾乎沒(méi)有能和國(guó)外帶“導(dǎo)論”相提并論的書,這也間接導(dǎo)致了一年又一年計(jì)算機(jī)畢業(yè)生淪落為碼農(nóng)。學(xué)的雜而不精,只能學(xué)習(xí)各種表層技術(shù),這TM叫搞技術(shù)?這是當(dāng)工人做重復(fù)性勞動(dòng)!30之前不轉(zhuǎn)管理自然沒(méi)前途!但如果能夠深入研究技術(shù),而不是不停的更新自己的入門級(jí)技術(shù)的數(shù)量,相信發(fā)展前景應(yīng)該還是不錯(cuò)的。
國(guó)外教材的“導(dǎo)論”很有意思,乍一看,導(dǎo)論,很簡(jiǎn)單吧,其實(shí)正好相反,介紹的相當(dāng)深入。我曾經(jīng)納悶,為毛這種程度的叫導(dǎo)論呢?后來(lái)仔細(xì)想想,不論任何領(lǐng)域,都有相關(guān)廣闊的知識(shí),而一本書的覆蓋面往往是有限的,從這個(gè)角度來(lái)說(shuō),導(dǎo)論知識(shí)介紹了這個(gè)領(lǐng)域的一小部分知識(shí),所以叫導(dǎo)論;但是根據(jù)有名的2 8定律,20%的內(nèi)容可以起到80%的作用,所以雖然只是介紹一小部分內(nèi)容,卻可以對(duì)讀者帶來(lái)相當(dāng)大的幫助。
什么樣的書是好書?
基礎(chǔ)入門:
這個(gè)真心糾結(jié),以C++為例,C++ Primer確實(shí)不錯(cuò),可是估計(jì)新手不行,今天給導(dǎo)師帶C++的實(shí)驗(yàn)課,剛剛開(kāi)始講類,大家亂的一團(tuán)糟,還是實(shí)驗(yàn)班的……所以估計(jì)搞C++ Primer這種教材的話大家應(yīng)該更受不了了;但是如果用國(guó)內(nèi)的教材吧……又會(huì)帶來(lái)很多不良影響,究其根源,個(gè)人認(rèn)為是中、小學(xué)教育的問(wèn)題,如果之前有一些基礎(chǔ),那么可以直接上手C++ Primer了。
專業(yè)入門:
比較好的專業(yè)入門書,很明顯是國(guó)外的教材,比如被稱為龍書的《DirectX 9.0 3D游戲開(kāi)發(fā)編程基礎(chǔ)》,這是少有的原書和翻譯都相當(dāng)不錯(cuò)的一本三維圖形學(xué)入門書;Head First系列的書,想必大家有看過(guò)的,很少會(huì)說(shuō)看不懂吧。既然是入門書,當(dāng)然不能太難,但是必須要有比較形象的例子將內(nèi)容闡述清楚,而且要盡可能的控制深度,避免作者看不懂。
這種類型的書有個(gè)共同的特點(diǎn),那就是看著簡(jiǎn)單,不枯燥,同時(shí)看完以后又能夠?qū)δ骋活I(lǐng)域有個(gè)整體的了解,雖然不是很深入。
專業(yè)進(jìn)階:
在圖形方面讓我感受頗深的是Real-Time Rendering Third Edition,它引用了1400多篇參考文獻(xiàn),將實(shí)時(shí)渲染的主流技術(shù)從算法的層面上進(jìn)行了非常深入的剖析,讓讀者看完以后能夠?qū)σ杂械某墒旒夹g(shù)深入了解,建立起一個(gè)完整的知識(shí)體系架構(gòu)。這種書需要作者真正是搞這方面的研究,并且研究的相當(dāng)深入,否則不可能寫出這么經(jīng)典的書。相信這一層次的書在大體性質(zhì)上應(yīng)該也是類似,能夠讓讀者全面、深入的了解某一領(lǐng)域的知識(shí)。這個(gè)時(shí)候,書中的內(nèi)容正確、全面以及深度就相當(dāng)重要了,而不需要考慮是不是對(duì)讀者來(lái)說(shuō)太難了。如果讀者覺(jué)得太難,可以去看一些更基礎(chǔ)的書。
個(gè)人認(rèn)為,這部分的書對(duì)于碼農(nóng)相當(dāng)重要,如果沒(méi)有這種層次的書,就意味著要不停學(xué)習(xí)各種表層技術(shù),學(xué)習(xí)的內(nèi)容是不會(huì)積累的,發(fā)展前景堪憂;而如果往這方面下功夫了,之前學(xué)習(xí)對(duì)于之后學(xué)習(xí)的內(nèi)容是有積累的,隨著時(shí)間的推移,越學(xué)越深,也就不用擔(dān)心年輕人來(lái)?yè)岋埻肓恕?/span>
為什么國(guó)內(nèi)的書就是寫不好
1、中國(guó)人有急功近利的特點(diǎn),總是希望短、平、快的出成果,質(zhì)量不高是正常的;
2、作者水平問(wèn)題,在大學(xué)扯淡扯幾十年的老師和在MS或者Google干過(guò)N年的老外相比,當(dāng)然是心有余而力不足了;
3、還是作者水平問(wèn)題,在公司里有實(shí)際開(kāi)發(fā)經(jīng)驗(yàn)的老鳥(niǎo),都比較忙,很少有時(shí)間寫書;在大學(xué)里的老師,常常是沒(méi)有實(shí)際開(kāi)發(fā)經(jīng)驗(yàn),自然寫出來(lái)的東西就會(huì)讓人看著覺(jué)得瞎扯淡了。
如何能將書寫好
1、作者的自身水平有待提高,寫書是一個(gè)輸出的過(guò)程,如果腦子沒(méi)貨,那只能扯淡;
2、對(duì)于寫入門級(jí)的書,需要實(shí)際開(kāi)發(fā)經(jīng)驗(yàn);對(duì)于寫Real-Time Rendering Third Edition或者Game Engine Architecture這種深入一些的書,需要作者有實(shí)際的研發(fā)經(jīng)驗(yàn);
3、套話、炒概念、完全正確的廢話少來(lái)點(diǎn)。
碼農(nóng)如何提高自己
不少碼農(nóng)忙于加班,***陷入死循環(huán):加班 -> 沒(méi)空學(xué)習(xí) -> 老是寫同等水平代碼 -> 無(wú)法提升代碼質(zhì)量 -> 老是出BUG -> 老是需要修改 -> 加班 ->……要想破除這個(gè)死循環(huán),關(guān)鍵在于學(xué)習(xí)!當(dāng)然,也可以30歲之前轉(zhuǎn)管理,本文主要針對(duì)技術(shù)路線。學(xué)習(xí)主要有兩個(gè)方面:1、看技術(shù)書籍;2、提高英語(yǔ)水平。
對(duì)于***點(diǎn),我個(gè)人比較推薦朝著某一技術(shù)方向深入研究,而不是不停的學(xué)一些表層技術(shù)。如果不停的追那些新出來(lái)的表層技術(shù),那30歲以后真TM干不過(guò)那幫剛畢業(yè)的小屁孩了……當(dāng)然,這只是我個(gè)人的看法,不喜勿噴。
第二點(diǎn)其實(shí)是配合***點(diǎn)的,因?yàn)橐坏┯⒄Z(yǔ)成為短板,那么一旦深入學(xué)習(xí)的過(guò)程中遇到?jīng)]有中文資料了,那么就會(huì)影響學(xué)習(xí),這是不能容忍的。其實(shí)英語(yǔ)沒(méi)有想象中的那么難,每天抽一點(diǎn)時(shí)間學(xué)一學(xué),從長(zhǎng)期來(lái)看會(huì)有回報(bào)的,這里向大家推薦一個(gè)英語(yǔ)學(xué)習(xí)軟件:Aboboo,完全免費(fèi),還不帶廣告。