那是時候放下《24小時學會超級騙子語言》之類的書了。相反地,每天問自己一下10個問題,并養(yǎng)成一個習慣吧。
是否有某種模式?
探尋可行與不可行中的模式,能發(fā)現(xiàn)(事物)背后的原理,這些原理則驅動著看似無關的概念和行為。要想對你做的工作有更深的理解,養(yǎng)成問自己“是否有種模式存在?”的習慣吧。
這不僅僅適用于你的代碼。在各類商業(yè)需求的變化中有某種模式嗎?技術進步的方式中有某種模式嗎?你看到同樣的錯誤反復地蹦出來嗎?
理解就是領悟模式。 —— 以賽亞·伯林
我該如何使它變得更簡約?
通常作為web開發(fā)者,我們想提出復雜且可擴展的解決方案。做一些極其復雜的東西,會讓你覺得自己就是宇宙的主宰。而問題是你永遠不能預測到產(chǎn)品和業(yè)務今后會怎樣變化。
“架構”和編寫代碼更像是園藝而不是建筑。你需要有能力去適應不斷變化的環(huán)境,解決方案越復雜,越難以適應。
簡約是復雜的最終形式。 ——列昂納多·達·芬奇
為什么它是那樣工作的?
知道事情運作和知道它運作的原因,這是兩件完全不同的事。如果你知道事情為什么是那樣(運作),那么你就能夠做出更好的決策。
一個優(yōu)秀的程序員和懂一點編程語言的人,差別在于理解緣由的深度。
同樣的原則也適用于修復某個問題。“只需重啟一下服務?!?“你試過重啟嗎?” 當問題發(fā)生時,我們經(jīng)常會想到這些話。每次你這樣說時,你就失去了一個絕好的學習機會。
理解問題的原因,能讓你解決根本原因,并且永久消除這類錯誤。最起碼,你將不再犯同樣的錯誤。
之前有人做過嗎?
無論何時,如果你發(fā)現(xiàn)自己正在發(fā)明一個復雜的算法,你很可能就是方法不對。除非你正忙于研究博士論文,一般已經(jīng)有人解決了這個問題。
需要編寫一個給離用戶鼠標最近的item添加標簽的算法?看看Voronoi Tesselations(泰森多邊形法,多邊形密度)。想要找到卡車送貨的最短路徑?看看Dijkstra算法吧。想要找到用戶輸入內容的近似標記?試試計算它的 Levenschtein 距離吧。
這些只是幾個簡單示例,但相信我,還有很多很多。
如果我看得更遠,那是因為我站在巨人的肩上 ——艾薩克·牛頓
誰最先提到它?
你以為你知道REST嗎?
你有讀過Roy Fielding描述REST的論文原文嗎?你真的明白它的用意嗎?那種比你多 5 分鐘經(jīng)驗的家伙,在IDE v7工具中用 REST API 生成向導寫出來的博客,可不算數(shù)的。
幫自己一個忙,盡可能試著去讀某種概念或理論的原始文檔吧,然后通過各種手段去了解行業(yè)領袖的最新發(fā)展動態(tài)。如果你不知道他們是從哪開始的,你怎么跟得上他們的步伐呢?
我熱愛現(xiàn)在所做的嗎?
編程不簡單,咱們承認吧。
除了難以外,編程還總在不斷發(fā)展。最先進的框架從2年前的“笨重恐龍”已經(jīng)發(fā)展到今天的標準。想要一直站在你的“游戲”頂端,你需要樹立終生學習和研究的觀念。
如果你不熱愛你所做的,那么你就沒有跟上其他家伙的希望。所以找到那種讓你激情燃燒的編程類型吧!不要因為市場缺口或者收入不菲而決定成為一名安全專家,不要因為一篇文章說用戶體驗是最熱門的科技工作而決定成為一名用戶體驗專家。
再說一次,做你熱愛的。
做你熱愛的,所需的資源將隨之而來?!?彼得·麥克威廉斯
我還可以在哪些其他的地方用到這個?
我看到Web開發(fā)者給他們自己設定的最大的一個限制就是,想象力的失敗。
如果我們學習一個特定環(huán)境下的東西,或者看到解決某個特定問題的技術時,我們認為這就它唯一適用的地方。這種觀點大多時候都是錯的。每次學到新東西時,反問自己:“我還可以在哪些其他的地方用到這個?”
發(fā)現(xiàn)了在圖表上定位節(jié)點的新的好方法?將同樣的技術應用于發(fā)現(xiàn)二維數(shù)據(jù)集中有趣的數(shù)據(jù)點?找到了通過websockets從客戶端發(fā)送數(shù)據(jù)到服務器端的新方法?它怎樣才能應用到可擴展的后臺服務上呢?有時你會是錯誤的,但有時你將是正確的。
這給我們帶來了下一個問題……
邏輯可以帶你從A到Z,但想像力可以讓你無處不在。 ——阿爾伯特·愛因斯坦
今天我做錯了什么嗎?
提高創(chuàng)新的最簡單方法之一就是降低失誤的成本。
游戲開發(fā)公司Valve和其他幾個公司很贊同這個觀點。這些也同樣適用于你成為Web開發(fā)者的成長過程。如果你害怕失敗,你就不會有大的突破。
勇敢點、去嘗試、失敗了、去學習,然后再來試試。
不要害怕錯誤,你將認識失敗,然后重新再來?!窘苊鳌じ惶m克林
我們怎樣使它成為可能?
現(xiàn)實中,一切皆有可能,而凡事均有例外。
先開始假設不管你做什么事情都是可行的,然后回推過去來工作。你可能會發(fā)現(xiàn),你想做的暫時是不切實際的,但以當今世界的變化速度,它變得可行的時間,可能比你想的要早。
在事情未成功之前,一切總看似不可能。?——納爾遜·曼德拉
我可以向誰學習?
永遠不要在你是最聰明的地方工作。
挑選擁有可以啟發(fā)你、激勵你做得更好的同事的工作和公司。沒必要和編程有關系,在文本編輯器和命令行之外還有一個世界。從其他領域學習,并應用到你的工作中。
不管怎么樣,保持競爭力更好!
-
開發(fā)工程師
+關注
關注
1文章
91瀏覽量
15129
發(fā)布評論請先 登錄


硬件工程師看了只會找個角落默默哭泣#硬件工程師 #MDD #MDD辰達半導體 #產(chǎn)品經(jīng)理 #軟件工程師






嵌入式工程師常用的開發(fā)工具有哪些?
工程師應該掌握的幾種正確電容放電姿勢



FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區(qū)別?

評論