原文于2016-7-20首發
第二周的學習跌跌撞撞地繼續,完成了港科大布置的JavaScript的大作業,一個很簡單的對話框輸入猜謎游戲。
用了2小時,比第一周大作業輕松,只要搞清楚邏輯關系就好了(真實編寫其實只有十幾分鐘,很多細節的調試和語句修改花了太多時間)。
學習回顧:
新學內容:
JavaScript
繼續Coursera上的港科大的全棧教程(3小時),教程重點是:JS里關于string字符串,數字,boolean邏輯等基本概念以及創建方式;一些基本的循環運算; Array中參數的建立;隨機數的生成。
同時在W3schools(3小時)與CodeCademy(3小時)把這些內容再次復習和練習了一遍。
著名的犀牛書,JavaScript The Definitive Guide(4小時)曾經試圖一頁一頁看下去,無奈理解起來不如在W3schools邊學邊練習有效率,所以暫停逐頁瀏覽,拿此書當工具書用。
JavaScript for Kids(2小時)沒錯,for kids. 我承認犀牛書對我打擊有點大,降低了要求學少兒版的,借助形象生動信息理解效果不錯。
JavaScript for Kids for dummies(1小時)這本書對于基礎概念的解釋比前一本少,但是又很多具體的操作實例,準備下周具體跟進。
網頁開發基礎
跟進了經典教程Learning Web Design第四版(5小時)。學習Web開發的基本概念,以及開發的指導原則。
鞏固內容:
HTML和CSS:
在CodeCademy做了大量練習題。(5小時)
在Coursera上繼續旁聽約翰霍普金斯的CSS課程(3小時)
學J.R. 的Learning Web Design里的HTML和CSS部分(4小時)
《人人都是工程師》繼續復習HTML和CSS,并和新生大學同學交流了一些關于博客架設的問題。(1小時)
其他:
繼續在Quora,stack overflow上看其他自學者們的討論(2小時)
小結:
相比HTML的markup標注語言,JS才算是一門正式的編程語言。港科大的課程極度濃縮,只有幾個最基本的知識點。必須依靠W3School上的詳細解釋,加上適度的練習才能初步理解。兩本少兒版的JS教程也算一種快速通道,效果不錯。HTML和CSS相對簡單,需要大量練習和學習其他教程來鞏固,把不用就忘的知識點“拉回來”。
新人的不恰當類比:JS有點中學物理的味道,大量基于“規則”下的動態變化;HTML和CSS有點中學化學的味道,大量識記性的相對靜態的知識點。
本周驚喜
本周最大的驚喜是Jennifer N. Robbins寫的Learning Web Design: A beginner’s guide to HTML, CSS, JavaScript, and Web Graphics第四版。
我是根據約翰霍普金斯課程的推薦書單去亞馬遜買的kindle版。思維正在被大量知識點弄的一團亂麻的我,看了這本書就感覺學習路徑頓時清晰了許多。因為目前的MOOC課程,以及W3schools等在線練習網站,都側重知識點本身的講解。感覺就是蘋果手機問世前的時代里,那種工程師寫的冗長說明書。對于系統性的知識結構梳理不夠清晰,更不夠簡明扼要。對于沒有明確學習方向的新人的具體指導也很少。而這本教程,不只是美國很多高校采用的教科書之一,還是廣大非CS專業的門外漢極好的入門教材,雄踞美國亞馬遜XHTML Software Programming Computer類目的銷量第一。簡要說下此書的好處:
1.對于眾多新接觸web開發的“白丁”,針對不同人給了不同的學習建議甚至職業發展路徑。比如設計師的話可以嘗試深入交互設計,用戶體驗,用戶界面等。手頭有網頁制作的任務要馬上處理,可以利用本書的范例和購買軟件(模板)迅速解決。如果未來要做職業web開發人員,那就學習本書后目標定在建立一個有較好水準的樣本網站來證明自己的實力,找到工作。
2.對于沒有計算機科學基礎的菜鳥,用具體生動的語言來描述把很多基礎概念解釋清楚。讓普通人能迅速理解看似“高深”的“技術”。比如對服務器和客戶端瀏覽器的信息傳輸過程,語言風格就很平易近人,有別于眾多“技術類”教程的“冰冷感”。
3.對于正在被大量撲面而來的新知識弄得不知所措的自學者(比如我),很好的梳理了學習web開發需要掌握的知識結構。比如內容設計和網站結構之間的關系。甚至連需要準備(購買)什么樣的軟件,硬件都有詳細的說明。
4.對于還在起步階段的新人,在開始部分就給了很好的web開發指導原則。比如面對各種各樣的上網設備與不同的瀏覽器,Progressive Enhancement原則是很好的應對策略(有興趣的話可以還可以看W3C官網上對此的討論)。我還順便百度了下,發現對此的中文討論似乎很難找到。英文世界里的學習材料的確不一樣,應該是比較領先的吧。
本周另一個驚喜算是W3schools和港科大視頻,以及JavaScript青少年教程的結合。由于JS難度比HTML和CSS大,知識點也多。所以港科大的講授相對來說變得非常精簡了。知識點的梳理和運用,必須到具體的編寫環境里去熟悉。而如果只學W3schools的話,無論是手機還是電腦屏幕,一個個知識點的羅列又有點枯燥。視頻和練習交替的效果很不錯。而兩本JS青少年教程更是幫我迅速理解了很多抽象的概念。
還有一個驚喜就是CodeCademy。 畢竟HTML和CSS學習了一周,需要練習題來鞏固和加強。CodeCademy對于知識點的梳理和羅列還不錯,它的獎章系統也讓相對枯燥的訓練有一定的正向刺激作用,類似打游戲通關。這里臭美下我拿到的勛章b( ̄▽ ̄)d
胡思亂想
才學了一周的HTML和CSS,又開始了JavaScript的學習。感受到了傳說中“上升的學習曲線”。來源大概有這么幾個方面:
1.上周學習的知識點需要鞏固;
2.新學的知識點很難在以往經驗里找到類似的,是全新的概念和體系,消化吸收慢;
3.知識點的量多了以后,為了學懂,又Google出了更多的未知的概念,但知識體系尚未有效確立的時候就亂成一團。
所以week2里才會對J.R.的Learning Web Design欣喜若狂。它較好地解決了2,3兩點。(第1點則有“老朋友”W3schools和CodeCademy幫忙)
說道這里,有點想吐槽李笑來的《人人都是工程師》了。特別是關于開發環境的安裝和博客架設兩部分,極簡的安裝流程,對于操作步驟本身的解釋很少。《人人》里更多的是How to甚至是What needs to be done,但沒有why。一旦新手操作受阻,容易陷入手足無措的地步。當然這種“無措”其實也非常鍛煉新手的學習和探索能力。但如果導致大量的時間消耗,以及因此帶來較大的挫折感而中止了學習進度,則不太合適。當然,《人人》也給出了很好的學習資料和練習方法,比如針對Web開發的基礎部分,在W3schools建議反復地耐心地學習和練習。
而通過對Learning Web Design的學習,我發現一個教程如果能解決初學者常見問題(包括對不同水平背景的初學者給出不同建議),以及能系統性的快速指明知識體系,對于降低初學者面對的學習不確定性很有幫助。誠然,整個學習之路如果只是看這些“學習路徑明確”的書籍,也未必是好事,可能會阻止對未知領域的探索,降低自己的學習能力。
當然,這里還是對自學進行的思考。如果有一個教練的話,初學者的學習方向也會明確很多,實用的方法論也能盡快地運用于實踐。
回到這兩套教程,還是兼收并蓄吧。在一個新的學習領域,既需要詳細的導航資料,也要逐步鍛煉出沒有精準導航設備下強大的學習能力。這看似矛盾,但應該是學習道路上不可或缺的兩點。
本周推薦
由于快速上手JS有點不適應,就在美國亞馬遜挑選了一些書籍并購買kindle版的。又和新生大學的一些同學們交流了下學習《人人》的情況,發現大家或多多少的存在一些學習上的疑惑,包括學習編程的目的,方向,特別是怎么開始。所以這里就推薦全世界最大的網上書店,美國亞馬遜總站。注冊一個美國站的用戶,就可以購買kindle版的原版書籍,閃電到貨。很多英語書還有加0.99美元到2.99美元,升級到真人有聲書的服務哦。
關于如何注冊買kindle原版,不多介紹了。培養下自學能力吧╮(╯?╰)╭
關于選書,可以google搜索到不少建議。這里補充點個人經驗:
美國亞馬遜的用戶評價還是一個不錯的參考,但是有兩個類目要注意。近年來3C產品由于中國賣家的“人為操作”,可信度已經大為降低了。而書籍領域,尤其是虛構類小說是亞馬遜自創辦以來的一個“重災區”,當然,比起國內的電商網站來真實評論還是多很多的。技術類書籍的評論相對比較干凈。
建議培養分辨評論背后信息的能力,多提問題。比如“為什么那么多人給好評,是不是應為初學者的人數遠遠大于老司機,而這本書又特別適合初學者但對老司機們沒啥幫助?” “為什么有人給1星差評,他給出的“此書無用”評價是不是適合于我?”“這個評價已經跳出了書里面那么多錯誤,那這本書對我是否還有值得一讀的地方?” 等等。
剛剛參加的寫作課第二期,李笑來在談到溝通時也說到,“既然是溝通,就想盡一切辦法獲得所有的真實反饋”,了解真實世界里的人的想法,看法。包括讀者是怎樣的人,讀者為什么會發布這樣的反饋。
最后召喚一下投資大神老巴