Upload
mu-fan-teng
View
680
Download
1
Embed Size (px)
Citation preview
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?