My experience of Ruby Education in Taiwan2015.rubyworld-conf.org/files/program/B-3.pdfMy experience...

Post on 06-Jul-2020

0 views 0 download

Transcript of My experience of Ruby Education in Taiwan2015.rubyworld-conf.org/files/program/B-3.pdfMy experience...

My experience of Ruby Education in Taiwan

Mu-Fan Teng(@ryudoawaru) Ruby World Conference

~台湾にRuby教育で得た知⾒見

はじめに発表する機会をいただき ありがとうございます

自己紹介鄧 慕凡(Mu-Fan Teng)

a.k.a: 竜堂 終

両方どもある小説の登場人物

Github / Twitter: @ryudoawaru

http://ryudo.tw

台湾人であり

仕事は

五倍の紅宝石http://5xruby.tw/en

弊社の業務

Ruby / Rails の 教育業者

コンサルタンシー / オフショア海外の取引先は日本、シンガポールなどを持ちます

Rubyの広めるRailsGirls / RubyConf…etc

RWC初めの海外スポンサーになりました

ここから、英語で話す

AGENDA

Introduce Ruby Taiwan Community.

Ruby Employment Market in Taiwan.

Our Ruby/Rails Courses, how and why.

Cooperate Training.

My findings in teaching Ruby.

Ruby Taiwan CommunityEstablished in 2008, only Ruby Community in

Taiwan.

Ruby Community Events in Taiwan

Ruby TuesdayRegular Ruby Meetup

Taipei.rbMeet-up with Technical & Soft Topics

RubyConf TaiwanAnniversary Ruby Seminar

Rails Girls Taipei5 times from 2013.9

Rails Girls WeeklySpin-Off of Rails Girls

Chronicle

Appear in OSS Community

2006

Ruby.TW Established

2008

2nd RubyConf.TW

2011.8

2010.04

First RubyConf.TW

2012.12

3rd RubyConf.TW

1st RailsGirls Taipei

2013.09

4th RubyConf.TW

5th RubyConf.TW

2015.09

2014.04

Ruby Jobs in Taiwan

Statement

The following data is baed on what I see and hear, no guarantee.

Ruby Company Distribution

30%

30%

40%Foreign CompanyLocal CompaniesLocal Startups

Many Oversea Companies

From 2010.

Mainly from Silicon Valley.

For Relatively Cheaper Salary Level.

Rise Salary Level of Web Engineers Taiwan

Average Salary LevelAn

nual

Sal

ary

100万¥

225万¥

350万¥

475万¥

600万¥

Junior Intermediate Senior

Other Ruby

Engineer Skill Level

Junior: Entry-Level Skill.

Intermediate: Eligible Skill.

Senior: Fluent Skills and Experience on both Front-End and Back-End.

Summary

The Actual Market

Demand of Ruby engineers are growing.

Employers always look for compact power(即戦⼒力).

Lack of experienced ones.

Juniors become depressed easily.

Our Ruby/Rails Courses, how and why.

Courses

Free

Monthly Ruby Basic

Promotional Courses in Campus

Commercial

Main Ruby on Rails Curriculum

Others

FREE Ruby Entry COURSE

FREE Ruby Course

Monthly and Free

No Qualification

Hand-made Texts

Syllabus—Ruby IntroInstall & Write your first Ruby Program

Basic Syntax(variable / flow control…etc)

Basic Class

Block, Proc and lambda

OOP

Use Rubygems & rake

Introduce Ruby’s Ecosystem

Campus Ruby Classes

Campus Ruby Courses

Topics: Ruby + Rails

Period: Between 2 and 5 days.

The skill level of students are more even.

Usually in computer class:

Difficult to keep learning.

Commercial Course

Class Type

Main Curriculum: Ruby on Rails From Zero

Other: Additive for Main Course, or other independent topics.

Ruby on Rails from Zero

Separate into 3 parts:

“Prototyping”

“Handcrafting”

“Go Shopping”

3 + 3 + 7 = 13 hours a week, 3 weeks in a row.

Student can elect any one or all parts.

Prototyping

Environment Setup / Scaffold / HTTP Basic

HTML / CSS / Git Basic / Ruby Basic

Rails Convention / Bootstrap / Useful Gems / Deploy to Heroku

Concept & Goals

