almost 4 years ago

這篇文章的構想是從Jimmy Li的Learning to Code: The Roadmap I Wish I Had Been Given這篇文章來的,當時受到不少啟發,所以也來分享一些自己的經驗,希望有所幫助

通常初學者在剛開始時都會毫無頭緒,以下提供一些自己的心路歷程和建議
希望讓大家能由淺入深的了解網站開發
廢話不多說
請follow以下步驟開始吧:

第一步:HTML 和 CSS --無論如何,不可跳過這步驟

當你學會HTML和CSS,你就可以做出你的第一個「網頁」!
但是你不必鑽研HTML和CSS的各種進階知識,點到即可
網路上有很多教材可以學:
1.Codecademy-html&css: http://www.codecademy.com/tracks/web
2.遇到不懂的東西,想要了解更詳細時可以到 http://www.w3schools.com/ 找到更詳細的資料
或是你也可以自己google一些中文教材
基本上學完Codecademy這一步就算及格了!可以進階到下一個步驟

進階作業(非必要,但是做了可以進步很快):用HTML和CSS嘗試做一個靜態的履歷網頁

第二步:javascript

學完HTML和CSS後就學javascript的好處是當你學會了基本的javascript,你就具備了

  • 基本的程式語言概念
  • 可以做出"會動的"的網頁
  • 網路上各種華麗的特效你可以看懂並運用,網站開發功力大躍進

一樣網路上有很多教學,小弟我之前也是玩codecademy的javascript章節
另外也推薦一本O'reilly的「深入淺出javascript」,寫的很簡單易懂而且是中文版,可以寫出一個小遊戲~很有成就感
完成後就可以進到第三步驟

進階作業(非必要,但是學了會很powerful):jQuery

第三步:選擇一個網路框架學習

網路框架有很多種,但由於筆者學的是Ruby on Rails(ROR),所以就以ROR為例繼續介紹
基本上這一步我建議你找一個會ROR的朋友,請他解釋ROR在做什麼,並教你做出最簡單的小論壇,這樣你就可以知道該往哪個方向繼續。
但沒有ROR朋友也別擔心,網路上也是有很多學習資源,建議可以按照順序學:
1. codecademy-ruby:先熟悉ruby這個語言的特性,對於學過javascript的你來說應該不是難事,但可別把兩個語言的寫法搞混了
2.codeschool-rails for zombie:大概了解一下rails在做什麼,培養一點感覺
3.Rails101 or ROR實戰聖經:個人建議是直接買rails101,因為rails101已經更新到rails4的版本,很多寫法都跟舊版的rails不一樣,建議要學就學新的。而ROR實戰聖經的好處是裡面有很多詳細解釋觀念的章節,但rails是舊版的而且太早解釋細節對新手而言其實也看不懂。建議是買rails101,有問題就去ROR實戰聖經查解釋或google問。
4.來Rails Tuesday問問題:剛開始學rails你一定會遇到很多問題,請別害羞,每個禮拜二來rails tuesday大家都會幫你解答,這絕對是可以讓你進步的最好方法

其他資源--railstutorial :國外也很有名的教學書籍,免費的。但是這本教材是奉行TDD開發原則(Test Driven Develope),裡面有很多程式碼都跟rails沒關聯,都是在寫測試用的程式,很容易不小心就搞混了,學習時要特別注意。


番外篇:給想創業的學習者

完成了上述的第一跟第二個步驟後,你已經是一個具備基礎網頁開發知識的開發者了
但是截至目前為止我們碰到的都是屬於「前端」的語言
所謂的前端也就是使用者會看到的東西、瀏覽器上呈現的東西,這些就叫做前端
但是在這裡我們必須先暫停一下,因為再往更後面的路就開始變難、學習成本將會變高許多
現在的情況是...
你完成了前兩個步驟,也有能力可以把你的網站做得很「漂亮」
但是你還缺乏把網站做得很「功能性」的能力,因為這些是屬於網站「後端」的技術
比方說你沒辦法做出一個購物車,沒辦法把網站放在伺服器上,沒辦法儲存使用者資料
這時候你有兩個選擇
1.自幹:
繼續學習後端的程式語言,包含linux的環境安裝、資料庫操作、網站框架、網頁協定等等,認真個一到兩年的時間就可以駕輕就熟做出一個功能性的網站
2.在既有的服務下創造價值
去找一個開店的服務,例如meeshopshopify,每個服務都會有些許不同的地方,但大致上就是將開網路商店會需要的功能寫好給你用,只要做幾個設定就可以上線。之後再搭配你已經具備的前端技能,就可以將你的商店改成你想要的樣子。

兩者各有各的好處,選擇前者你可以學到更扎實的技術實力,但是時間久、而且做出來的東西很難比後者好
選擇後者你可以用最快的時間做出你想要的東西,但是你不會學到太多技術端的東西
怎麼選擇就見仁見智囉,如果有要繼續學下去再接第三步驟吧!

← 傳值給controller [Rails Gem]Ransack-搜尋功能 →
 
comments powered by Disqus