Ruby Programming
with Mike Clark
Learn how to write object-oriented programs with Ruby in this 3-day, hands-on training course taught at your team's location—and have fun doing it!
- Write more powerful apps and libraries with less code by becoming fluent in Ruby, including the new idioms in Ruby 1.9.
- Create practical Ruby programs to quickly solve problems and automate tasks on your projects without a lot of fuss.
- Learn the language that makes Rails tick so you understand what's going on and can write more effective, idiomatic Ruby code.
- Rediscover the joy of programming!
If you want to become fluent in Ruby, or you want to get the most out of Rails, then this course is for you. This isn't your typical (boring) language reference course where the focus is on understanding the nuances of the syntax. Instead, you'll learn Ruby by using it as a powerful tool to actually create something useful!
In this course, we'll create a real application step-by-step through a progression of tangible goals. You'll come away with hands-on experience you can immediately apply to your Ruby or Rails application.
What Will I Learn?
How to Write and Understand Ruby Programs. Through a series of guided hands-on exercises we'll build a real Ruby application from start to finish. Along the way, you'll learn how to write elegant, expressive object-oriented programs the Ruby way. This course is offered in a 2 or 3-day format, depending on the scope of topics you're interested in learning.
Getting Started
Ruby has a rich set of programming tools and
libraries. Setting up your working environment and using it effectively is the first
step toward becoming a productive Ruby programmer. Topics include:
- Installing Ruby
- Running Ruby: using the interactive Ruby shell (irb) and writing Ruby program files
- Using Ruby's documentation system to get help
- RubyGems: how to find them, use them, and understand them enough to diagnose problems
Ruby Language Constructs
When you begin programming in Ruby,
you may notice some constructs that are familiar from other programming languages. But
Ruby comes with some pleasant surprises, as well. And Ruby 1.9 includes some important
new features you'll want to add to your repertoire. Topics include:
- Classes and objects
- Strings, symbols, and numbers
- Loops and conditional expressions
- Arrays and hashes
- Regular expressions
- Exceptions
- Notable changes in Ruby 1.9
Blocks
Blocks are a key ingredient to writing good Ruby programs, and perhaps
the most powerful (coolest) Ruby feature. Look at any idiomatic Ruby code and
you're likely to see blocks at work. Once you understand blocks, you start
to program differently. Topics include:
- Iterators
- Calling methods with blocks
- Writing methods that take blocks
- Saving blocks: Procs and lambdas
- Effectively using blocks in your programs
Object-Oriented Programming
Ruby is an object-oriented
programming language. It's also a dynamic language. But what does that really mean and
how does it change the way you write programs? Topics include:
- Object-oriented design techniques in Ruby
- Dynamic typing: why it matters and how to use it to write more flexible programs
- Understanding Ruby's object model so you can code Ruby with confidence
- Sharing code using inheritance, modules, and mixins
Ruby Programming Idioms
Writing a Ruby program that works isn't
always the same as writing a good Ruby program. To master Ruby—to write
compact, readable, and flexible Ruby programs—requires that you learn the idioms and
culture of the Ruby community. That's what this course is all about: becoming truly
fluent in Ruby!
Who Should Attend?
Programmers. This course is for programming teams new to Ruby who have programming experience in another language. No prior experience with Ruby or object-oriented programming is required.
Who Teaches the Course?
Mike Clark is the owner of The Pragmatic Studio, and also a Ruby, Rails, and iOS developer, author, and trainer with over 15 years experience. He's the author of Advanced Rails Recipes and Pragmatic Project Automation, and co-author of Agile Web Development with Rails. You can check out his latest client projects and endeavors on his personal site.
What Do I Need?
This course is taught on site at your location. As such, you'll need the following:
- a room to comfortably accommodate your team
- a laptop projector and screen
- a whiteboard or flipchart with markers
- laptops (or desktops) for each attendee
