一位碼農的幾點思考

deepinmind發表於2014-04-29

  我們在使用一些很複雜的系統。我母親曾說也許電視機後面就藏著個小矮人,每秒鐘在螢幕上畫出50幅不同的畫,不過她並不關心這個(至少她都知道歐洲的電視機每秒是50幀的)。很多人壓根兒就不在意身邊的電器以及軟體。不過科技的滲透將是大勢所趨。電器會更加便宜,程式設計會更加簡單,很快廁紙都會嵌入一次性的電腦在裡面了(再配上一個好的應用)。臉部識別不再是NSA,CIA,KG或者Mosad的專利了,科技的傳播也不再僅限於像Facebook,Google這樣的大公司了。商店安裝了攝像頭以及人臉識別軟體後可以識別出回頭客,有助於提升商店的銷量。人們開始習慣這些,我們搞IT的當然也一樣,對吧?

  說對了一半。不同之處在於我們會關心這些東西的工作原理是什麼。我們知道螢幕裡面有液晶,它們是通過低壓訊號來進行控制的(至少和以前的CRT屏比起來算低的),電視/烤箱/廁紙(這是未來的了)裡面有個處理器,裡面的程式是用某種程式語言來編寫的,比如說Java。

  我們這些搞Java的在編寫這些應用的時候,不僅會用到語言本身(包括RT),還有一些底層的軟體,框架。底層的這些框架是怎麼工作的?我們需要去了解它們嗎,還是直接去用只要能跑起來就OK了?

對框架了解的越多,你才能用得更好。

  更好意味著更快,更可靠,寫出的程式碼更容易向上相容。但另一方面來說,你得先停下來進行學習然後才能開始使用它。如果你不去實際使用一個框架的話,它的細節你永遠都不會清楚。

  從另一方面來說,如果你對框架不瞭解就開始使用它,就好比在拿一個錘子在挖坑,而不是用鏟去挖。只有我理解這些框架是如何實現的了,使用的時候才能感到比較有信心。這個時候我敢這麼說:

如果我有時間,我可以自己實現這個框架。

  當然我不會這麼做,首先我沒有這麼多時間,其次更重要的是,已經開發得很好的東西,沒必要再去實現一遍。但或許你會覺得:

我可以做得更好。

  我經常聽到一些初級的程式設計師,以及那些自認為已經不是初級程式設計師的人這麼說。正確的態度應該是:

我可以做的更好,但我不會這麼做。因為它已經實現好了,也足夠好用。

  你其實並不需要最好的。你需要的只是一個足夠好的解決方案就可以了。如果已經沒有額外的槓桿就沒必要繼續在這上面進行投資了。即便存在槓桿,但如果和投資其它領域相比要低的話,也沒有必要再在這上面花費精力了。

  說實話,當你能這麼想的時候,也說明你已經是名老鳥了。

  英文連結:http://javax0.wordpress.com/2014/04/24/knowing-the-bits

相關文章