發表文章

目前顯示的是 五月, 2015的文章

黑客松式的學習活動:NodeSchool International Day 精彩紀錄

圖片
『是不是要很厲害才能參加黑客松呢?』這是一個永遠都會有人問的問題。

事實上,黑客松從一開始的出發點,就是三五好友聚在一起進行研究及開發的活動,帶有很純粹的動機。參加這樣的活動,你不必真的很厲害到極點,而最重要的是動手和夥伴合作,過程中可以順便認識朋友與他人交流,讓投入的過程中更加豐富有趣。

從這樣的角度來看,『黑客松式的學習』是不是有可能的呢?如今看來是肯定的,5/23 於台北剛結束的 NodeSchool 聚會就是一場黑客松式學習活動,吸引了近兩百位參加者,共同參與了這場具有黑客精神的學習活動!

順帶一提,這此使用的場地,也是 黑客松台灣(Hackathon Taiwan) 每個月辦活動的主場地,無論如何,也記得來報名下次 6/13 - 6/14 (六、日)的黑客松活動!
什麼是 NodeSchool? NodeSchool 是一個線上學校,目標是運用線上工作坊課程,讓所有人都可以在這學到各種技術。而恰逢 NodeSchool International Day 國際日活動,全球各地都紛紛各自舉行一場 NodeSchool 盛會,因此身在台灣的我們也理所當然響應了這樣的活動。 

這個活動的形式相當特別,沒有講師在台上講課,而是採用線上工作坊教材與題目的形式,讓參加者在自己的電腦上挑戰通關。NodeScool 擁有許多工作坊教材,從基礎課程到進階的選修課程都有,除了 JavaScript、Node.js 之外,也有 ES6、WebGL、Three.js、Functional Programing 和 React.js 等課程。詳細的課程資訊,可以參考 NodeSchool 官方網站


由於每一份教材都是經過設計,而且每一個主題和關卡都擁有提示和說明,參加者在一題題解答的過程中,可以靠自己慢慢學會一門技術。如果真的遭遇到了自己難以突破的困難,可以跟左右鄰居討論研究,若真的也沒有辦法了,可以找在現場自願的指導員(Mentor)幫忙排解問題。
黑客松式的學習活動 回想起過去從小到大,我們的學習模式,總是有個老師在台上教學,枯燥而乏味,而為了保證教學進度,不免伴隨著填鴨式的教學方法。這樣的模式我們早就習慣,雖不見得喜歡,但也無可奈何,逐漸的,我們的思考和學習,慢慢僵化了。

具有一定寫程式經驗的人都知道,如果想要把程式技術練好,動手研究是不可缺少的工作,而持續鑽研…

簡報釋出!超酷炫科幻 UI:QML 入門

圖片
這次五月的 Hackathon Taiwan, 因為原本的講師沒空,所以我就來救援了一場 QML 工作坊,這堂課以活動的倒數計時器為開頭,討論怎麼使用 QML 進行超酷炫科幻 UI 的設計,是一堂初學入門課程。

有鑑於過去聽到不少人反應,要使用 QML 必須與 C/C++ 打交道,門檻相當高,於是,這個工作坊的目標,就是讓學員可以在純 QML 的環境下,以 QML 來開發自己的 UI 界面。即便是不熟悉程式語言的人,都可以輕易使用 QML 做出絢麗的 UI。
活動簡報
後記 這次 QML 工作坊事後反應還算不錯,甚至有人以 QML 來開發黑客松活動的作品,未來如果有機會可以再次開課。:-)

JavaScript 的各種迷霧

圖片
在 Facebook 看到很多人都在整理自己的程式筆記,我也整理關於 JavaScript 語言常被誤解部份的筆記,然後分享出來供各位同好參考。

講實話,從 1995 年開始的 JavaScript,直到前幾年,都讓我恨的牙癢癢,甚至覺得他是個垃圾,因為當時的他太沒有規範,效能極差。直到近年來才逐步改善,我也才慢慢擺脫對他的排斥及恨意。

但就算已經有標準規範,JavaScript 語言對很多人來說依然很頭痛,除了其 Asynchronous 非同步的機制外,更要面對其極為動態(Dynamic)的特性,而從 OOP 的角度來看,其 classless 的設計更讓人不知所措(ES6 之後開始支援 Class),與傳統的 OOP 相去甚遠。所以,JavaScript 處處與其他語言完全不一樣的概念及思維,讓很多人在裡面處處誤解。

所以若是想學習 JavaScript 深入的概念,最好的方式就是放下其他語言的既有概念,直接了解 JavaScript 的核心機制,雖然會讓人手足無措,但卻是最好的手段。否則,很容易練就或死背很多怪招,寫出難以除錯或過於複雜的程式碼,當然,更嚴重的是誤導他人。

要深入或精通 JavaScript,務必了解並思考其執行程式時發生什麼事,每一行程式碼當下被執行時的狀態,遠遠比程式碼排列來得重要。只要掌握每一行程式碼的『執 行當下』,所有 JavaScript 的疑難雜症,都能迎刃而解。關於這一點,有興趣閱讀硬梆梆定義文件的,可以參考 ECMA-626 的『10.3 Execution Contexts』一節。(參考網址:http://www.ecma-international.org/ecma-262/5.1/#sec-10.3
關於 this 關鍵字的機制 很多人會搞糊塗 this 關鍵字,就因為他是一個會被 Execution Contexts 大量影響的東西。JavaScript 在 Function 或 Context 被執行時,才會依當下情況去決定 this 為何。這代表,使用 this 時在哪一個 function 或地方不重要,而是當進入這個使用 this 的 context 時(如:Function 被執行時)才會決定 this 是什麼,this 是什麼只跟你如何去呼叫 this 所在 Func…