CRAFTING A RUBY ON RAILSCOURSE FOR DEVELOPERS NYC.RB / MARCH 2012DANIEL DOUBROVKINE ( A K A DB .)#NYCRB @DBLOCKDOTORG
HOW DID YOU LEARNRUBY-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
A GOOD CLASS HAS NOMORE THAN 15 METHODS Nursery Algebra 1 @ UniGE 10 Kids 300 Students 15
CAP Availability and Frequency 8 Weeks Twice a Week 6-8pm + Office Hours Content Depth Push and Pull
I STILL REMEMBERMY 1ST GRADE TEACHER Learns Well as a Group Needs Special Attention Instructor Teaching Assistant Class Producer Pivots + Guests
PRIOR EXPERIENCEREQUIRED• 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 NEWCURRICULUM?• 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 RAILSBOTTOM UP1. Git Developer Workflow topic branches2. Ruby Basics hashes and maps3. Rack Pivotal Tracker static pages4. Rails MVC assemble a rails application5. RSpec tests first, then BDD6. Ruby Meta Programming lambda and method_missing Lecture to Homework to Practice
BUILDING A SYSTEMIN RAILS1. ActiveRecord postgresql Fabricator2. Rendering in Rails Devise haml, erb, sass Twitter Bootstrap3. Authentication Shoulda home grown, clearance, devise Capybara4. RESTful APIs controllers, sinatra-style DatabaseCleaner FFaker5. NoSQL mongodb6. Caching rails
FINAL PROJECT @ 4 WEEKS Ruby-on-Rails Stashboard Clone
FINAL PROJECT DEMOSJames Lin firstname.lastname@example.org https://github.com/jameslin101/stashboard http://linsanity-stashboard.herokuapp.comDaniel Harcsztark email@example.com https://github.com/MedText/stashfu http://stashfu.comShaan Batra firstname.lastname@example.orgJoshua Laroff email@example.comPeter To firstname.lastname@example.org https://github.com/generalassembly/boardroom http://evening-robot-1631.herokuapp.com+ a few other Stashboard clones
LOTS OF ROOM FORIMPROVEMENT• 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-devstext RFD to 83432 | follow @ga and @dblockdotorg
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.