開發者們需要自問的 10 個問題

永遠不要在你是最聰明的地方工作。挑選擁有可以啟發你、激勵你做得更好的同事的工作和公司。沒必要和程式有關係,在文本編輯器和命令行之外還有一個世界。從其他領域學習,並應用到你的工作中。
評論
評論

本文轉自伯樂在線 〈 程序員需要自問的 10 個問題 〉。英文出處:Stephen Young

你想成為一個開發者 / 工程師嗎?

那是時候放下《24 小時學會超級騙子語言》之類的書了。相反地

,每天問自己一下 10 個問題,並養成一個習慣吧。

是否有某種模式?

探尋可行與不可行中的模式,能發現(事物)背後的原理,這些原理則驅動著看似無關的概念和行為。要想對你做的工作有更深的理解,養成問自己「是否有種模式存在?」的習慣吧。

這不僅僅適用於你的程式。在各類商業需求的變化中有某種模式嗎?技術進步的方式中有某種模式嗎?你看到同樣的錯誤反覆出現嗎?

理解就是領悟模式。——Isaiah Berlin

我該如何使它變得更簡約?

通常作為 web 開發者,我們想提出複雜且可擴展的解決方案。做一些極其複雜的東西,會讓你覺得自己就是宇宙的主宰。而問題是你永遠不能預測到產品和業務今後會怎樣變化。

「架構
」和編寫程式更像是園藝而不是建築。你需要有能力去適應不斷變化的環境,解決方案越複雜,越難以適應。

簡約是複雜的最終形式。——Leonardo da Vinci

為什麼它是那樣運作的?

知道事情運作和知道它運作的原因,這是兩件完全不同的事。如果你知道事情為什麼是那樣(運作),那麼你就能夠做出更好的決策。

一個優秀的工程師和懂一點程式語言的人,差別在於理解緣由的深度。

同樣的原則也適用於修復某個問題。「只需重啟一下服務。」「你試過重啟嗎?」當問題發生時,我們經常會想到這些話。每次你這樣說時,你就失去了一個絕好的學習機會。

理解問題的原因,能讓你解決根本原因,並且永久消除這類錯誤。最起碼,你將不再犯同樣的錯誤。

之前有人做過嗎?

無論何時,如果你發現自己正在發明一個複雜的演算法,你很可能就是方法不對。除非你正忙於研究博士論文,一般已經有人解決了這個問題。

需要編寫一個給離使用者鼠標最近的 item 添加標籤的算法?看看 Voronoi Tesselations(泰森多邊形法,多邊形密度)。想要找到卡車送貨的最短路徑?看看 Dijkstra 算法吧。想要找到使用者輸入內容的近似標記?試試計算它的 Levenschtein 距離吧。

這些只是幾個簡單示例,但相信我,還有很多很多。

如果我看得更遠,那是因為我站在巨人的肩上——Issac Newton

誰最先提到它?

你以為你知道 REST 嗎?

你有讀過 Roy Fielding 描述 REST 的論文原文嗎?你真的明白它的用意嗎?那種比你多 5 分鐘經驗的傢伙,在 IDE v7 工具中用 REST API 生成嚮導寫出來的部落格,可不算數的。

幫自己一個忙,盡可能試著去讀某種概念或理論的原始文件吧,然後通過各種手段去了解行業領袖的最新發展動態。如果你不知道他們是從哪開始的,你怎麼跟得上他們的步伐呢?

我熱愛現在所做的嗎?

程式不簡單,讓我們承認吧。

除了難以外,程式還總在不斷發展。最先進的框架從 2 年前的 “笨重恐龍” 已經發展到今天的標準。想要一直站在你的 “遊戲” 頂端,你需要樹立終生學習和研究的觀念。

如果你不熱愛你所做的,那麼你就沒有跟上其他傢伙的希望。所以找到那種讓你激情燃燒的

程式類型吧!不要因為市場缺口或者收入不菲而決定成為一名安全專家,不要因為一篇文章說使用者體驗是最熱門的科技工作而決定成為一名使用者體驗專家。

再說一次,做你熱愛的。

做你熱愛的,所需的資源將隨之而來。—— Peter McWilliams

我還可以在哪些其他的地方用到這個?

我看到 Web 開發者給他們自己設定的最大的一個限制就是,想像力的失敗。

如果我們學習一個特定環境下的東西,或者看到解決某個特定問題的技術時,我們認為這就它唯一適用的地方。這種觀點大多時候都是錯的。每次學到新東西時,反問自己:「我還可以在哪些其他的地方用到這個?」

發現了在圖表上定位節點的新的好方法?將同樣的技術應用於發現 2D 數據集中有趣的數據點?找到了通過 websockets 從客戶端發送數據到服務器端的新方法?它怎樣才能應用到可擴展的後台服務上呢?有時你會是錯誤的,但有時你將是正確的。

這給我們帶來了下一個問題……

邏輯可以帶你從 A 到 Z,但想像力可以讓你無處不在。——Albert Einstein

今天我做錯了什麼嗎?

提高創新的最簡單方法之一就是降低失誤的成本。

遊戲開發公司 Valve 和其他幾個公司很贊同這個觀點。這些也同樣適用於你成為 Web 開發者的成長過程。如果你害怕失敗,你就不會有大的突破。

勇敢點、去嘗試、失敗了、去學習,然後再來試試。

不要害怕錯誤,你將認識失敗,然後重新再來。——Benjamin Franklin

我們怎樣使它成為可能?

現實中,一切皆有可能,而凡事均有例外。

先開始假設不管你做什麼事情都是可行的,然後回推過去來工作。你可能會發現,你想做的暫時是不切實際的,但以當今世界的變化速度,它變得可行的時間,可能比你想的要早。

在事情

未成功之前,一切總看似不可能。——Nelson Mandela

我可以向誰學習?

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

挑選擁有可以啟發你、激勵你做得更好的同事的工作和公司。沒必要和程式有關係,在文本編輯器和命令行之外還有一個世界。從其他領域學習,並應用到你的工作中。

不管怎麼樣,保持競爭力更好!

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

精選熱門好工作

客服專員 擴大徵才中

樂購蝦皮股份有限公司
臺北市.台灣

獎勵 NT$15,000

Backend 工程師

Omlet Arcade 美商歐姆雷特
臺北市.台灣

獎勵 NT$15,000

高階 SRE 專家 / Sr. SRE

奔騰網路科技有限公司
臺北市.台灣

獎勵 NT$15,000

評論