自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

程序員寫代碼時應該反復問自己的10個問題

移動開發(fā)
你想成為一名優(yōu)秀的程序員嗎?那么,現(xiàn)在是時候放下《24小時學會xxx語言v8.3》超級騙子書,相反,你應當養(yǎng)成每天反問自己以下10個問題的習慣。

[[121299]]

你想成為一名優(yōu)秀的程序員嗎?

那么,現(xiàn)在是時候放下《24小時學會xxx語言v8.3》超級騙子書,相反,你應當養(yǎng)成每天反問自己以下10個問題的習慣。

1.你的代碼中是否有一種模式存在?

找尋模式中的可行與不可行將發(fā)現(xiàn)其中看似無關的想法或基本原則。要對工作達到深入的理解,你必須養(yǎng)成反問自己“是否有一種模式存在?”的習慣。

它不僅僅適用于你的代碼。是否有適應各類型商業(yè)變化的模式嗎?是否有一種適用于技術發(fā)展的模式?你有沒有看到同類型的錯誤如雨后春筍般冒出來?

所謂理解就是要理解模式 — 以賽亞·伯林

2.怎么讓代碼變得更簡單?

開發(fā)者經(jīng)常想得到復雜的和可擴展的解決方案。做一些極為復雜的東西,覺得自己就是自己宇宙的主宰。問題是將來你永遠無法預知產(chǎn)品和業(yè)務會如何改變。

“架構”和代碼更像是園藝而不是建筑。你必須要有能力去適應不斷變化的環(huán)境。越復雜的解決方案越難做。

簡潔是***的復雜 — ?列昂納多·達·芬奇

3.你知道程序為什么要這樣運行嗎?

知道東西像那樣運作和知道為什么會像那樣運作是兩個完全不同的事。如果你知道事情為什么會那樣,那么你就能夠做出更好的決策。

一個偉大的程序員和知道有某種編程語言的人來說,差別在于理解為什么的深度。

同樣的原理也適用于問題修正。“重啟一下服務。” “你試過重啟嗎?” 當有問題發(fā)生時,我們經(jīng)常會想到這些話。每次你這樣說時,你就失去了一個學習的黃金機會。

理解為什么出現(xiàn)這樣的錯誤,將修正根本原因,避免出現(xiàn)治標不治本。最起碼,你以后不要再犯同樣的錯誤。

4.之前有沒有人寫過這樣的代碼?

無論何時,你發(fā)現(xiàn)自己發(fā)明了一個復雜的算法,你很可能走在了錯誤的軌道上。除非你搜索到一份別人正好解決了這個問題博士論文。

需要編寫一個向用戶鼠標旁的item添加標簽的算法?看看VoronoiTesselations. 想要找到卡車送貨的最短路徑?看看Dijkstra. 想要找到用戶輸入內(nèi)容的最接近的標記?應該是找到它的Levenschtein distance.

這只是幾個簡單示例,相信我,它們無處不在。

我能夠看得更遠,那是因為我站在巨人的肩上 — 艾薩克·牛頓

5.你知道這種技術的出處嗎?

你認為你知道REST嗎?

你有讀過Roy Fielding描述REST的論文原文嗎?你真的明白它的最初用意嗎?那種在IDE v7工具中比你多用REST API生成向?qū)?分鐘的家伙寫出來的博客可不算數(shù)的。

