My experience of Ruby Education in Taiwan ~ 台 湾 にRuby 教 育 で 得 た 知 見 Mu-Fan Teng(@ryudoawaru) Ruby World Conference
はじめに 発 表 する 機 会 をいただき ありがとうございます
自 己 紹 介 鄧 慕 凡 (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 Community Established in 2008, only Ruby Community in Taiwan.
Ruby Community Events in Taiwan
Ruby Tuesday Regular Ruby Meetup
Taipei.rb Meet-up with Technical & Soft Topics
RubyConf Taiwan Anniversary Ruby Seminar
Rails Girls Taipei 5 times from 2013.9
Rails Girls Weekly Spin-Off of Rails Girls
Chronicle Appear in OSS Community First RubyConf.TW 3rd RubyConf.TW 4th RubyConf.TW 2008 2011.8 2013.09 2015.09 2006 2010.04 2012.12 2014.04 Ruby.TW Established 2nd RubyConf.TW 1st RailsGirls Taipei 5th RubyConf.TW
Ruby Jobs in Taiwan
Statement The following data is baed on what I see and hear, no guarantee.
Ruby Company Distribution Foreign Company Local Companies Local Startups 30% 40% 30%
Many Oversea Companies From 2010. Mainly from Silicon Valley. For Relatively Cheaper Salary Level. Rise Salary Level of Web Engineers Taiwan
Average Salary Level 600 万 475 万 Other Ruby Annual Salary 350 万 225 万 100 万 Junior Intermediate Senior
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 Intro Install & 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 / CSS Name: 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 Ruby Class 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 OS Distribution Environment building is always a pain. Even for Mac. 35% 5% 60% Spends too much time. Windows Linux Mac
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 Git Experience 40% 40% Yes 35% 20% No 65% WEB Programmer Other programmer Non 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 30 20 10 会 社 成 立 0 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 Communication Feedback is important
Education is Experience Keep Accumulating Experience
Education is Balance Finding Balance Between Instructor and Programmer
ご 清 聴 ありがとうございました
Any Questions?