Saturday, August 9, 2014

Day 35 | 盤點學過的 | 下一步 | 目前的心得

Day12直接跳到Day35, 富奸了一段時間,不能說是全身心投入Rails的學習,但每天也確實花了不少時間在上面,效率有好有壞就是了。我很不喜歡做筆記,學過什麼以及學習心得都在腦中留個大概的印象,講好聽是保持自己視野的彈性,不被過去的思考給扯後腿,但這種做法在學簡單的東西時或許沒問題,跨領域學一門新的、困難的學問還不做筆記,恐怕就是大問題了,而我竟然到這禮拜才意識到,在此給新手一個提醒,絕對要做筆記。而除了課程內容的筆記外,盤點自己學過的、還有什麼連新手都看得出來的不足......等,則是整理思緒、類似學習心得的筆記,對於接下來該怎麼走會有很大的幫助,所以這一篇就專門講我的學習曲線及心得。


。資源
http://www.ruby-doc.org/
http://ihower.tw/rails4/
http://www.gotealeaf.com/books/ruby
http://railsbridge-docs-zh-tw.herokuapp.com/docs/

。學過:
》Codecademy(CC)的Ruby
》Codecademy(CC)的HTML/CSS
》One Month Rails(OMR)
》Rails 101 S


。正在學:
》Learn Ruby The Hard Way(LRTHW)
http://ruby.learncodethehardway.org/book/ex37.html
》Rails 101
》Learn to Program(LTP)
https://pine.fm/LearnToProgram/
》Rails for Zombies(RFZ)
http://railsforzombies.org/levels/3
》Tealeaf Academy的Course 1 ~ 3


。(身為新手的自己都看得出來)不足的部份:
》用英文問問題、用對英文關鍵字找出答案的能力。
》用英文精準描述寫程式時的各個步驟、各個元素的能力。(LRTHW中提示的"大聲唸出各個步驟、元素......等"的方法)
》網路上做筆記的方式和平台
http://markdown.tw/
http://goo.gl/EaVTo2
http://daringfireball.net/projects/markdown/syntax (markdown作者網站)
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
》Debugging skill (Rubber Duck Debugging)
》Text editor tips and tricks (Sublime Text 2 for example)
》REST的概念
》Git/版本管理
http://www.slideshare.net/littlebtc/git-5528339
http://blog.miniasp.com/post/2013/08/19/Learning-Git-Part-1-Installation-Options-Tool-Usage-on-Local.aspx
https://www.codeschool.com/paths/electives#git-basics
http://ihower.tw/blog/archives/category/git
》command line
http://cli.learncodethehardway.org/book/
http://conqueringthecommandline.com/book/basics#chapter-basics (Newbs only need to read Chap. 1 for now.)
》Object-Oriented Programming(OOP)
》Deploy
》Ruby style
https://github.com/bbatsov/ruby-style-guide

。計劃要學:
》iHower Rails實戰聖經
http://ihower.tw/rails4/ruby.html



心得:

自學的原因,我在Day 0那篇已經交代過了。從Day 0時僅有的Codecademy Ruby課程的經驗,到現在Day 35, 各種主要教材都或多或少碰過後,我的感想是,自學Rails可行,但是沒有一套系統性的教材或學習步驟,會花許多時間摸索以及走重複的路。這未必是壞事,但同樣都是為了速成而能儘快開始寫自己的prototype,在這階段花過多時間摸索,還不如把時間拿來熟悉Rails或HTML/CSS,這也是我寫這篇的目的,希望新手少走冤枉路。

CC Ruby花了我兩個月完成兩遍,效率並不高,尤其沒做隨堂筆記,現在回過頭來看會覺得很可惜。但這階段還在摸索學習的感覺,這是OK的。

接著我花了2天把CC上的HTML/CSS課程上完,大概知道front-end在做什麼、能做什麼,但對於back-end如何連接front-end變成一個web app, 而不只是一個靜態網頁,這時的我還沒概念。

