Git 教育訓練課程投影片

Update(7/21): 我把 p117 rebase 和 merge 操作的示範 錄成影片啦 :)

這是最近準備的 Git 教育訓練課程,加上 live demo (一般操作、merge、reset、rebase等等示範) 時間大概是三個小時。其內容主要基於去年的演講,新增了Git內部原理(p36~51)、分支模式(p143)和更多 Tips(p168)內容等等,總頁數從117成長到198… XD

再次感謝 schacon 公開的 OmniGraffle Diagrams 圖檔讓我可以改來用 :>

敏捷開發與 Scrum 分享投影片

Update(2012/7/16): 由於投影片部分內容引用自 ezScrum 課程教材,不適宜公開,非常抱歉。他們的課程非常棒,推薦大家報名 Scrum敏捷方法實作班

這是今天在公司內部講的 “敏捷開發與 Scrum” 投影片(大概花了一個小時講,加上另一個小時實作練習),不是什麼經驗分享演講,畢竟還沒有 Scrum 的實際導入經驗 XD 所以只是東抄西抄整理重點,見笑了。

認識敏捷開發的精神不是第一次,但 Scrum 流程倒是頭一回。上回參加 Teddy 的 Scrum 課程,其中感觸最深的就是 cross-functional team 概念,全部 team members 都要參與 Story 討論與估計,無論其技術或設計背景。而上週末惡補 Scrum 書體會最深的則是 self-organized team 的 empowerment 和 accountable (賦權與當責)概念,可惜我還講的不好就是了。總之,學了 Scrum 流程,再回頭看敏捷宣言又有不同的體悟。

期待之後有更多實務經驗可以跟大家分享囉。

JavaScript,我真是搞不懂你啊!@JSDC.TW 2012

這是我在 JSDC.TW 给的 Lightning talk: “JavaScript,我真是搞不懂你啊!” 的現場錄影。因為投影片其實只是內嵌影片,所以看影片就好了。

講這個題目的目的完全只是娛樂效果(非戰)。因為成為 LT 講者可以免報名進場,所以就厚著臉皮來表演 Wat 看看,聽起來是有得到一些笑聲 XD 如果想進一步知道 JavaScript 為什麼會這樣處理,可以參考 解析 JavaScript,我真是搞不懂你啊! @JSDC 2012 這一篇文章。

Functional Programming for Java Developers 讀書摘要

這是我之前念 Functional Programming for Java Developers 一書的摘要記錄。這本書很薄只有90頁,是一本蠻不錯的 Functional Programming 概念入門勸敗書。

近來 Functional Programming (函數式編程,以下簡稱FP) 的重要性提昇就是為了因應 Concurrency 的需求。CPU 朝向多核架構發展,OOP的程式開發方式物件充滿可變狀態,造成撰寫 Concurrency 程式時陷阱多多。

當然,要寫FP不代表一定要用FP語言,還是可以用現成的OO語言去寫。但就像用沒有OO支援的C去寫OO風格,用專門的FP語言還是比較方便。

為何要FP?

作者說雖然是因為 Concurrency 而學 FP,但是後來卻很享受這種 Paradigm Shift (典範轉移)。OO 被發明因為 GUI,後來人們發現可以用來應用在各種領域上。OO 和 FP 都是工具,各有優缺點,但是現在人們碰到所有問題都用 OO 去解,就像你手上有著搥子,在你眼中什麼都看起來像釘子

FP 不代表比 OO 優越,畢竟 OO 的好處已經被證實且廣泛應用。而是目前時代不同了,OO 的缺點在某些領域已經到了不可忽視的地步,有些挑戰性的問題用 FP 解更為適合,例如:

閱讀全文〈Functional Programming for Java Developers 讀書摘要〉

那些 Functional Programming 教我的事 投影片

這是今天在 OSDC.TW 2012 演講的投影片:

這個題目是近年來第一次脫離 Ruby 舒適圈的演講(抖),準備的時候就發現 Functional Programming 不但講不完(30分鐘的演講教不會寫FP啦),有些概念又很難,真要講到 “Pure” 的 Functional Programming 我連 Monad 都還搞不清楚…orz 所以本來準備的內容在前一天又狠狠砍掉 1/3,開頭改成用 Concurrency Program 來引人入勝,希望這樣的目的有達成 :)