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