WEB開發者應該反問自己的10個問題
你想成為一個web開發者嗎?
你想成為一名web開發者嗎?
那麼,現在是時候放下《24小時學會超級騙子語言v8.3》書,相反,你應當養成每天反問自己以下10個問題的習慣。
是否有一種模式存在?
找尋模式中的可行與不可行將發現其中看似無關的想法或基本原則。要對工作達到深入的理解,你必須養成反問自己“是否有一種模式存在?”的習慣。
它不僅僅適用於你的程式碼。是否有適應各型別商業變化的模式嗎?是否有一種適用於技術發展的模式?你有沒有看到同型別的錯誤如雨後春筍般冒出來?
理解就是理解模式 -- 以賽亞·伯林
怎麼讓它變得更簡單?
開發者經常想得到複雜的和可擴充套件的解決方案。做一些極為複雜的東西,覺得自己就是自己宇宙的主宰。問題是將來你永遠無法預知產品和業務會如何改變。
“架構”和程式碼更像是園藝而不是建築。你必須要有能力去適應不斷變化的環境。越複雜的解決方案越難做。
簡潔是終極的複雜 -- 列昂納多·達·芬奇
東西為什麼像那樣運作?
知道東西像那樣運作和知道為什麼會像那樣運作是兩個完全不同的事。如果你知道事情為什麼會那樣,那麼你就能夠做出更好的決策。
一個偉大的程式設計師和知道有某種程式語言的人來說,差別在於理解為什麼的深度。
同樣的原理也適用於問題修正。“重啟一下服務。” “你試過重啟嗎?” 當有問題發生時,我們經常會想到這些話。每次你這樣說時,你就失去了一個學習的黃金機會。
理解為什麼出現這樣的錯誤,將修正根本原因,避免出現治標不治本。最起碼,你以後不要再犯同樣的錯誤。
之前有沒有人做過?
無論何時,你發現自己發明了一個複雜的演算法,你很可能走在了錯誤的軌道上。除非你搜尋到一份別人正好解決了這個問題博士論文。
需要編寫一個向使用者滑鼠旁的item新增標籤的演算法?看看Voronoi Tesselations. 想要找到卡車送貨的最短路徑?看看Dijkstra. 想要找到使用者輸入內容的最接近的標記?應該是找到它的Levenschtein distance.
這只是幾個簡單示例,相信我,它們無處不在。
如果我看得更遠,那是因為我站在巨人的肩上 -- 艾薩克·牛頓
誰最先提到它?
你認為你知道REST嗎?
你有讀過Roy Fielding描述REST的論文原文嗎?你真的明白它的最初用意嗎?那種在IDE v7工具中比你多用REST API生成嚮導5分鐘的傢伙寫出來的部落格可不算數的。
幫自己一個忙,試圖去讀概念或原理的原始文件,然後通過各種手段去了解行業領袖的最新發展動態。如果你不知道他們是從哪些開始的,那就緊跟他們的步伐吧?(不知道他們從哪來,就跟著他們到哪去吧!)
我喜歡現在所做的嗎?
請面對程式設計其實是很難的。
除了很難以外,程式設計還是發展很快的。Art框架從2年前的“笨重恐龍”已經發展到今天的標準。為了站到你“遊戲”的頂端,你必須樹立一個終生學習和研究的信念。
如果你不喜歡你所做的,那麼你就沒有跟上其他傢伙(喜歡自己所做的)的可能。所以找到讓你激情燃燒的程式設計型別!不要因為市場缺口或者收入不菲而決定成為一名安全專家,不要因為一篇文章說UX是最熱門的職業而決定成為一名UX專家。
再說一次,做你喜歡的。
做你喜歡的,所需的資源將隨之而來的 -- 彼得·麥克威廉斯
其他地方還可以使用嗎?
我看到web開發者最大的一個限制就是,自己失敗的想象力。
如果我們學習到一個適應於特定環境的東西,或者看到解決某個特定問題的技術時,我們認為這就它唯一適用的地方。這是完全錯誤的。每當學到新東西時,反問自己:“其他地方還可以使用嗎?”
當發現了在圖表上定位節點的新的偉大的方法時,是不是可以將它應用於二維資料集中感興趣資料的定位呢?當發現通過websockets從客戶端傳送資料到伺服器端的新方法時,它怎麼才能應用到可擴充套件的後臺服務上呢?有時是錯誤的,但有時也是正確的。
這給我們帶來了下一個問題......
邏輯只能帶你從A到Z,想像力去可以帶你到任何地方 --- 阿爾伯特·愛因斯坦
今天有什麼做錯的嗎?
增加創收的最簡單方法是降低錯誤的損失。
遊戲開發公司Valve和其他幾個公司很認為這個觀點。這同樣適用你成為web開發者的進步過程。如果你害怕失敗,你就不會有大的突破。
勇敢、嘗試、失敗、學習然後再來。
不要害怕錯誤,認識失敗,然後重新來過。--- 本傑明·富蘭克林
怎麼使它變成可能?
我們生活在世界上很小的一個地方是不可能的(除了少數例外)。
假設不管你做的什麼事情都是可行的,然後採用向後的方向回推回去。你可能會發現,你想做的暫時是不切實際的,但它足以改變世界,可能變成現實的速度比你想像的還要快。
直到完成前,似乎都還是不可能的 --- 納爾遜曼德拉
我可以向誰學習?
永遠不要在你是最聰明的地方工作。
挑選擁有可以啟發你、激勵你做得更多的同事的工作和公司。不要與程式設計扯上關係,在文字編輯器和命令列外面還有一個完整的世界存在。從其他領域學習,設法應用到你的工作中。
不管怎麼樣,比稱職更好!
最初發表於 aestheticio.com 3/9,2014
相關文章
- 開發網校原始碼時應該注意的幾個問題原始碼
- iOS 開發者該認真思考的「三個問題」| 掘金年度徵文iOS
- 使用 Chrome 開發者工具的 lighthouse 功能分析 web 應用的效能問題ChromeWeb
- 應聘高階前端開發,應該注意哪些問題?前端
- win10 上使用GIT慢的問題,或者命令列反應慢的問題Win10Git命令列
- Redux的應該注意的問題Redux
- 面試官:集合使用時應該注意哪些問題?我:應該注意該注意的問題!面試
- web開發的跨域問題詳解Web跨域
- WEB應用訪問緩慢的問題定位Web
- 移動 web 開發幾個明顯的相容性問題Web
- Java Web開發中文亂碼問題JavaWeb
- 面試反問問題面試
- 每個開發者都應該知道的33個JavaScript概念JavaScript
- Python面試最常問的10個問題Python面試
- Web前端開發應該避免的幾個思維誤區Web前端
- 關於理財你最應該知道幾個問題
- 開發以太坊遇到的幾個問題
- fastadmin自己遇到的問題AST
- 每個 Java 開發者都應該知道的 5 個註解Java
- 從零開始, 開發一個 Web Office 套件(4):新的問題—— z-indexWeb套件Index
- 學好web前端開發要注意哪些問題Web前端
- es6應該搞清楚的問題
- 開發觸控式螢幕的頁面時應該注意些什麼問題?
- 2020-10-10: 傳統JDBC開發存在的問題?JDBC
- PHP開發者應該學習、會用10個PHP7新特性PHP
- 業內觀察家談遊戲產品開發應該先關注的9個視角問題遊戲
- 每個開發者都應該使用的VSCode外掛 - tvkoushikVSCode
- 技術面試應該問些什麼?應聘者應該如何應對?面試
- Laravel 個人開發常見問題Laravel
- 需要避免的6個雲原生開發問題
- 生活服務app開發的三個問題APP
- 開放世界遊戲仍然存在的10個問題遊戲
- 10個最常見的JavaScript問題JavaScript
- 每個 Kubernetes 應聘者應該知道的 5 個面試題面試題
- 開發者談9個問題挑戰你的遊戲新創意遊戲
- C語言初學者最常問的幾個問題C語言
- javaweb中自己遇到的問題JavaWeb
- Web前端程式設計師應該遵循的15個開發原則!Web前端程式設計師
- 如何應對軟體開發中的估算問題?