程式設計師應該捫心自問的10個問題

2015-09-09    分類:程式設計師人生、首頁精華1人評論發表於2015-09-09

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

想成為一名web開發人員?那麼,扔掉《24小時突擊掌握xx語言》這類騙子書籍。你應該養成一個習慣,每天問問自己下面這10個問題。

1.此處有沒有模式?

研究在哪些情況下行得通,哪些情況下行不通的設計模式,能夠讓我們發現潛在的規則,瞭解看似不相關的概念和行為。為了更深層次地瞭解工作,你需要時不時地問問自己,“此處有沒有設計模式?”。

這句話適用的不只是你的程式碼。在根據業務要求而變的型別變化中有沒有模式?技術發展有沒有模式?你是否經常看到同樣型別的bug連連彈出?

理解其實就是一種感知模式。——以賽亞·伯林

2.如何讓它變得簡單起來?

通常作為web開發人員,我們會想著拿出複雜又可擴充套件的解決方案。搞點複雜的會讓你覺得自己非常的高大上。問題是,你永遠無法預知你的產品和業務在未來將會發生怎樣的改變。

架構和編碼與其說像建造,還不如說更像園藝藝術。你必須得能夠適應不斷變化的環境。解決方案越複雜,它的適應力就越弱。

簡單才是終極的複雜。——達芬奇

3.它為什麼這麼工作?

知道事物能工作,與知道它為什麼這麼工作是兩個完全不同的事情。知道一些事物的行為原因,有助於你做出顯然更好的決策。

偉大的程式設計師,和那些只是知道一門程式語言的人之間的區別是,兩者處於的知識層深度不同,前者深刻地理解其工作原理。

這也適用於修復問題的時候。“只要重新啟動服務即可。”“你重啟了嗎?”當彈出問題的時候,我們往往會說類似於這樣的話。然而,如果你這樣說了,那你就失去了一次學習的黃金機會。

知道為什麼會出現問題,才能從根本上修復問題,才能避免再出現這樣的問題。

4.之前有人做過嗎?

當你自我感覺發明瞭一種複雜演算法的時候,可能就意味著你正在錯誤的道路上了。最好的方法是搜尋其他人是否已經解決了這個問題。
需要寫演算法,以便於新增標籤到最接近使用者滑鼠的選單項中?別急,已經有解救方法了。想為送貨車找一條最短路徑?也已經有解決方法了。想找類似於使用者剛剛enter的標籤,那麼也不用自己絞盡腦汁寫了。

上面這些只是幾個例子,但是相信我,你碰到的問題,別人早就碰到過了。

我能看得更遠,那是因為站在巨人的肩膀上。——牛頓

5.誰第一個提出來的?

你覺得自己知道REST

那麼,你讀過Roy Fielding說明REST的原始檔案嗎,你瞭解它的期望目的嗎?暫且不說那個在IDE V7中使用REST API生成嚮導比你更有經驗的博主了。

所以,告訴自己試著去閱讀概念和理論的原始來源。然後通過各種方法去了解行業思想領袖給出的最新開發成果。如果你不知道是從哪裡開始的,那麼你怎麼理解目前的發展程式呢?

6.我真的熱愛我目前的工作嗎?

首先讓我們面對一個事實:程式設計很難。

即使很難,程式設計也在不斷髮展。如果用現在的標準來看,2年前的框架簡直笨拙地就像一頭恐龍。要想留在這一行,那麼你需要終生致力於學習和研究。

如果你確實不喜歡程式設計,那麼要想跟上那些熱愛的人的步伐,希望並不大。找找你為什麼對她沒有興致的原因。不要因為與市場存在差距或因為待遇還不錯,就決定成為一名安全專家,不要只是因為最近的文章上面評論說,UX是高科技領域中最熱門的職位,就立志成為一個UX專家。

重要的事情說三遍:做自己熱愛的事情。做自己熱愛的事情。做自己熱愛的事情。

做自己熱愛的事情,你所需要的資源也會隨之而來。——彼得·麥克威廉斯

7.還可以用在哪裡?

我發現web開發人員最大的侷限之一就是失敗的想象力。

我們在特定的情況下學習的東西,或看到某種用於解決特定問題的技術,我們往往會認為這就是它們的唯一用途。但是,這個想法基本上都是錯的。每次你學到新的東西的時候,都應該問自己:“還可以用在哪裡?”。

學到了一種超棒的新的定位方法來定點陣圖形節點,那麼它是不是也可以運用到在有2個維度的資料集中查詢某一個資料點?發現一個越過WebSockets從客戶端傳送資料到伺服器的很棒方法?那麼它該如何應用於制定一個可擴充套件系列的後端服務?有時候此路不通,有時候卻是可行的。

邏輯能力能讓你從A到Z,但是想象力卻能讓你去往任何地方。—— 愛因斯坦

8.我敗在哪裡?

最簡單的革新方法就是降低失敗的成本。

遊戲開發公司Valve和它的一些同行就將此當作金科玉律。這同樣適用於web開發人員,如果你害怕失敗,那麼你將永遠不會有大的突破。

勇敢地去嘗試,從失敗中學習,然後再試一次。

不要害怕犯錯。認識失敗。然後從頭來過。——本傑明·富蘭克林

9.如何實現這個目標?

我們生活的世界中只有很少一部分事情是真的完全不可能的。

要抱著自己想做的任何事情都是可能的這樣一種想法去做事。可能你會發現你想做的事不符合當前實際,但隨著世界的不斷進步,它也許比你想象地更快成為了現實。

事情未成功之前,它永遠是看似不可能的。——曼德拉(前南非總統)

10.我可以向誰學習?

不要在你是最聰明的地方工作。

選擇那些擁有能夠激勵你,挑戰你,讓你做得更好的同事的工作和企業。不必與程式碼相關,在文字編輯器和命令列之外還有一個世界。學習其他領域的事情,然後應用於你的工作中。

不管如何,僅僅勝任工作是不夠的。

譯文連結:http://www.codeceo.com/article/10-problems-programmer-ask.html
英文原文:10 Questions Developers Should be Asking Themselves
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章