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