學完上述兩堂CC的課程後我買了mac mini並安裝了Ruby和Rails,這在Day 1和Day 2都提過,就不贅述了。不過現在來看,我會建議新手選mac的筆電,原因是剛開始學常常會跑rails workshop/讀書會之類的,總不會想要帶mac mini+外接螢幕吧?Day 2提到的RailsBridge裝機趴是我覺得最適合新手的裝機指南,因為它把安裝步驟切得很細,並且針對新手可能遇到的困難或心態有很完整的檢驗方法,再次大力推薦。

環境部署完的事,我寫在Day 12, 也就是上一篇,不在此贅述。不過Day 12中提到RailsBridge裝機趴遇到ri File沒作用的情形,現在看來完全不重要,當初沒糾結在這問題上果然是對的。雖然未免事後諸葛,但我要表達的是,先快速走過一遍教材,才會比較了解Rails的面貌,也才比較能判斷哪些是問題哪些不是問題。

Day 12提到One Month Rails, 我花了一個星期快速跑完一遍,大概了解用Rails開發網站是怎麼樣的情形,就先放到一邊去了。以我目前的程度,OMR中很多內容是我看不懂的,而當初找OMR來看的原因主要是要對Rails如何開發網站有更進一步的了解,目的達到,那就先放一邊吧。

LRTHW我好像寫到第37題就直接跳到Rails 101了,Rails 101並不適合全新手,我寫到第三章時又跳去Rails 101 S, 前幾天整個跑完一遍對CRUD有個初步的認識,但REST的概念還需要多理解。因為Rails 101 S是建立在Rails 101的內容上,所以兩本教材大同小異,差別在於Rails 101 S對新手比較友善,這跟我推薦用RailsBridge來安裝Rails的情形很類似。

Rails 101 S後,也就是目前,我同時進行Learn to Program, Code School的Rails for Zombies和Try Git, 並打算把原本晾在一邊的Rails 101拿回來完整跑一邊,看xdite大如何拆解Rails, 經過之前各種教材的累積,這次應該比較能上手了。

以上就是目前的進度,接下來除了找iHower的教材來看之外,應該會直接報名Tealeaf Academy的Course 1.


總結來說,有幾個方向:


》Front-End
。HTML/CSS
Codecademy或W3Schools的教材擇一即可。


》Back-End
。Ruby
Codecademy, Learn Ruby The Hard Way, Learn to Program都很不錯,如果時間夠的話可以三種都跑一邊,時間不夠的話擇一即可,但我會優先選Codecademy和Learn to Program就是了。

。Rails
Rails 101, Rails 101 S, One Month Rails, Rails for Zombies這四套,我會建議先從Rails 101 S開始,接著Rails for Zombies, 裡面有些講解內容是很好的;RFZ後跑Rails 101, 把過去從Ruby的教材,Rails 101 S和RFZ學到的內容,透過Rails 101做一個總結,並且把《身為新手都看得出來自己不足的地方》給一個個重點突破,應該就能跳到下一個階段了。至於One Month Rails, 我是覺得可看可不看,看了確實更了解如何用Rails開發網站,但並不怎麼增加Rails功力,而類似的內容我猜在YouTube上也找得到,未必要看OMR。不過OMR的前幾段影片講了不少startups做prototypes/minimum viable products的想法,如果你平常沒在關心startups的資訊,OMR的這幾段內容可以給你一些非常基本的概念。


》提升學習效率
。做筆記
。打造專注學習的空間
。和同好多交流,比如讀書會、臉書社團......等
。複習
。實作(實作就是最好的複習)
。適量運動、飲食作息固定。
。設定目標,讓目標成為你學習Rails的鬥志的泉源。


打個廣告,我跟Rails初學者的朋友成立了在紐約的Rails讀書會,歡迎同樣在紐約,想學Rails的朋友一起來切磋研究。

https://www.facebook.com/groups/262731093924968/

No comments:

Post a Comment