Learn object-oriented programming in this step-by-step course.
Power up with Ruby and get ready for Rails!
Ruby is a versatile object-oriented programming language that's a delight to use. Learning it gives you the power to create an endless variety of programs. When it comes to creating web applications in particular, you can take what you know about Ruby to a new level with the Ruby on Rails web framework.
In this best-selling video course, you'll learn all the fundamentals of Ruby and how to put everything together as we write a program from scratch. You'll come away ready to write your own Ruby gem or jump into Rails with confidence!
“If I were going to learn Ruby from scratch today, this is how I would do it!” Chad Fowler, Author of Rails Recipes and The Passionate Programmer
“The course is outstanding! The best I've ever taken. Rails is so much less mysterious now that I'm learning Ruby the right way.” Tony Barone
Build a Complete, Tested Ruby Program From Scratch
Master object-oriented programming the Ruby way.
In this course we follow a step-by-step, project-based approach to learning how to write well-designed Ruby programs. By building a real project with real code from scratch, you'll come away knowing how to write your own Ruby programs and have a deeper understanding of both the how and the why.
Ruby Programming Environment
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.
- Installing Ruby on your favorite operating system
- Running Ruby using the interactive Ruby shell (irb) and writing Ruby program files
- Using Ruby's documentation system to get help
- Installing external Ruby libraries using RubyGems
- Troubleshooting common problems
Ruby Language Constructs
If you're already programming in another OO language, some of Ruby's constructs may feel familiar. But Ruby has some pleasant surprises, as well. Topics include:
- Expressions and variables
- Numbers, string, and symbols
- Loops and conditional expressions
- Arrays and hashes
- Classes, modules, and structs
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? We'll show you! Topics include:
- Using built-in Ruby classes
- Defining your own classes with state and behavior
- Creating unique objects
- Telling objects what to do by calling methods
- Modeling class-level inheritance relationships
- Sharing code with mixins
Object-Oriented Design Principles
Defining classes and using objects is a good start, but along the way you'll also need to consider the overall design of your program. Can you make changes without ripple effects? Can you easily test the code? Can someone else use the code as a library? Topics include:
- Separation of concerns
- Don't Repeat Yourself
- Tell, Don't Ask
Blocks and Iterators
Blocks are a fundamental and powerful aspect of the Ruby language. You'll find blocks used throughout good Ruby programs. And many of the methods found in the Ruby standard library itself take blocks. To be an effective Ruby programmer you must master blocks! Topics include:
- Calling built-in methods that take blocks
- Writing your own methods that yield to blocks
- Implementing custom iterators
- Effectively using blocks in your programs
Organizing Ruby Code
Once you've conceptually organized your program into classes and modules, you'll want to further organize it for reuse, unit testing, and distribution.
- Creating a Ruby project structure
- Separating source files for easier reuse and testing
- Namespacing to avoid naming clashes
Ruby has great support for interacting with the external world, whether it be through files, an interactive console, command-line input, or even the web. You'll need some form of I/O in your application, but once you learn Ruby's I/O libraries you might also start rewriting one-off scripts in Ruby, too. Topics include:
- Reading data from files
- Writing data to files
- Creating an interactive console prompt
- Handling command-line input
The Ruby community places a high value on testing, and it's for good reason. Testing gives you the courage to make changes, and as a result you're more productive. Topics include:
- Writing and running unit tests with RSpec
- Test-driven development and the red-green-refactor cycle
- Stubbing methods to control tests
- Refactoring code, safely!
Finally, you'll likely want to package up your Ruby code and share it with your friends… or the world! Topics include:
- Conforming to RubyGems conventions
- Writing a GemSpec
- Building a RubyGem
- Publishing a RubyGem to a public server
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!
Here's What You Get:
Streamable and downloadable, DRM-free videos on any device. English subtitles on each video.
Apply what you learned in the videos through a series of exercises to build a slightly different program on your own computer.
PDF cheat sheets that summarize the syntax, concepts, conventions, and shortcuts taught throughout the course.
Includes starter files, stepped versions of the app for each module, and all the source code for two Ruby programs.
Post questions, get answers, and connect with other students who are taking the course.
No monthly subscription or time limit. Start when you want and repeat as often as you like!
For New Ruby and Rails Programmers
No programming experience required.
New to OO programming?
Perhaps you're looking to jump-start your programming career or join a Ruby/Rails project. It all starts here! You'll learn the fundamentals of object-oriented programming the Ruby way through live coding, animated visuals, and hands-on exercises. No prior programming experience is assumed.
New to the Ruby language?
Maybe you've been intrigued by Ruby, but haven't yet had the opportunity to learn it comprehensively from beginning to end. Here's your chance to dive in! You'll learn all the things you'd expect in an OO language, as well as the things that make Ruby unique so you can exploit its true power.
New to the Rails web app framework?
Perhaps your goal is to write (or maintain) web applications with Rails. You'll have a much smoother ride once you're comfortable with the Ruby language. By taking this course, you'll understand some of the "magic" behind Rails and, more important, you'll be in a better position to use it to your advantage.
Already familiar with Ruby?
If you've dabbled with Ruby, but wondering if you're using it to its full potential, this course will help you put it all together! Ruby is different than other languages, and you'll need to use different techniques to get the most out of it. You'll learn to design flexible Ruby programs using modules, mixins, dynamic typing, blocks, and so on.
We aim for 100% satisfied developers, so if this course turns out not to be a good fit for you, we'll gladly issue you a 100% refund.
Created with 💛 by Mike and Nicole Clark
Hi, we'd be delighted to have you along as we create stuff in the Studio!
It's been over 15 years now since we first discovered Ruby, and we still use Ruby almost every day. It's a lot of fun while at the same time being an incredibly powerful language. We're grateful that we've had the opportunity to teach Ruby to thousands of new and experienced developers over the years.
As with all our courses, this is the course we wish we had when learning Ruby. One that's easy to jump into, doesn't get bogged down in syntax minutiae, and focuses on building a realistic Ruby program. We spent around 6 months designing this course in a way that lets you comfortably learn everything in around 6 hours. We hope you enjoy it!
Thousands have loved learning Ruby this way!
Here's what some of them have to say…
“Your course has been one of the most amazing learning experiences I have ever had. I'm absolutely loving it. The speed of the course is perfect. The tone of the videos is just right, and the workbooks are great.” Ross Curzon-Butler
“First of all, Mike and Nicole were fantastic! Everything was explained clearly and step by step (and it really felt like they were explaining things directly to me). I was trying to learn Ruby on my own through various online tutorials, but they only offered bits of information that I did not know how to put together. This course was structured very well so I always learned things in context.” Marcin Drozd
“I think this was the best course I've ever seen online. It felt really well structured and seemed to give me just the right amount of knowledge from lesson to lesson.” Antonio Borges Rosado
“I've been trying to add Ruby and Rails to my tool belt for the past 3 years, and have tried a handful of books and online courses. But, I've never been able to stick with any until I tried your Ruby course. I'm loving the course!” Jeremy Kratz
“The course is great! It really teaches you how to think like a Ruby developer.” Matt Halliday
“I've been developing Ruby on Rails websites and apps for two years. This course gave me dozens and dozens of 'Ah-ha!' moments with regards to what is actually going on in my Rails apps. My confidence for building new Rails apps and refactoring my existing apps has increased tremendously.” Chip Ashby
“I have tried many things over the past year and nothing clicked. But your class really got me excited about Ruby. The best thing about your class is that you taught software design principles, not just how to run a loop or assign a variable. That is what made everything click and made it practical. You have really helped me further my goals!” Paul Haddad
“I did all the Ruby / Rails courses when I was working to get a better job. They were the single most powerful resources for me! Now I’m working on the other end and hiring a junior developer. We take them through some code challenges and applicates who have worked through Pragmatic Studio sail through all of our technicals. I recommend your courses to anyone looking to get into web development! Thanks again for such a great product.” Wassim Metallaoui