1. CRAFTING A RUBY ON RAILS
COURSE FOR DEVELOPERS
NYC.RB / MARCH 2012
DANIEL DOUBROVKINE ( A K A DB .)
#NYCRB @DBLOCKDOTORG
2. HOW DID YOU LEARN
RUBY-ON-RAILS?
read blogs
read a book
went to college
How do you classroom
in a
teach?
listened to a podcast
paired on the job
followed a tutorial
hacked with friends
joined a community
took an online course
3. A GOOD CLASS HAS NO
MORE THAN 15 METHODS
Nursery
Algebra 1 @ UniGE
10 Kids
300 Students
15
4. CAP
Availability and Frequency
8 Weeks
Twice a Week
6-8pm
+ Office Hours
Content Depth Push and Pull
5. I STILL REMEMBER
MY 1ST GRADE TEACHER
Learns Well as a Group Needs Special Attention
Instructor
Teaching Assistant
Class Producer
Pivots + Guests
7. PRIOR EXPERIENCE
REQUIRED
• Daily Practice
Fluent With an Editor and Shell
• Basics of CS
Algorithms & Structures
• Some Web Programming
HTTP Fundamentals
8. 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
9. 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?
10. BUILDING RAILS
BOTTOM UP
1. Git Developer Workflow
topic branches
2. Ruby Basics
hashes and maps
3. Rack Pivotal Tracker
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
11. BUILDING A SYSTEM
IN RAILS
1. ActiveRecord
postgresql Fabricator
2. Rendering in Rails Devise
haml, erb, sass
Twitter Bootstrap
3. Authentication Shoulda
home grown, clearance, devise
Capybara
4. RESTful APIs
controllers, sinatra-style DatabaseCleaner
FFaker
5. NoSQL
mongodb
6. Caching
rails
13. FINAL PROJECT DEMOS
James Lin jameslin101@gmail.com
https://github.com/jameslin101/stashboard
http://linsanity-stashboard.herokuapp.com
Daniel Harcsztark dan@fetchly.com
https://github.com/MedText/stashfu
http://stashfu.com
Shaan Batra sb1752@gmail.com
Joshua Laroff jlaroff@gmail.com
Peter To pt9386@gmail.com
https://github.com/generalassembly/boardroom
http://evening-robot-1631.herokuapp.com
+ a few other Stashboard clones
14. 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
15. OPEN-SOURCE
EVERYTHING
https://github.com/generalassembly/ga-ruby-on-rails-for-devs
text RFD to 83432 | follow @ga and @dblockdotorg