程式設計師應該捫心自問的10個問題
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
想成為一名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
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 解決問題的能力 > 10倍程式設計師程式設計師
- 來自一個程式設計師的內心世界程式設計師
- Java程式設計師面試時應注意的三個經典問題!Java程式設計師面試
- 一名優秀的程式設計師應該向誰提問程式設計師
- 一個引發程式設計師們幹架的問題程式設計師
- 好程式設計師Java教程分享Java中String型別的10個問題程式設計師Java型別
- 真的要做一輩子的程式設計師嗎?來自10年程式設計師的心聲程式設計師
- 程式設計中對於檔案路徑應該注意的問題程式設計
- 聰明的程式設計師應該知道什麼是最值得解決的問題 - Fagner Brack程式設計師
- 優秀的程式設計師10分鐘內能搞定下面5個程式設計問題,你呢?程式設計師
- 程式設計師應該關心的iOS12新特性一覽程式設計師iOS
- PHP程式設計師解決問題能力的八個級別PHP程式設計師
- 程式設計師面試常問計算機網路問題程式設計師面試計算機網路
- Java程式設計師應該知道的20個有用的庫Java程式設計師
- 針對Java程式設計師的20個Spring MVC訪談問題Java程式設計師SpringMVC
- 每個程式設計師都該閱讀的10本書程式設計師
- @程式設計師,安全問題必須重視!程式設計師
- Java程式設計師面試常見問題Java程式設計師面試
- 每個程式設計師都應該知道的下一個程式語言——Kotlin程式設計師Kotlin
- UI設計中色彩運用應該注意哪些問題UI
- Java程式設計師,你的簡歷到底問題在哪?Java程式設計師
- 面對一個Bug,高手程式設計師是如何解決問題的?程式設計師
- 程式碼設計問題
- Redux的應該注意的問題Redux
- 面試官:集合使用時應該注意哪些問題?我:應該注意該注意的問題!面試
- PHP程式設計師遇到問題的冷門知識點PHP程式設計師
- 好程式設計師分享:Java面試題常見問題程式設計師Java面試題
- 程式設計師應該如何找工作呢?程式設計師
- 程式設計師你應該勇敢說不程式設計師
- 程式設計師應該少做些"工作" - johnwhiles程式設計師While
- 每個程式設計師都應該瞭解的硬體知識程式設計師
- Web前端程式設計師應該遵循的15個開發原則!Web前端程式設計師
- 奇葩的能讓程式設計師抓狂的一些問題程式設計師
- 程式設計師筆記|3個問題帶你入門資料建模程式設計師筆記
- [併發程式設計]-關於 CAS 的幾個問題程式設計
- 面試了一個 5 年 Java 程式設計師,一個問題也不會。。面試Java程式設計師
- 從一個問題中瞭解數學在程式設計中的應用程式設計
- 9月書訊 | 程式設計師最應該知曉的 189 道題程式設計師
- 像程式設計師一樣思考——提高解決問題的能力程式設計師