Foundation of the following parts, like HTTP/GIT/Ruby Syntax

Get a quick taste of Rails by Generators and some useful Gems

Use Bootstrap Framework to decorate HTML

Help Students build confidence by deploying their first APP to Heroku

Handcrafting Part

MVC Structure / Assets

Layouts / Helpers / Form Objects

ActiveRecord / Association / Scope / Validation / Callback

Concept & Goals

Learn Common Parts of Rails

Bottom-Up Style, not only Generator

Students will write a voting system as homework

Go shopping

Detail User system by Devise/Facebook Connection

Establish an E-Commerce site with shopping cart

ActionMailer and Delayed Job

Paypal Integration

Homework Flow

Instructor create a new Github repo and puts initial codes.

Trainees then fork & implement.

Send PR for review.

Other Courses

Supplementry

Advanced Ruby

HTML / CSS

Independent

Ruby Motion

HTML / CSSName: “Evolution From Designer to Front-End Engineer”

14 hours, 2 days

Target: Designers who want to become Web Front-End Engineers.

Goal:

Foundation of Rails Course.

For Designers to Write Modern HTML and CSS3 by Hand.

Advanced RubyClass name: Ruby’s Note to Oneself

1 day, 6 hours

Target: Ruby programmer who want to advance metaprogramming ability.

What will learn:

How to write OOP in Ruby

Write Metaprogramming in Rails

Write DSL

Write Command Line Program in Ruby

RubyMotion

Name:iOS App Development Guide for Rails Workers

4 days, 18 hours

Target Audience: Rails Programmer who want to keep using Ruby to write iOS App

Use ProMotion and Related RubyGem instead of teach Cocoa framework

Corporate Training

Customer Background

Convert existing projects from other languages (PHP,ASP…etc) to Rails.

Used to use other languages, planning to develop new projects in Rails.

Currently using system based on Rails (Redmine,Gitlab…etc) and want to customise.

Difference

Taught at Customer’s office.

Programs are customized.

Students usually have web programming skills of other languages.

Programs

Ruby + Rails

Git + Github + GitFlow

Test Driven Development

Services Besides Training

Consulting Service

Outsourcing Development

Human Resource Service

Special Outsourcing + Consulting Service

We develop customer’s commission project.

Use the project’s code as example on training.

Assign issues to students, and review their results.

Actual Migrating Case

Mission: Migrate old site to Rails.

Target: An online cosmetic catalog website which has ran for 10+ years based on ASP,PHP and MySQL.

My Findings

Problems in Class

Environment Building

Environment building is always a pain.

Even for Mac.

Spends too much time.

OS Distribution

5%

35%

60%

Windows MacLinux

Workaround for Windows

Install VM and Linux:

Sometimes fails.

Unable to Keep Learning.

Rails Installer:

C-Binding Issues on Some Gems.

Windows Console is Awkward.

Cloud Web IDE platforms:

So far the best solution.

Cloud Web IDE Platforms

My recommendation:Nitrous.io and C9.io

Pros:No need to work on student’s computer setup anymore.

Cons:

Free plan runs tardily with low resources and no SSH.

Sometimes boots very slowly, especially when many instances boots concurrently in class.

In case we told students to register and create instance before class.

Inconsistent Skill Level

Program Experience

40%

20%

40%

WEB ProgrammerOther programmerNon

Git Experience

No 65%

Yes 35%

Yes No

Three Kind of Students

Total Rookie.

Experienced Web Programmer.

Rails Beginner who wants Instructor to help with exercising and practicing.

Question & Response

Students are shy.

Need Time for Internalising Knowledge.

People are too Busy to Gather at one Place.

Online Communication Tool

Slack is easy and convenient.

Our usage:

Per Private Channel for one class.

Distribute text and code,url…etc

Enrolment

Enrolment Status

0

10

20

30

2014/4 2014/7 2014/10 2015/1 2015/3 2015/5 2015/7

会社成⽴立

Split into ABC parts

Motivation of Learning

Transfer from PHP or .NET or Java.

Learn New Skills.

Become Full-Stack.

Communicate with Programmers.

Become a Programmer.

Conclusion

Education is CommunicationFeedback is important

Education is ExperienceKeep Accumulating Experience

Education is BalanceFinding Balance Between Instructor and Programmer

ご清聴ありがとうございました

Any Questions?