RubyCon 2011 Boston

RubyCon 2011 Boston

Learn how to write object-oriented programs with Ruby in this 2-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. The event will cover the following topics:
  • 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 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?
Experienced Market leaders from industry
What Do I Need?
  • laptops  for each attendee

Outline of Course
Day One: Ruby Basics
  • Ruby Overview
  • Command-line Tools
  • Core Ruby
    • Syntax
    • Functions
    • Control Flow
    • Built-in Types
  • Collections
  • Blocks and Iterators

Day Two: The Ruby Object Model
  • Objects
  • Classes
  • Inheritance
  • Dispatching
  • Modules
  • Scope

Advanced Topics (time permitting)
  • Exceptions
  • Advanced Blocks
  • Classes as Objects
  • Metaprogramming
  • IO

Tricky Ruby features and interview questions