crafting a ruby-on-rails course for developers
DESCRIPTION
Lessons learned from building a curriculum and teaching a class at GeneralAssemb.ly in NYC.TRANSCRIPT
CRAFTING A RUBY ON RAILS
COURSE FOR DEVELOPERS
DANIEL DOUBROVKINE (A K A DB.)
#NYCRB @DBLOCKDOTORG
NYC.RB / MARCH 2012
HOW DID YOU LEARN
RUBY-ON-RAILS?
How do you teach?
read a book
in a classroom
read blogs
hacked with friends
went to college
followed a tutorial
paired on the job
listened to a podcast
joined a community
took an online course
A GOOD CLASS HAS NO
MORE THAN 15 METHODS
Nursery
10 Kids Algebra 1 @ UniGE
300 Students
15
CAP
Availability and Frequency
Content Depth Push and Pull
8 Weeks
Twice a Week
6-8pm
+ Office Hours
I STILL REMEMBER
MY 1ST
GRADE TEACHER
Learns Well as a Group Needs Special Attention
Instructor
Teaching Assistant
Class Producer
Pivots + Guests
COOL KIDS
SIT IN THE BACK
PRIOR EXPERIENCE
REQUIRED
• Daily Practice Fluent With an Editor and Shell
• Basics of CS Algorithms & Structures
• Some Web Programming HTTP Fundamentals
WHAT DO I WANT OUT OF IT?
• RoR Experience w/ Instructor Build an Application From Scratch
• Demonstrable Project Show Prospective Employers
• Meet People, Make Connections First Step Into NYC Community
• Career Development Prepare The Next Transition
DO WE REALLY NEED A NEW
CURRICULUM?
• I Learned with a Tutorial Copy and Paste
Hit a Wall
Ask Google
• I Learned with the Help of My Team Pickup a Task
Hit a Wall
Ask Colleague
What if I had a
dedicated mentor?
BUILDING RAILS
BOTTOM UP
1. Git Developer Workflow topic branches
2. Ruby Basics hashes and maps
3. Rack static pages
4. Rails MVC assemble a rails application
5. RSpec tests first, then BDD
6. Ruby Meta Programming lambda and method_missing
Lecture to Homework to Practice
Pivotal Tracker
BUILDING A SYSTEM
IN RAILS
1. ActiveRecord postgresql
2. Rendering in Rails haml, erb, sass
3. Authentication home grown, clearance, devise
4. RESTful APIs controllers, sinatra-style
5. NoSQL mongodb
6. Caching rails
Fabricator
Devise
Twitter Bootstrap
Shoulda
Capybara
DatabaseCleaner
FFaker
FINAL PROJECT @ 4 WEEKS
Ruby-on-Rails Stashboard Clone
FINAL PROJECT DEMOS
James Lin [email protected]
https://github.com/jameslin101/stashboard
http://linsanity-stashboard.herokuapp.com
Daniel Harcsztark [email protected]
https://github.com/MedText/stashfu
http://stashfu.com
Shaan Batra [email protected]
Joshua Laroff [email protected]
Peter To [email protected]
https://github.com/generalassembly/boardroom
http://evening-robot-1631.herokuapp.com
+ a few other Stashboard clones
LOTS OF ROOM FOR
IMPROVEMENT
• Preparing for Next Lecture Give Reading Material & Prerequisites
• Follow Coding During Lecture Less Fierce Typing
• Explicit Learning Objectives Better Documented Assignments
• Clear Roadmap How The Curriculum Fits Together
• More On Practices Around Rails Thinking Deliberately About The Development Process
OPEN-SOURCE
EVERYTHING
https://github.com/generalassembly/ga-ruby-on-rails-for-devs
text RFD to 83432 | follow @ga and @dblockdotorg