-
Notifications
You must be signed in to change notification settings - Fork 16
Home
Welcome! If you're reading this, let's assume that you're interested in teaching Ruby and Rails to aspiring developers. This wiki offers advice and structure on this topic, and it assumes that the material is being taught to adults in an immersive code school environment.
Specifically, this is being taught over 9 weeks of lecture at the Iron Yard campus in Durham, NC, and was developed by Mason F. Matthews. Lectures are assumed to last between 3 and 3.5 hours (including break time) and to occur 4 days per week.
From the widest point of view, this curriculum takes the following weekly approach:
- Ruby
- OOP and Testing
- Databases and Rails Models
- APIs and Rails Controllers
- HTML and Rails Views
- Rails Features
- JavaScript
- Web App Patterns
- Web App Patterns
However, this overview hides many layers of complexity. To dig one level deeper and see broad daily topics (plus the reasoning behind some of the ordering decisions), read this detailed week-by-week page.
For an extreme level of detail, you have two options. If you prefer to read through the content linearly, explore weekly course web pages here. If you would rather see the curriculum in a matrix, take a look at the curriculum spreadsheet here.
If you choose the spreadsheet, you'll notice many
- Exercises
- Challenges
- Assignments
- Readings
- Workshops
- Projects
- Pair Programming
- Testing and TDD
- Estimation Practice
- Working with Legacy Code
- Deployment to Heroku
- README Writing
- ERDs
- Workflow Diagramming
- Homework Review
- Challenge (weeks 3-9)
- Break
- Problem of the Day (weeks 1-5, occasionally afterwards)
- New Lecture Content
- Homework Prep
- Human Learning: To learn, you should...
- Get related knowledge in advance
- Expect to exert effort
- Try before being taught
- Review when memory is stale
- Scar in moderation
- Retrieve rather than re-expose
- Interleave topics
- Elaborate rather than repeat
- Study concept over implementation
- Use short feedback loops
- Agile Practices
- Iterate with rigorous data collection and reflection
- Estimating is hard
- Hammer-user vs. shiny-object
- All code becomes legacy code
- Debugging is everywhere
- Data-first vs. behavior-first
- Start small
- Style matters early (sadly)
- Consider technical debt
- git and GitHub Practices
- init, add, commit, push
- fork, clone, pull, .gitignore
- pull, branch, merge, stash
- branch, pull request, merge
- Common git workflows (e.g. Gitflow)
- reset, rebase, filter-branch