自從我 12 歲的時候,發現 Microsoft Word 中的「另存為 Web 頁面」選項後,我就開始自學 Web 開發。我先學的是 HTML,接著是 CSS 和 JavaScript,然後是一些 PHP 和 Rails 的皮毛。(近段時間,我投入了 Meteor 的懷抱。)

我也考慮過接受正式和系統的教育,但是,最後我發現:

·費用太高。
·我有課堂環境恐懼症。
·已經學了不少,沒必要學重複的東西。

自學的過程實際上並不輕鬆。我不但需要學習如何編寫代碼,還得探索學習的方法——學習如何去學習,這也是我今天要討論的主題。

下面是我自學 Web 開發的五個步驟。

  • 1. 選擇你感興趣的 Web 開發領域

光靠看書和看視頻教程是成不了 Web 開發人員的。Web 開發是一個很大的領域,如果你想一下子掌握各個方面,只會讓你精疲力盡,失去信心,從而半途而廢。

在你掌握了這個知識領域之後,再去學習其他領域的就會簡單得多——這是一個真理,你毋庸置疑。

不過,在你掌握了 HTML 和 CSS 之後,想要學什麼就看你的興趣了。也許你覺得 Rails 無所不在,很有用處,也許你認為 JavaScript 框架有看漲的趨勢。就像我現在之所以學習 Meteor,是因為我喜歡它的實時功能。

理由,其實無所謂。總之一句話,興趣是最好的老師,它也是保持學習積極性的唯一途徑。

當然如果你感覺沒什麼特別讓你感興趣的,那麼不妨去學一些相對比較普及的技術,如 JavaScript 和 PHP。

  • 2. 請無視大多數資深 Web 開發人員的「指導」

資深 Web 開發人員通常會提供一些善意的建議,但是對於初學者而言,卻是完全不切實際的。這是因為:

·你是初學者,而他們不是。
·他們默認為你已經掌握了足夠多的基礎知識。
·重點放在了一些你可能永遠不會遇到的方向上。(例如,擴展到數百萬用戶時會出現什麼樣的問題。)

就像這篇文章請不要對程序員初學者說這些話中的觀點,沒錯,這些經驗豐富的 Web 開發人員固然給出的是非常棒的建議,但是你也得問問自己:是不是真的實用,是不是真的適合你?

  • 3. 給自己制定一個明確又可實現的項目

在學習了 Web 開發相關的基礎知識後,不妨試試離開書本和教程來嘗試自己創建一些東西。這麼做的好處是:

·獲取親手創建的快感。
·發現知識的薄弱點。
·學習如何真正解決問題。

你想要創建什麼都可以,唯一要做到的是要確保項目越小越好。

此外,還應該對項目目標有一個定義,即,項目到了何種程度就算是 done 了。(並不需要十全十美,因為沒有發布的需要。)

選擇的 web 開發領域不同,制定的項目也會不盡相同,不過下面這些項目可供參考:

·待辦事項列表 app。
·私人部落格工具。
·運動鍛煉跟踪工具。

基本上,只要項目的主要目的是跟踪一些基本數據,那對初學者而言就是測試知識的好方法。

  • 4. 投入特定的日常練習量

很多初學者在學習 Web 開發時,進步大則乾勁足,進步慢則往往會選擇放棄。

這通常是因為初學者將「進步」當成了目標,依賴於進步得到的滿足感來支持自己繼續學習。然而,進步實際上是不可預測的。量變才能達到質變,掌握基本知識,不斷的學習,哪怕是沒有顯著的進步,其實你也已經提升了自己。

我的建議是使用另一種方​​法:

每天投入一定量的學習和練習 web 開發的時間。至少二十分鐘,但是也沒有強制的限製或要求。你完全可以根據自己的需要合理地規劃每天的時間。

  • 5. 大量的練習材料

練習得多了,自然就能掌握技能——相信很多人在學習 Web 開發初始就听到過這樣的說法和觀點。「如果你想成為開發人員的話,你必須寫大量的代碼,」但是,你不知道的是,這裡指的代碼並不一定要是你自己寫出來的。

所以,你必須好好掌握這些練習材料,吃透它們——細細琢磨你借鑒的每一行代碼的目的——即使你是在「死記硬背」,你依然是在學習。

很多人不知道的是,語法並非是 Web 開發的難點。雖然它是初學者的絆腳石,但是以後,棘手的內容會變成如何思考如何解決問題。特別具有諷刺意味的是,初學者想出的解決方案往往比專業人士的更為複雜。

基於這方面的原因,涉獵大量的練習材料的好處有:

·你可以看到不同的開發人員如何解決不同的問題。
·你可以看到不同的開發人員如何解決類似的問題。

這樣一來,當你以後做自己的項​​目時,就可以:

·確定實際問題的核心。
·找到解決問題的關鍵。

你可能已經想不起任何具體可藉鑑的解決方案,但是這並不重要。大部分問題其實你已經以某種形式解決過了,至於語法和細節,那都不是個事兒。

  • 結論

雖然我只是在大方向上分享了我的自學經驗,但是,我多麼希望當初我自學的時候,能有人指點我行進的方向。

如果你已經開始了你的自學之旅,歡迎分享你的歷程,以及,Good luck!

譯文鏈接:http://www.codeceo.com/article/5-tips-self-tech-web-develop.html
翻譯作者:碼農網  –小峰

(轉載自《碼農網》)