In May, I spent a week in Hamburg giving a training in Ruby on Rails. I've already been a team-member on two Rails development projects, and it was as much a joy to teach as it is develop.
Ruby is a multi-paradigm, general-purpose programming language that particularly encourages simplicity and elegance in its users. Rails is a web application development framework built using Ruby. Like Ruby, Rails encourages you to develop elegant programs and has a very vibrant community of developers who provide a huge number of reusable components.
Web applications built on Rails include GitHub, Basecamp and Redmine.
The course I offer is summarised below and the recommended duration is 3-4 days.
Introduction to Ruby
- Installation
- Interactive Ruby Interpreter
Ruby Syntax
- Variables and scope
- Arrays and Hashes
- Strings
- Symbols
- Flow control
- Blocks
Object-Oriented Development with Ruby
- Classes
- Attributes and Accessors
- Method scope
- Mixins
- Reflection
Typical Tasks with Ruby
- File handling
- XML/JSON processing
- Times and dates
- Debuggging Ruby
- Using RubyGems
- Exception handling
Rails Principles and Architecture
- "Convention over Configuration"
- MVC
- REST
- Folder layout
Installation and Configuration
- Installation
- Databases (e.g. SQLite, MySQL, PostgreSQL)
- Using Rake
Developing a Typical Rails App
- Creating controllers, models and views
- Using scaffolding
- Routing
- Migrations
- Templates
- Validation
- Associating models
Layout and Scripting
- Scripting with JavaScript or CoffeeScript
- Styling with CSS or SCSS
- Templates with ERB or HAML
Making a Killer Rails App
- User authentication
- Automated Testing
- Internationalisation
- Deployment
- Mobile Rails apps