HTML5:大神級程式設計師和普通程式設計師差異分析

aqiandao發表於2016-06-01

  為了瞭解那些大神級程式設計師和普通程式設計師的區別,採訪了很多世界高階科技公司的軟體工程師。發現這些給世界帶來巨大影響的的工程師們至少有以下幾個共同的思維模式:

  首先要勇於去研究自己不懂或不熟悉的程式碼

  一般程式設計師都不願意去研究自己不曾接觸過的程式碼,很多人都沒有嘗試就放棄了。如果你經常去研究你沒有接觸過的程式碼,你就會越來越熟悉不同的程式碼結構和設計模式。現在程式設計師很容易就接觸到優質的開原始碼資源,可以很方便的就下載下來做一些改動或者除錯,去研究為什麼程式碼可以這麼寫。

  除了程式碼之外,很多人對於陌生的工作內容也會感到牴觸。每次換工作的時候,可能都會遇到新公司的工作內容和以前工作的內容不一樣的情況,以至於剛開始的時候,工作效率沒有以前那麼高。

  其實,所有程式設計師都是在學習的過程中成長的。在一個陌生的領域,沒有人可以從一開始就是大神。如果你想在你工作的領域,變得越來越強,無論是寫程式碼,或是與人溝通或者其它的技能,都是需要投入大量時間去學習的。

  精通程式碼除錯

  很多人在寫程式碼的過程中,經常會有的一個問題就是:為什麼寫出來的程式碼不能執行?為什麼執行的結果不是我想要看到的?

  幾乎所有的程式設計師在寫程式碼娿過程中,都不是一遍就能寫好的。但是大神級的程式設計師會很快的就明白自己程式碼的問題。這是一個很重要的能力,需要在工作中日積月累。那麼怎麼去除錯好程式碼呢?以下幾個方法,看文章的你可以借鑑下:

  1.不妨先猜測一下到底發生了什麼。

  2.假設你的猜測是對的,想想你的猜測會導致程式有什麼樣結果。

  3.試著觀察這些結果有沒有異常的地方。

  4.如果你沒有發現異樣,那麼說明你的猜測就是對的。

  5.如果你發現了異樣,那麼說明你的猜測是錯的,接下來換一個猜測試試。

  對於大神級程式設計師來說,這個過程在腦海中就是電光火石的一瞬間。只要你解決的問題足夠多,你做出來的猜測就會越準確。

  至於如何發現異樣?就需要有一套屬於自己的工具或者方法了。最簡單的就是在程式碼裡輸出日誌來判斷。但是這是比較笨的辦法,需要去接觸一些高階的工具或者直接帶有Debug功能的編輯器。

  重視能夠節約時間的工具

  最近打敗人類的AlphaGo(阿爾法)每天可以進行上百萬局的下棋訓練,人類一萬個小時的訓練卻需要10年之久。也就是說,電腦執行幾分鐘,可能就等於人類工作好幾年。這麼一比,人力的思維好渺小。。。

  高效率的程式設計師都把時間花在製作工具上,很多程式設計師也認為工具是很重要的,但是他們並沒有花時間去製作、整合自己的工具。但是,團隊最出色的員工會耗費了他1/3的時間在工具製作上,這些工具可以用來發布程式碼,監控系統,以及能讓他們花更少的時間去做更多事情。

  總之,不要花時間去做沒有意義的事情。

  最佳化你的迭代速度

  假設一下你要花12秒鐘去搜尋某個函式是在哪裡定義的。再假設你每天做這個動作60次,那麼你每天就要花12分鐘去搜尋函式定義。

  如果你用一個好一點的編輯器,每次找到函式定義只要2秒鐘,那麼你每天就會節約10分鐘。每年你就可以節約40個小時。

  如果你能找到3個這樣的場景去最佳化一下,那麼你每年可以節約一個月的時間,想想這一個月你可以做多少有意義的事情啊。

  再假如你在除錯一個App的錯誤的時候,改完一次程式碼都需要重啟一下App,然後點選4、5次才能看到錯誤有沒有改好。那麼你是不是可以先花幾分鐘設定以下,讓App一啟動就轉到顯示錯誤的頁面呢?

  所以千萬不要小看這些瑣碎的細節,改善它們對你的回報是巨大,細節決定成敗啊。

  系統性的思考方式

  當你在寫程式碼的時候,很容易就認為只需要按照需求實現了指定的功能,這個程式碼就可以算是寫完了。但是這其實只是滄海一粟。任何沒有釋出到生產環境的程式碼都不會產生任何價值的。

  如果想寫出真正有影響力的程式碼,需要從整個系統去理解屬於你的工作:

  1.你的程式碼和其他人寫的程式碼在功能上是什麼關係?

  2.你有沒有好好測試你的程式碼?或者其他人是否很容易測試你的程式碼?

  3.為了部署你的程式碼,線上生產環境的程式碼是不是需要改動?

  4.新的程式碼會不會影響到已經執行的程式碼?

  5.在新的功能下,你的目標使用者的行為是不是你所期望的?

  6.你的程式碼有沒有產生商業上的影響?

  這些問題都不是很容易就能回答的,但是在寫程式碼的時候,你需要明白你的程式碼最後會不會得到你想要的結果。

  這些只是大神級程式設計師的一些基本思維方式,如果你想要更詳細的瞭解在國內外一些大公司的大神級程式設計師是如何工作的,就需要你抽出更多的私人時間來學習,參考別人的程式碼是怎麼寫的,以及以一些別人常用的工具是不是和你平時用的不一樣,想要在你所在領域越來越強,只有不斷的努力去學習,才能讓自己立於不敗之地,相約成功,贏在路上。

  http://blog.sina.com.cn/s/blog_7362e71e0102wh0h.html

  http://blog.sina.com.cn/s/blog_7362e71e0102wh0l.html

  http://blog.sina.com.cn/s/blog_7362e71e0102wh0n.html

  http://blog.ifeng.com/article/44890758.html

  http://blog.ifeng.com/article/44890830.html

  http://blog.ifeng.com/article/44890961.html

  

  

  

  

  

  http://blog.ifeng.com/article/44891667.html

  http://club.1688.com/article/60910644.html

  http://club.1688.com/article/60910655.html

  

  

  

  http://blog.tianya.cn/post-7237701-115588338-1.shtml

  

  

  

  

  

  

  http://www.99inf.com/jinrong/qhqq/757503.html

  

  

  http://www.99inf.com/jinrong/qhqq/757527.html

  

  

  

  http://blog.dqccc.com/s/article_6561658.html

  http://blog.dqccc.com/s/article_6561723.html

  http://blog.sina.com.cn/s/blog_7362e71e0102wh34.html

  http://blog.ifeng.com/article/44899854.html

  http://blog.sina.com.cn/s/blog_7362e71e0102wh35.html

  http://blog.ifeng.com/article/44899945.html

  http://blog.ifeng.com/article/44900031.html

  http://blog.sina.com.cn/s/blog_7362e71e0102wh37.html

  http://blog.ifeng.com/article/44900154.html

  

  

  http://run.gmw.cn/blog-1873077-151643.html

  http://run.gmw.cn/blog-1873077-151644.html

  http://club.1688.com/article/60915721.html

  

  

  

  

  

  

  

  

  

  

  

  http://www.99inf.com/jinrong/qhqq/759624.html

  http://www.99inf.com/jinrong/qhqq/759625.html

  

  

  

  http://blog.tianya.cn/post-7237701-115615008-1.shtml

  http://blog.tianya.cn/post-7237701-115615143-1.shtml

  http://blog.tianya.cn/post-7237701-115615251-1.shtml

  http://www.cnblogs.com/biyinjishi/articles/5548461.html

  http://www.cnblogs.com/biyinjishi/p/5548489.html

  http://www.cnblogs.com/biyinjishi/p/5548504.html

  http://blog.chinaunix.net/uid-30065054-id-5738771.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30065054/viewspace-2111828/,如需轉載,請註明出處,否則將追究法律責任。

相關文章