這兩天每天中午午休前都會看一些《編程人生》。現(xiàn)在已經(jīng)看了七八個人,這些人開始編程的時候,正好是計(jì)算機(jī)的起步期,所以對整個計(jì)算機(jī)的底層都比較了解。不知道這是不是這些人能夠成為大師的一個必要條件,自己有沒有必要在這方面努力一下。我想這也是很多程序員思考過的問題。現(xiàn)在分享一下我的思考,和大家一起探討?!猵s:這些人大部分在中學(xué)的時候就開始編程,而那個時候我們一般都正在為考試悶頭學(xué)習(xí),這個差距要我們現(xiàn)在來彌補(bǔ)。
好的,首先有必要澄清一下“底層知識”的概念,對程序員來說什么才是底層知識?
一般情況下,我們可能會認(rèn)為底層知識就是操作系統(tǒng),編譯器,寄存器等等相關(guān)知識。我認(rèn)為這個問題是相對的,而不是絕對的。這取決于程序員從事那個層次的開發(fā)工作。如果是一個c語言開發(fā)者,把這些知識歸為底層知識也許很合理,但是對一個java或者更高級語言的開發(fā)者來說,有些不準(zhǔn)確,或者不可以稱為直接的底層知識。
我認(rèn)為,所謂的底層知識,是指他編程或開發(fā)所依賴的平臺(或者框架,工具)的知識。比如,對于java開發(fā)者來說,java虛擬機(jī),以及它所用的框架等知識就是他的底層知識,而更底層的知識,姑且叫它間接的底層知識吧。
為什么要學(xué)習(xí)底層知識?
不學(xué)習(xí)底層知識可能不會阻礙你稱為一個稱職的程序員,但也許會阻礙你成為一個優(yōu)秀的程序員。
了解底層的知識有助于解決問題,并且做出更好的設(shè)計(jì)。打個比方,就像庖丁解牛,他看到一個牛后,不止看到的是牛,而是由各個骨骼,經(jīng)絡(luò),肌肉等模塊組成的有機(jī)體——整個系統(tǒng)對你來說就是赤裸裸的,沒有任何神秘的面紗。這樣也許能夠給程序員提供更多的安全感。
但是如果你編程所依賴的平臺需要你去了解更底層的知識才能夠解決問題,那么,他可能沒有做好他應(yīng)盡的職責(zé)。
底層知識從何學(xué)習(xí)?
《編程人生》中有一個人提到過,要敢于去“打開盒子”,看里面到底是什么。而我要補(bǔ)充的是,盡量去打開你身邊的盒子。
現(xiàn)在開發(fā)有個特點(diǎn),就是分工越來越明確,而且整個編程的知識體系結(jié)構(gòu)也越來越龐大,我們面前的“盒子”很多,我們沒有精力去把每個盒子都打開。學(xué)習(xí)底層知識就要從你最直接的底層開始學(xué)起。一方面,你在工作中會遇到類似的問題,有了需求,學(xué)習(xí)效率就會高很多;另一方面,你也有這方面的基礎(chǔ),學(xué)起了可能更加的水到渠成。
當(dāng)你把你的底層知識征服了,你就有資本(基礎(chǔ),能力)去征服更底層的知識了。
-
程序員
+關(guān)注
關(guān)注
4文章
953瀏覽量
29825
發(fā)布評論請先 登錄
相關(guān)推薦
評論