幫自己一個忙,試圖去讀概念或原理的原始文檔,然后通過各種手段去了解行業(yè)***的***發(fā)展動態(tài)。如果你不知道他們是從哪些開始的,那就緊跟他們的步伐吧?(不知道他們從哪來,就跟著他們到哪去吧?。?/p>

6.我喜歡現(xiàn)在所做的嗎?

請面對編程其實是很難的。

除了很難以外,編程還是發(fā)展很快的。Art框架從2年前的“笨重恐龍”已經(jīng)發(fā)展到今天的標準。為了站到你“游戲”的頂端,你必須樹立一個終生學習和研究的信念。

如果你不喜歡你所做的,那么你就沒有跟上其他家伙(喜歡自己所做的)的可能。所以找到讓你激情燃燒的編程類型!不要因為市場缺口或者收入不菲而決定成為一名安全專家,不要因為一篇文章說UX是最熱門的職業(yè)而決定成為一名UX專家。

再說一次,做你喜歡的。

做你喜歡的,所需的資源將隨之而來的 — 彼得·麥克威廉斯

7.這些代碼還可以用在其它地方嗎?

我看到程序員***的一個限制就是,自己失敗的想象力。

如果我們學習到一個適應于特定環(huán)境的東西,或者看到解決某個特定問題的技術時,我們認為這就它唯一適用的地方。這是完全錯誤的。每當學到新東西時,反問自己:“其他地方還可以使用嗎?”

當發(fā)現(xiàn)了在圖表上定位節(jié)點的新的偉大的方法時,是不是可以將它應用于二維數(shù)據(jù)集中感興趣數(shù)據(jù)的定位呢?當發(fā)現(xiàn)通過websockets從客戶端發(fā)送數(shù)據(jù)到服務器端的新方法時,它怎么才能應用到可擴展的后臺服務上呢?有時是錯誤的,但有時也是正確的。

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

邏輯只能帶你從A到Z,想像力去可以帶你到任何地方 — 阿爾伯特·愛因斯坦

8.今天有什么做錯的嗎?

增加創(chuàng)收的最簡單方法是降低錯誤的損失。

游戲開發(fā)公司Valve和其他幾個公司很認為這個觀點。這同樣適用你成為web開發(fā)者的進步過程。如果你害怕失敗,你就不會有大的突破。

勇敢、嘗試、失敗、學習然后再來。

不要害怕錯誤,它能讓你認識失敗,然后重新來過。— 本杰明·富蘭克林

9.難道真的沒有辦法嗎?

我們生活在世界上很小的一個地方是不可能的(除了少數(shù)例外)。

假設不管你做的什么事情都是可行的,然后采用向后的方向回推回去。你可能會發(fā)現(xiàn),你想做的暫時是不切實際的,但它足以改變世界,可能變成現(xiàn)實的速度比你想像的還要快。

似乎一切看起來都是不可能,除非你完成它 — 納爾遜曼德拉

10.我可以向誰學習?

永遠不要在一群你在其中是最聰明的人的地方工作。

挑選擁有可以啟發(fā)你、激勵你做得更多的同事的工作和公司。不要與編程扯上關系,在文本編輯器和命令行外面還有一個完整的世界存在。從其他領域?qū)W習,設法應用到你的工作中。

永遠不要滿足于能勝任現(xiàn)有的工作!

本文鏈接:http://www.cocoachina.com/programmer/20141019/9963.html

責任編輯:chenqingxiang 來源: cocoachina
相關推薦

2014-11-10 09:40:56

程序員

2015-09-09 08:38:20

程序員問題

2015-09-09 09:19:42

程序員自問

2017-12-19 20:35:22

程序員中興事件自殺

2016-01-18 11:03:58

程序員搜索技巧

2015-07-02 11:20:17

程序員代碼

2013-12-02 10:10:35

Python工具庫

2017-10-17 12:47:19

2021-03-02 15:31:37

程序員技能開發(fā)者

2013-06-03 11:24:45

程序調(diào)試Java

2011-12-19 09:40:21

程序員

2018-03-06 10:32:51

程序員代碼開發(fā)

2012-04-19 12:50:51

Java

2012-03-13 09:24:30

Java

2013-07-08 10:49:03

程序員代碼看懂代碼

2017-03-06 10:08:23

中級程序員

2015-06-12 11:22:52

程序員程序員跳槽

2015-08-20 09:06:48

程序員

2019-05-15 09:59:24

程序員技能開發(fā)者

2014-03-25 10:35:35

程序員代碼調(diào)試
點贊
收藏

51CTO技術棧公眾號