Slide 1

Slide 1 text

Ruby on Rails 新兵營 如何將你的新⼯工程師迅速調教成⼀一隻⽼老⿃鳥 12年12月4⽇日星期⼆二

Slide 2

Slide 2 text

Me • http://blog.xdite.net • Rails Developer & Entrepreneur • ROCO ( Rails application development and consultant) • ex Techbang Manager 12年12月4⽇日星期⼆二

Slide 3

Slide 3 text

Why? 12年12月4⽇日星期⼆二

Slide 4

Slide 4 text

找不到 Rails Developer 12年12月4⽇日星期⼆二

Slide 5

Slide 5 text

找不到 ( 可以⽤用的 ) Rails Developer 12年12月4⽇日星期⼆二

Slide 6

Slide 6 text

找到只有「Rails 101」等級的 「資深」Developer 12年12月4⽇日星期⼆二

Slide 7

Slide 7 text

too busy to train people 12年12月4⽇日星期⼆二

Slide 8

Slide 8 text

That’s the whole problem 12年12月4⽇日星期⼆二

Slide 9

Slide 9 text

# Day 0 12年12月4⽇日星期⼆二

Slide 10

Slide 10 text

find the right people 12年12月4⽇日星期⼆二

Slide 11

Slide 11 text

# Step 1 12年12月4⽇日星期⼆二

Slide 12

Slide 12 text

Learn the basic 12年12月4⽇日星期⼆二

Slide 13

Slide 13 text

# Step 2 12年12月4⽇日星期⼆二

Slide 14

Slide 14 text

Build the small application 12年12月4⽇日星期⼆二

Slide 15

Slide 15 text

Pull request / Code Review 12年12月4⽇日星期⼆二

Slide 16

Slide 16 text

# Step 3 12年12月4⽇日星期⼆二

Slide 17

Slide 17 text

Work with senior 12年12月4⽇日星期⼆二

Slide 18

Slide 18 text

Learn the workflow 12年12月4⽇日星期⼆二

Slide 19

Slide 19 text

But ... 12年12月4⽇日星期⼆二

Slide 20

Slide 20 text

if developer.is_trianble? keep_it_and_teach_more else let_go end 12年12月4⽇日星期⼆二

Slide 21

Slide 21 text

# Step 4 12年12月4⽇日星期⼆二

Slide 22

Slide 22 text

practice / build / refactor 12年12月4⽇日星期⼆二

Slide 23

Slide 23 text

general Ruby / Rails knowledge 12年12月4⽇日星期⼆二

Slide 24

Slide 24 text

general web development knowledge 12年12月4⽇日星期⼆二

Slide 25

Slide 25 text

# Step 5 12年12月4⽇日星期⼆二

Slide 26

Slide 26 text

build big application 12年12月4⽇日星期⼆二

Slide 27

Slide 27 text

# Step 6 12年12月4⽇日星期⼆二

Slide 28

Slide 28 text

adv. Ruby / Rails Knowledge 12年12月4⽇日星期⼆二

Slide 29

Slide 29 text

adv. web development knowledge 12年12月4⽇日星期⼆二

Slide 30

Slide 30 text

# Step 7 12年12月4⽇日星期⼆二

Slide 31

Slide 31 text

teaching how to coach others 12年12月4⽇日星期⼆二

Slide 32

Slide 32 text

差不多就這樣了 12年12月4⽇日星期⼆二

Slide 33

Slide 33 text

建⽴立 Ruby on Rails 團隊 如何共同養成好的開發⽂文化 12年12月4⽇日星期⼆二

Slide 34

Slide 34 text

⼀一般團隊的狀況 • 找幾個能寫 code 的 developer 就開始了 • Senior 跟 Junior 差距太⼤大 • ⼤大家都是 middle lvl,但寫作⾵風格⼤大異 • 無法共享知識、共享程式碼 • 無法合作,無法成⻑⾧長 沒有團隊⽂文化 12年12月4⽇日星期⼆二

Slide 35

Slide 35 text

孤軍奮戰很累 12年12月4⽇日星期⼆二

Slide 36

Slide 36 text

被隊友⼀一直幹拐⼦子更累 (不管是不是有意的) 12年12月4⽇日星期⼆二

Slide 37

Slide 37 text

# Day 0 12年12月4⽇日星期⼆二

Slide 38

Slide 38 text

find the right people 12年12月4⽇日星期⼆二

Slide 39

Slide 39 text

找到對的⼈人 • 不畏懼 command line 系統 • 不會想依賴 ftp / notpad++ / Windows • 願意學新東⻄西 • 能夠⾃自⼰己看新東⻄西,找⽅方法解決 • ⾜足夠的基本知識 • 不說謊 12年12月4⽇日星期⼆二

Slide 40

Slide 40 text

# Step 1 12年12月4⽇日星期⼆二

Slide 41

Slide 41 text

Learn the basic 12年12月4⽇日星期⼆二

Slide 42

Slide 42 text

Rails 之外的東⻄西 • Command Line • Advanced Command Line • Editor • Git ( very important ) http://peepcode.com http://codeschool.com 12年12月4⽇日星期⼆二

Slide 43

Slide 43 text

