如何在2017年自學編程?

Z.R. 簡評:

Z.R.開始工作後發現大部分的軟體工程師都是靠自學成才的。即使在人才濟濟的矽谷,大部分人的業餘時間也會自學各種各樣的新技術。所謂的簡歷和學歷大多只是個敲門磚。這篇文章我特意翻譯成了中文,跟大家分享為什麼要自學編程,以及如何自我學習。


原文出處:

How to become a Self-taught Developer in 2017?

先上兩個圖:

根據StackOver Flow 2015調查,48%的受訪者從未獲得計算機科學學位。大約41.8%的開發者是自學成才的。

根據StackOver Flow 2016調查,69%的開發者都是自學成才的。 (全球13%的受訪者只是自學成才)43%的開發人員擁有計算機科學或相關領域的學士或學士學位。 2%的開發人員擁有博士學位。

高科技產業 -- 技術正在改變世界。

越來越多的人正在學習編程技巧並改變他們的職業生涯,成為Web和移動應用程序開發人員。 據美國政府稱,到2020年,IT職位將增長22% 。沒有足夠的開發人員可以填補空缺,所以永遠不要認為市場已經飽和。當初學者開始學習編程來開發實用的APP時,他們會被這麼多的編程語言以及所有庫,工具和框架所淹沒。

實際上,你不需要知道這一切,你只需要知道正確的和重要的。

我會告訴你,你如何成為沒有計算機科學學位的Web開發人員。所以讓我們開始吧。

在線學習

傳統教育正在慢慢消逝。不是每個人都有時間或金錢花在四年大學學位上,以獲得可以在線訪問的知識。

目前,學習東西的完美資源不是書籍,而是在線課程。 (書籍可以是很好的插件補充)。

成為一名自學成才的開發人員的第一步是了解為什麼你想成為網路開發人員?你的目標是什麼?

如果你沒有計算機科學學位,這並不重要。您可以了解計算機科學和軟體開發。斯坦福大學,哈佛大學和麻省理工學院都在網上提供了免費的優秀課程。雖然擁有計算機科學學位並不是成為網路開發人員的先決條件,但了解計算機基礎知識還是很好的。 一旦你對計算機工作有基本的了解,就選擇一項技術並開始學習。如果你從來沒有寫過一行代碼,從學習HTML&CSS開始。

每天花約90分鐘,在安靜的環境中編寫代碼,您不會分心。 學習新內容的時候一定多多練習!!

當談到編程時,你永遠不會停止學習,因為它是一個不斷學習和改進的過程。 一旦你熟悉了HTML和CSS,你可以繼續前進,選擇Javascript作為你的主流語言(你可以選擇任何編程語言)。我們推薦使用Javascript的原因是因為您可以使用一種編程語言同時完成前端和後端的工作。

通過反覆練習

你可以閱讀無數的書籍,並觀看無數的視頻,但如果你不採取行動,你還是什麼都不知道。如果你沒有實踐你通過在線課程學到的知識,你就不會對編程。根據人類的構造,反覆練習才是學習的王道。

有一種說法認為,練習使人完美,對嗎?

複製講義,閱讀書籍,教別人或者自己開發APP 。當你開始教別人的時候,你必須非常清楚地將這個主題內化,以便能夠表達它。在這個過程中,你學到了更多。你可能知道如何駕駛,但要解釋給他人如何駕駛汽車就更難了。如果你是一名教師,你必須學習更多你甚至不知道的細節,這樣你才能內化教學的內容,更好的傳道授業。

編程永遠是關於解決一個特定的問題。將應用程序分解成功能,將問題和問題分解為小塊。一旦你分解它,你可以按照邏輯創建很多東西,就像拼接不同的積木一樣。

加入像StackOver Flow這樣的在線社區

加入像StackOver Flow這樣的在線社區,並開始與社區合作。如果您遇到困難或存在疑問,可以在那裡發布您的問題,社區中的某個人將為您解決問題。

與社區合作將使您了解如何搜索與編程相關的問題,但只有當你自己寫代碼並犯錯誤時才會發生。這就是你將要有信心的原因,因為你會知道如何應對這些挑戰。

克服你的恐懼

克服對不夠好的恐懼。你不會成為「完美的開發人員」。你永遠不知道要學習或掌握的一切。即使是最有經驗的程序員,即使經過20年的經驗,也會面臨挑戰並面臨挑戰。

做一些有使用價值的小東西

開發一些有意義的東西,一旦你對某個技術用的順手了,試著想出一個項目,讓你可以實現你正在學習的東西。

例如,您可以為客戶建立一個博客網站,您可以創建一個照片滑塊,待辦事項APP 或有趣的HTML和CSS遊戲或一些花哨的網路功能,如懸停效果或無限滾動等。

在Github上創建一個帳戶並發布您的項目,與社區分享並獲得他們的反饋。當你有足夠的項目,你可以開始申請工作了。

作為自學的編碼者的優點

很多優秀的開發人員都是自學成才的。原因在於,如果有人有動力以自己的意志和自由學習任何東西,並且在沒有任何監督的情況下付出努力,這個人的意志品質就已經達到了一個高度,他就會實現任何的目標。

當你沒有老師時,你就得自己琢磨。然後你明白程序是如何運作的,這個過程是你自己研究明白的。

一位自學成才的開發人員會花更多時間找出答案,因為他或她沒有現成的答案。

而自學成才的開發者通過這個過程來教別人或者和被人解釋某個特定概念,這個過程反過來也使得他理解的更加透徹。

希望這篇文章對你有所幫助。


推薦閱讀:

放學快走,你的電腦在實驗室自己喊啪嗒!
Scratchapixel舉步維艱,尋求贊助或投放廣告
Cognition 與職業危機
C語言基礎:函數參數與返回值

TAG:自學編程 | 編程 | 高效學習 |