1. 程式人生 > >思考方法,程式設計師生存之道

思考方法,程式設計師生存之道

本人自2006年開始轉行搞IT,回頭看看也快十年了!小總結一下經驗教訓。

開始幾年特別熱衷於技術本身,所謂技術控。我想所有有熱情的程式設計師都經過這一步。對技術不斷求深求廣求精。

後來喜歡玩設計,技術有一定積累了,就想更大的提高,自然就到了設計階段(最初也學了好多,但是設計這東西必定要基於足夠多的實踐)。這麼又過了幾年。

現在,終於開竅了,經驗如下:

  1. 職場上的成功,不僅依賴技術,更依賴政治,人人都得懂一點
  2. 技術的成功不在於會什麼技術,精通什麼技術,而在於思維的縝密(見標題)
  3. 多從使用者出發,摒棄技術驅動,迎合客戶,才能取得真正成功

個人在1和2上犯了不少錯誤,不過呢,對政治也還是一知半解。今天特來分享一下對於思考方法的總結:

  • 程式設計師每天都在遇到無數的問題,解決問題的關鍵是先找到問題在哪(建議有空看看《你的燈亮著嗎》一書,很有啟發作用)

舉例來說:網站做好了,放在伺服器上,80埠很慢,但是放別的埠就很快。問題在哪?作為程式設計師,應該可以想到所有可能(必須是所有)。既然能跑在別的埠上足夠快,可以說明網站不慢。那麼為什麼慢了?就有兩種大的可能:80埠擁擠或網站配置限制了80埠。展開來講,有可能有別的程式也在用80埠,而且量比較大;也有可能是防火牆進行了限制;也有可能網站本身對特定埠做了限制(可能性較小,因為網站是你自己弄的)……

  • 解決問題要有規劃。

解決問題要在所有可能性的基礎上進行分析,按可能性排序,逐一測試。其中逐一是有技巧的。看看問題能不能使用二分法進行拆分求解,大部分時候可以。比如已知一個非常大的變更導致了問題,那麼到底是什麼部分的問題?這時候,可以把變更一半的內容rollback看有沒有問題,如果仍有問題,說明問題在剩下沒有rollback的程式碼裡,否則在已去除的程式碼裡。把有問題的那一半程式碼留下,重複上面步驟,即可遍歷所有導致問題的可能性。這就是問題查詢的二分法。

好了,今天就吹到這裡。希望對大家也有幫助。