Rails 101 • 建置⾃自⼰己的開發機器 • 學會基本的 CRUD • 熟練 RESTful (需練到倒背如流) • 學會透過第三⽅方 Gem 加速開發 • Deployment / Debug http://rails-101.logdown.com 12年12月4⽇日星期⼆二

Slide 44

Slide 44 text

# Step 2 12年12月4⽇日星期⼆二

Slide 45

Slide 45 text

Build the small application 12年12月4⽇日星期⼆二

Slide 46

Slide 46 text

Pull request / Code Review 12年12月4⽇日星期⼆二

Slide 47

Slide 47 text

learn from doing • production code 沒有太多練習的機會 • small application / admin panel 是⽐比較好的 練習對象 • 利⽤用 pull request 作 code review • 觀看開發思路與糾正錯誤開發習慣 12年12月4⽇日星期⼆二

Slide 48

Slide 48 text

# Step 3 12年12月4⽇日星期⼆二

Slide 49

Slide 49 text

Work with senior 12年12月4⽇日星期⼆二

Slide 50

Slide 50 text

Learn the workflow 12年12月4⽇日星期⼆二

Slide 51

Slide 51 text

learn from workflow • 可以開始上 production 解⼩小票 • 抄 senior 的 code 是最快的學習⽅方式 • 學習正確的設計思路 • 練習與同事如何合作 • 從 workflow 上學習做事的⽅方式 Code commit policy ( using Git ) http://wp.xdite.net/?p=1974 12年12月4⽇日星期⼆二

Slide 52

Slide 52 text

But ... 12年12月4⽇日星期⼆二

Slide 53

Slide 53 text

if developer.is_trianble? keep_it_and_teach_more else let_go end 12年12月4⽇日星期⼆二

Slide 54

Slide 54 text

不適合的狀況 • 學習速度太慢,無法吸收開發教訓 • 固執⼰己⾒見,無法學習較好的開發⽅方式 • 藏私(容易造成惡性循環) • 只等著⼈人家教,沒有主動求知的態度 • 純粹不適合當 developer 12年12月4⽇日星期⼆二

Slide 55

Slide 55 text

# Step 4 12年12月4⽇日星期⼆二

Slide 56

Slide 56 text

practice / build / refactor 12年12月4⽇日星期⼆二

Slide 57

Slide 57 text

general Ruby / Rails knowledge 12年12月4⽇日星期⼆二

Slide 58

Slide 58 text

general web development knowledge 12年12月4⽇日星期⼆二

Slide 59

Slide 59 text

從解⼩小票中學習 • 重構⼩小部分 code 熟悉 Rails 基本 API • 開發⼩小功能,從現有 Gem 中學習軟體設 計⼿手法 • 解 Bug,熟悉框架、了解資料庫運作原 理、了解前端地雷 12年12月4⽇日星期⼆二

Slide 60

Slide 60 text

知識共享 • redmine issue 筆記 • wiki 筆記 • 設定 / 裝機 / 調校 SOP RD 如何養成 寫筆記 / 製作 SOP 的習慣 http://wp.xdite.net/?p=2056 12年12月4⽇日星期⼆二

Slide 61

Slide 61 text

代碼共享 • Ruby coding style • Rails coding style • Front-end ( CSS / HTML ) coding style • Best Practices • Performance • Architecture / Patterns T客邦技術部⾨門法寶、⼯工作流程⼤大公開 http://www.techbang.com/posts/6613?page=2 12年12月4⽇日星期⼆二

Slide 62

Slide 62 text

# Step 5 12年12月4⽇日星期⼆二

Slide 63

Slide 63 text

build big application 12年12月4⽇日星期⼆二

Slide 64

Slide 64 text

有⼀一些東⻄西沒辦法⽤用教的 • 軟體架構設計 • 有些⼈人能⼒力只能解⼩小票 • ⾃自⼰己單獨寫⼀一個網站腦袋空⽩白 • ⼯工作切割分配 • 需求切成 ticket • ⼤大 ticket 切成可單純執⾏行的⼩小 ticket T17 開發切票⽅方法 http://www.flickr.com/photos/xdite/6469521821/sizes/o/in/ photostream/ 12年12月4⽇日星期⼆二

Slide 65

Slide 65 text

# Step 6 12年12月4⽇日星期⼆二

Slide 66

Slide 66 text

adv. Ruby / Rails Knowledge 12年12月4⽇日星期⼆二

Slide 67

Slide 67 text

adv. web development knowledge 12年12月4⽇日星期⼆二

Slide 68

Slide 68 text

單獨研究、共同學習 • upgrade to Rails 3 • upgrade to Rails 3.1 • upgrade to Ruby 1.9 • writing gems / writing engines • writing tests My Blog http://blog.xdite.net 12年12月4⽇日星期⼆二

Slide 69

Slide 69 text

# Step 7 12年12月4⽇日星期⼆二

Slide 70

Slide 70 text

teaching how to coach others 12年12月4⽇日星期⼆二

Slide 71

Slide 71 text

這有困難... 12年12月4⽇日星期⼆二

Slide 72

Slide 72 text

培養團隊⽂文化 (重點) 實戰敏捷開發 Practices of an Agile Developer 1-6 google://實戰敏捷開發 site: ihower.tw 12年12月4⽇日星期⼆二

Slide 73

Slide 73 text

Thanks for listening mailto: [email protected] 12年12月4⽇日星期⼆二