程式設計師是否需要學習底層知識

熊貓夜未眠發表於2011-09-21

原文連結:enter link description here 作者:chgaowei

程式設計師是否需要學習底層知識?

這兩天每天中午午休前都會看一些《程式設計人生》。現在已經看了七八個人,這些人開始程式設計的時候,正好是計算機的起步期,所以對整個計算機的底層都比較瞭解。不知道這是不是這些人能夠成為大師的一個必要條件,自己有沒有必要在這方面努力一下。我想這也是很多程式設計師思考過的問題。現在分享一下我的思考,和大家一起探討。——ps:這些人大部分在中學的時候就開始程式設計,而那個時候我們一般都正在為考試悶頭學習,這個差距要我們現在來彌補。

好的,首先有必要澄清一下“底層知識”的概念,對程式設計師來說什麼才是底層知識?

一般情況下,我們可能會認為底層知識就是作業系統,編譯器,暫存器等等相關知識。我認為這個問題是相對的,而不是絕對的。這取決於程式設計師從事那個層次的開發工作。如果是一個c語言開發者,把這些知識歸為底層知識也許很合理,但是對一個java或者更高階語言的開發者來說,有些不準確,或者不可以稱為直接的底層知識。

我認為,所謂的底層知識,是指他程式設計或開發所依賴的平臺(或者框架,工具)的知識。比如,對於java開發者來說,java虛擬機器,以及它所用的框架等知識就是他的底層知識,而更底層的知識,姑且叫它間接的底層知識吧。

為什麼要學習底層知識?

不學習底層知識可能不會阻礙你稱為一個稱職的程式設計師,但也許會阻礙你成為一個優秀的程式設計師。

瞭解底層的知識有助於解決問題,並且做出更好的設計。打個比方,就像庖丁解牛,他看到一個牛後,不止看到的是牛,而是由各個骨骼,經絡,肌肉等模組組成的有機體——整個系統對你來說就是赤裸裸的,沒有任何神祕的面紗。這樣也許能夠給程式設計師提供更多的安全感。

但是如果你程式設計所依賴的平臺需要你去了解更底層的知識才能夠解決問題,那麼,他可能沒有做好他應盡的職責。

底層知識從何學習?
《程式設計人生》中有一個人提到過,要敢於去“開啟盒子”,看裡面到底是什麼。而我要補充的是,儘量去開啟你身邊的盒子。

現在開發有個特點,就是分工越來越明確,而且整個程式設計的知識體系結構也越來越龐大,我們面前的“盒子”很多,我們沒有精力去把每個盒子都開啟。學習底層知識就要從你最直接的底層開始學起。一方面,你在工作中會遇到類似的問題,有了需求,學習效率就會高很多;另一方面,你也有這方面的基礎,學起了可能更加的水到渠成。

當你把你的底層知識征服了,你就有資本(基礎,能力)去征服更底層的知識了。

不學習最底層的知識是否會阻礙成為大師?

思考中。

發現我對學習本身的投入超過了對學習內容的投入。不知道是好事還是壞事。總之,要專心學習技術了。

相關文章