一位碼農的幾點思考
我們在使用一些很複雜的系統。我母親曾說也許電視機後面就藏著個小矮人,每秒鐘在螢幕上畫出50幅不同的畫,不過她並不關心這個(至少她都知道歐洲的電視機每秒是50幀的)。很多人壓根兒就不在意身邊的電器以及軟體。不過科技的滲透將是大勢所趨。電器會更加便宜,程式設計會更加簡單,很快廁紙都會嵌入一次性的電腦在裡面了(再配上一個好的應用)。臉部識別不再是NSA,CIA,KG或者Mosad的專利了,科技的傳播也不再僅限於像Facebook,Google這樣的大公司了。商店安裝了攝像頭以及人臉識別軟體後可以識別出回頭客,有助於提升商店的銷量。人們開始習慣這些,我們搞IT的當然也一樣,對吧?
說對了一半。不同之處在於我們會關心這些東西的工作原理是什麼。我們知道螢幕裡面有液晶,它們是通過低壓訊號來進行控制的(至少和以前的CRT屏比起來算低的),電視/烤箱/廁紙(這是未來的了)裡面有個處理器,裡面的程式是用某種程式語言來編寫的,比如說Java。
我們這些搞Java的在編寫這些應用的時候,不僅會用到語言本身(包括RT),還有一些底層的軟體,框架。底層的這些框架是怎麼工作的?我們需要去了解它們嗎,還是直接去用只要能跑起來就OK了?
對框架了解的越多,你才能用得更好。
更好意味著更快,更可靠,寫出的程式碼更容易向上相容。但另一方面來說,你得先停下來進行學習然後才能開始使用它。如果你不去實際使用一個框架的話,它的細節你永遠都不會清楚。
從另一方面來說,如果你對框架不瞭解就開始使用它,就好比在拿一個錘子在挖坑,而不是用鏟去挖。只有我理解這些框架是如何實現的了,使用的時候才能感到比較有信心。這個時候我敢這麼說:
如果我有時間,我可以自己實現這個框架。
當然我不會這麼做,首先我沒有這麼多時間,其次更重要的是,已經開發得很好的東西,沒必要再去實現一遍。但或許你會覺得:
我可以做得更好。
我經常聽到一些初級的程式設計師,以及那些自認為已經不是初級程式設計師的人這麼說。正確的態度應該是:
我可以做的更好,但我不會這麼做。因為它已經實現好了,也足夠好用。
你其實並不需要最好的。你需要的只是一個足夠好的解決方案就可以了。如果已經沒有額外的槓桿就沒必要繼續在這上面進行投資了。即便存在槓桿,但如果和投資其它領域相比要低的話,也沒有必要再在這上面花費精力了。
說實話,當你能這麼想的時候,也說明你已經是名老鳥了。
英文連結:http://javax0.wordpress.com/2014/04/24/knowing-the-bits
相關文章
- 看完 `Masonry` 原始碼後的幾點思考?原始碼
- 老碼農:關於需求分析的幾點體會
- 人工智慧的幾點思考人工智慧
- 幾年來的碼農經驗
- 最近關於工作的幾點思考
- 關於json的幾點思考JSON
- 有關專案的幾點思考
- 碼農故事:一位中級程式設計師的自白程式設計師
- 寫 Shader 轉場的幾點思考
- 移動端架構的幾點思考架構
- 硬核乾貨:一位菜鳥碼農的架構師“封神”之路!架構
- 關於產品經理的幾點思考?
- [Android] 關於 Model 層的幾點思考(一)Android
- 關於終端業務元件化的幾點思考元件化
- 由“自動播放”事件引發的幾點思考事件
- 蔡暉:10年IT技術生涯的幾點思考
- SaaS 營銷怎麼做?幾點思考
- 演算法社會:“碼農”翻身為“編碼精英”帶來的思考?演算法
- 碼農故事:一位中級程式設計師學習經歷的自白程式設計師
- 關於MES業務系統解耦的幾點思考解耦
- 關於資料庫查詢業務的幾點思考資料庫
- 關於非同步任務設計的幾點思考非同步
- 關於農業種植的若干思考
- 從入門到一位合格的爬蟲師,這幾點很重要爬蟲
- 關於遊戲的幾點思考(2):美、好玩與爽快感遊戲
- 關於未來美顏濾鏡發展的幾點思考
- 【轉載】關於後臺許可權,我的幾點思考
- 關於如何看原始碼的一點思考原始碼
- 對程式碼命名的一點思考和理解
- 談談程式設計師重複造輪子的幾點思考程式設計師
- 阿里玄難:面向不確定性的軟體設計幾點思考阿里
- 工程專案管理與國際慣例接軌的幾點思考(轉)專案管理
- 測試的思考點
- 對 精緻碼農大佬 說的 Task.Run 會存在 記憶體洩漏 的思考記憶體
- 乾淨程式碼的幾個特點 -Xebia
- redo與undo的一點點思考
- 碼農程式碼之外的生存指南
- Android 7.0 startActivity()原始碼解析以及對幾個問題的思考:Android原始碼