前方高能!這可能是一張會顛覆你編程學習的思維圖!

微信號:大數據文摘

微信號:BigDataDigest

大數據文摘作品,轉載具體要求見文末

編譯團隊|璐 張伯楠

最近幾幅精彩的關於2017年網頁開發者所採用技術的可視化圖出現在了網路上。下圖(偏向後端開發)就是其中之一。

這些對於新手和專家都是超讚的資源。圖裡面清晰地展示了如想從事前端網頁開發員、後端網頁開發員或者系統管理員工作,所需要了解的一切技術。

而我相信這些對於剛開始學習人生頭幾行代碼的純新手是尤其有用的。

下面就是我這麼想的理由。

我編程已經超過15年(從8歲時使用QBASIC遊戲開始)。我認為我是一個全棧工程師,作為一個全棧工程師,上面可視化圖表中出現的每一項內容我都或多或少地有所了解。

現在好好看看這些圖片。你覺得它看起來很嚇人,對不對?但是成為一個開發者,這並不是一張你需要全都知道的圖譜。完全不是!你真的覺得我——或者任何開發人員——真的知道怎麼使用全部這些東西嗎?

臣妾做不到!

當你剛剛開始接觸電腦編程的時候,這些知識完全過多了。你可能聽說過有學生能用10種語言編程,見過傳說中的Linux專家,或者學習大量的計算機科學概念嘗試跟上你的導師速度。就像其他成千上萬的人一樣,你很可能犯了一個非常可以理解的錯誤:你覺得你需要知道關於編程的一切。

但你並不需要這麼做。而且沒有人會期待你做到這點。

即便做過幾年的開發人員之後,我只在那些圖片中一小部分技術能夠達到「精通」的水平。其中的一些我甚至不知道是什麼!我曾經在不同的項目上用過它們中的大概一半,但是75%的這種使用情況在我的一生中都不超過1小時。

但是如果你讓我坐下來學習一個小時,我很可能能夠使用。這是因為我知道怎麼像一個開發者一樣去學習。

作為一個開發者,如果你嘗試在每個新技術上都保持在最前列你會常常鎩羽而歸。他們實在是太多了,並且比以往變化的都快。最好的方法是,你可以選擇一些技術隨時留意最新變化。

所以,你應該學習怎麼像一個開發者一樣去學習,而不是把你的時間花在學習每一個語言和技術上。下面來解釋一下:

學習怎麼看介紹文檔

這裡(https://docs.python.org/3/tutorial/inputoutput.html#methods-of-file-objects)有一個Python文件輸入和輸出的例子。這裡(https://golang.org/pkg/io/ioutil/)在golang上有一個類似的例子。

看見相似點了嗎?當你嘗試回答下列這些問題的時候,范例代碼、簡短的總結、以及類型接口(如果你幸運的話)將是你最好的夥伴。

  • 「這些程序包能否完成我想做的事?」

  • 「我怎麼做到我想做的?」

  • 「這裡有沒有更好的方法來達到我心中預設的目標?」

學習如何閱讀源代碼

本鏈接(https://github.com/python/cpython/blob/3.6/Lib/json/encoder.py)是JSON編碼器在Python的應用。如果這個程序包的一些地方運行的與你預期不同,或者介紹文檔缺失,讀一讀源代碼會讓你找到答案,盡管(常常)格式不是很親切。

一些小技巧我發現很有用:

  • Github的代碼檢索工具。

  • 讓你看到源代碼的交互工具(比如Ruby的Pry)。

  • 拷貝開源項目並且加入調試語句來看它們如何運行。

學習怎麼調試程序

調試器、中斷語句、列印語句!學習怎麼運用它們來修正你程序中的問題,因為這將是你花時間最多的地方。記住這些有用的東西:

  • 當你開始調試一個程序錯誤,盡可能多的考慮外部因素。要是代碼完全沒有問題,而是跑代碼的服務器有問題怎麼辦?或者一些數據的格式錯了呢?如果不能馬上發現代碼的問題,你可能考慮錯了方向。

  • 休息一下。當你調試程序的時候,你很容易就只關注你覺得有問題的部分,完全忽視了真正存在錯誤的地方。讓自己休息一會,別忘了你的大腦實際上只是一系列互相連接的線路,所以如果你在一條路徑上走的太遠,大腦很難跳到另外一條平行的線路上,而可能這條線路才是你實際上尋找的。所以站起來,想想別的事,清空你的大腦。當你回來的時候,程序漏洞將會直直的盯著你的臉。我保證。

  • 程序(絕大部分)總是正確的。它完全按照你的指令運行,這點有好處也有壞處。你需要找你(或者其他人)在哪裡讓它去做了錯誤的事情。

學習如何尋求幫助

這件事並不像聽著那樣掉價。有大量的非常棒的地方可以給你提供幫助,讓你走出困境。我一般會依次看:

  • Google

  • StackOverflow(http://stackoverflow.com/)網站(常常在Google看到)

  • 程序包的Github問題部分

當你請教別人的時候,最好能記住下面的內容:

  • 幫助的人對你的問題了解的並不充分(如果有些了解的話)。給他們必要的背景解釋,但是不要說得過於繁雜。這代表你需要介紹你部分的代碼,應用程序日志,程序配置,或者你案例中任何細微的調整。

  • 保持文檔整潔。去讀一篇充滿拼寫錯誤,無格式的代碼,或者沒有結尾的問題描述的錯誤報告,是很困難的。

  • 不要上傳敏感代碼。再三檢查你的貼上去的密碼,訪問令牌和用戶數據。如果確實犯了錯誤,你要承擔責任並且馬上解決它。

結語

作為一個開發人員,相關的知識技能太多不可能全部熟練掌握。甚至不要去費力嘗試。學習如何把工作做到最好,建立適合你的工具列表,並且不要嘗試找到所有的答案。專注於如何快速找到答案。

不論你是剛剛開始編程還是已經有豐富的經驗,我希望這篇文章對你有所幫助。

記住:沒有人期待你什麼都知道。享受這個過程,並且不要停止學習。

如果你想聊聊編程,你可以在Twitter或者Codevolve.com上面找到我。

編程快樂!

掃碼報名Strata Data Conference大會

大數據文摘專享優惠截至5月5日

原文鏈接:https://medium.freecodecamp.com/this-picture-will-change-the-way-you-learn-to-code-557ac1e109bd?source=linkShare-9549803b36be-1492658954

關於轉載

如需轉載,請在開篇顯著位置註明作者和出處(轉自:大數據文摘 | bigdatadigest),並在文章結尾放置大數據文摘醒目二維碼。無原創標識文章請按照轉載要求編輯,可直接轉載,轉載後請將轉載鏈接髮送給我們;有原創標識文章,請發送【文章名稱-待授權公眾號名稱及ID】給我們申請白名單授權。未經許可的轉載以及改編者,我們將依法追究其法律責任。聯繫郵箱:[email protected]

志願者介紹

回復「志願者」了解如何加入我們

往期精彩文章

點擊圖片閱讀文章

Python確實比較慢,但我不在乎

熱門文章