你想成為一個開發(fā)者/程序員么秤掌?
那是時候放下《24小時學(xué)會超級騙子語言》之類的書了。相反地余素,每天問自己一下10個問題,并養(yǎng)成一個習(xí)慣吧炊昆。
是否有某種模式桨吊?
探尋可行與不可行中的模式,能發(fā)現(xiàn)(事物)背后的原理凤巨,這些原理則驅(qū)動著看似無關(guān)的概念和行為屏积。要想對你做的工作有更深的理解,養(yǎng)成問自己“是否有種模式存在磅甩?”的習(xí)慣吧。
這不僅僅適用于你的代碼姥卢。在各類商業(yè)需求的變化中有某種模式嗎卷要?技術(shù)進(jìn)步的方式中有某種模式嗎渣聚?你看到同樣的錯誤反復(fù)地蹦出來嗎?
理解就是領(lǐng)悟模式僧叉。 —— 以賽亞·伯林
我該如何使它變得更簡約奕枝?
通常作為web開發(fā)者,我們想提出復(fù)雜且可擴(kuò)展的解決方案瓶堕。做一些極其復(fù)雜的東西隘道,會讓你覺得自己就是宇宙的主宰。而問題是你永遠(yuǎn)不能預(yù)測到產(chǎn)品和業(yè)務(wù)今后會怎樣變化郎笆。
“架構(gòu)”和編寫代碼更像是園藝而不是建筑谭梗。你需要有能力去適應(yīng)不斷變化的環(huán)境,解決方案越復(fù)雜宛蚓,越難以適應(yīng)激捏。
簡約是復(fù)雜的最終形式。 ——列昂納多·達(dá)·芬奇
為什么它是那樣工作的凄吏?
知道事情運(yùn)作和知道它運(yùn)作的原因远舅,這是兩件完全不同的事。如果你知道事情為什么是那樣(運(yùn)作)痕钢,那么你就能夠做出更好的決策图柏。
一個優(yōu)秀的程序員和懂一點(diǎn)編程語言的人,差別在于理解緣由的深度任连。
同樣的原則也適用于修復(fù)某個問題蚤吹。“只需重啟一下服務(wù)课梳【嗔荆” “你試過重啟嗎?” 當(dāng)問題發(fā)生時暮刃,我們經(jīng)常會想到這些話跨算。每次你這樣說時,你就失去了一個絕好的學(xué)習(xí)機(jī)會椭懊。
理解問題的原因诸蚕,能讓你解決根本原因,并且永久消除這類錯誤氧猬。最起碼背犯,你將不再犯同樣的錯誤。
之前有人做過嗎盅抚?
無論何時漠魏,如果你發(fā)現(xiàn)自己正在發(fā)明一個復(fù)雜的算法,你很可能就是方法不對妄均。除非你正忙于研究博士論文柱锹,一般已經(jīng)有人解決了這個問題哪自。
需要編寫一個給離用戶鼠標(biāo)最近的item添加標(biāo)簽的算法?看看Voronoi Tesselations(泰森多邊形法禁熏,多邊形密度)壤巷。想要找到卡車送貨的最短路徑?看看Dijkstra算法吧瞧毙。想要找到用戶輸入內(nèi)容的近似標(biāo)記胧华?試試計(jì)算它的 Levenschtein 距離吧。
這些只是幾個簡單示例宙彪,但相信我矩动,還有很多很多。
如果我看得更遠(yuǎn)您访,那是因?yàn)槲艺驹诰奕说募缟?——艾薩克·牛頓
誰最先提到它铅忿?
你以為你知道REST嗎?
你有讀過Roy Fielding描述REST的論文原文嗎灵汪?你真的明白它的用意嗎檀训?那種比你多 5 分鐘經(jīng)驗(yàn)的家伙,在IDE v7工具中用 REST API 生成向?qū)懗鰜淼牟┛拖硌裕刹凰銛?shù)的峻凫。
幫自己一個忙,盡可能試著去讀某種概念或理論的原始文檔吧览露,然后通過各種手段去了解行業(yè)領(lǐng)袖的最新發(fā)展動態(tài)荧琼。如果你不知道他們是從哪開始的,你怎么跟得上他們的步伐呢差牛?
我熱愛現(xiàn)在所做的嗎命锄?
編程不簡單,咱們承認(rèn)吧偏化。
除了難以外脐恩,編程還總在不斷發(fā)展。最先進(jìn)的框架從2年前的“笨重恐龍”已經(jīng)發(fā)展到今天的標(biāo)準(zhǔn)侦讨。想要一直站在你的“游戲”頂端驶冒,你需要樹立終生學(xué)習(xí)和研究的觀念。
如果你不熱愛你所做的韵卤,那么你就沒有跟上其他家伙的希望骗污。所以找到那種讓你激情燃燒的編程類型吧!不要因?yàn)槭袌鋈笨诨蛘呤杖氩环贫鴽Q定成為一名安全專家沈条,不要因?yàn)橐黄恼抡f用戶體驗(yàn)是最熱門的科技工作而決定成為一名用戶體驗(yàn)專家需忿。
再說一次,做你熱愛的。
做你熱愛的贴谎,所需的資源將隨之而來汞扎。—— 彼得·麥克威廉斯
我還可以在哪些其他的地方用到這個擅这?
我看到Web開發(fā)者給他們自己設(shè)定的最大的一個限制就是,想象力的失敗景鼠。
如果我們學(xué)習(xí)一個特定環(huán)境下的東西仲翎,或者看到解決某個特定問題的技術(shù)時,我們認(rèn)為這就它唯一適用的地方铛漓。這種觀點(diǎn)大多時候都是錯的。每次學(xué)到新東西時,反問自己:“我還可以在哪些其他的地方用到這個各谚?”
發(fā)現(xiàn)了在圖表上定位節(jié)點(diǎn)的新的好方法岭参?將同樣的技術(shù)應(yīng)用于發(fā)現(xiàn)二維數(shù)據(jù)集中有趣的數(shù)據(jù)點(diǎn)?找到了通過websockets從客戶端發(fā)送數(shù)據(jù)到服務(wù)器端的新方法包晰?它怎樣才能應(yīng)用到可擴(kuò)展的后臺服務(wù)上呢湿镀?有時你會是錯誤的,但有時你將是正確的伐憾。
這給我們帶來了下一個問題……
邏輯可以帶你從A到Z勉痴,但想像力可以讓你無處不在。 ——阿爾伯特·愛因斯坦
今天我做錯了什么嗎树肃?
提高創(chuàng)新的最簡單方法之一就是降低失誤的成本蒸矛。
游戲開發(fā)公司Valve和其他幾個公司很贊同這個觀點(diǎn)。這些也同樣適用于你成為Web開發(fā)者的成長過程胸嘴。如果你害怕失敗雏掠,你就不會有大的突破。
勇敢點(diǎn)劣像、去嘗試乡话、失敗了、去學(xué)習(xí)驾讲,然后再來試試蚊伞。
不要害怕錯誤,你將認(rèn)識失敗吮铭,然后重新再來时迫。——本杰明·富蘭克林
我們怎樣使它成為可能谓晌?
現(xiàn)實(shí)中掠拳,一切皆有可能,而凡事均有例外纸肉。
先開始假設(shè)不管你做什么事情都是可行的溺欧,然后回推過去來工作喊熟。你可能會發(fā)現(xiàn),你想做的暫時是不切實(shí)際的姐刁,但以當(dāng)今世界的變化速度芥牌,它變得可行的時間,可能比你想的要早聂使。
在事情未成功之前壁拉,一切總看似不可能。?——納爾遜·曼德拉
我可以向誰學(xué)習(xí)柏靶?
永遠(yuǎn)不要在你是最聰明的地方工作弃理。
挑選擁有可以啟發(fā)你、激勵你做得更好的同事的工作和公司屎蜓。沒必要和編程有關(guān)系痘昌,在文本編輯器和命令行之外還有一個世界。從其他領(lǐng)域?qū)W習(xí)炬转,并應(yīng)用到你的工作中辆苔。
不管怎么樣,保持競爭力更好返吻!
寫在最后
- 第一:看完點(diǎn)贊姑子,感謝您的認(rèn)可;
- ...
- 第二:隨手轉(zhuǎn)發(fā)测僵,分享知識街佑,讓更多人學(xué)習(xí)到;
- ...
- 第三:記得點(diǎn)關(guān)注捍靠,每天更新的c逯肌!榨婆!
- ...