In this unit you will learn Ruby, the language designed specifically with programmer happiness in mind. It’s a healthy chunk of learning but, by the end of it all, you’ll have built some pretty sweet projects including Tic Tac Toe, Hangman, a real web server, and even Chess. You’ll be able to put together a Twitter spambot (that really spams!), save and open files, test out your code, separate your spaghetti code into nice modular classes, and even reproduce some basic algorithms and data structures for solving complex problems. Basically, you’re going to start feeling a whole lot more like a real programmer and that feeling will be justified.
Some people believe you can just dive right into Rails and start firing out websites. Rails is a framework built using Ruby and every piece of code in it is Ruby. When (not if) something in your project breaks, you’d better be able to debug it. And what happens when you want to stretch your wings and do something just a bit beyond what the vanilla tutorials show you how to do? The amount of time you’d spend googling your error messages and staring blankly at help docs was better spent learning Ruby. Despite this, we’ve offered the “cutting corners” path as an option below that gets you there faster.
As you may gather, this is also where the real project work begins. Some of the early material will be fairly straightforward and will rely on simple exercises to help reinforce understanding. We’ll learn using some Codecademy modules at first but the goal is for you to get a much deeper and more practical understanding of the material than that. As we get further along and into some of the more advanced topics, we’ll be learning less and building more… just the way it should be. Let’s get learning!
Ruby’s a big language so it’s been broken up into smaller chunks to make it more digestible. The format should feel quite familiar to you since it’s essentially the same as we used in Web Development 101.
In each lesson:
- We’ll introduce the topic briefly and provide you with a list of things you should pay attention to.
- You’ll be asked to do readings, watch videos, do online courses or otherwise consume content to initially learn the material.
- At the end of most lessons will be exercises to help you solidify your knowledge of the material.
- Every few lessons you will be asked to build a larger project. These are best done with a friend.
- Finally, we’ll include additional helpful resources and other potentially useful tidbits at the end of each lesson.
Two Paths Forward
Everyone is coming into this with a different goal in mind, so to accommodate that, here’s two options for your path forward:
- If you’re just trying to race ahead and put up some Rails sites as fast as possible (and worry about learning the fundamentals later), then your best bet is to first complete the Basic Ruby section, which uses primarily Codecademy as a resource, and then skip to the Rails course. Your knowledge won’t be complete but you’ll be in a pretty good spot to start from if you’re in a hurry.
- If you’re really looking for a solid, sustainable base of knowledge, just stick to the normal roadmap. What we cover will give you a problem solving ability that you won’t otherwise have. The projects, especially the final one, are worthy feathers in your cap that you can show off to any employer. We’ll get you there and there really aren’t any shortcuts in the long term.
Our Primary “Textbooks”
- Codecademy.com has a lot of great introductory content to get you ramped into the Ruby language. You’ve already read Chris Pine’s Learn to Program in the Web Development 101 section for a good introduction, and the Codecademy stuff will overlap a bit and carry forward from there.
- Peter Cooper’s Beginning Ruby is a solid introduction to Ruby that covers pretty much the breadth of the language as you need to understand it. It’s a bit outdated but Ruby hasn’t changed a whole lot since then. The goal of this project is to move BEYOND Codecademy and other simple, free resources and get you building stuff on your own. This book will start covering some of the more intermediate/useful stuff that you’ll need to know to do that.
The (Free) Backup “Textbooks”
Some things you just won’t pick up right away or their coverage by main resources will fall short of your expectations. Luckily there are lots of options for places to shore up your understanding:
- The best free online book: Dan Nguyen’s Bastard’s Book of Ruby. Basically, if you don’t like the content we’ve roped together, this is your resource to shore up your understanding.
- Another free online book: Zed Shaw’s Learn Code the Hard Way, an extension of his wildly popular Learn Python the Hard Way into Ruby. The downside is that the flow feels a bit choppy and parts aren’t fully complete.
- The other good book, available in the older edition online for free: The “Pickaxe”, or Programming Ruby 3rd Edition. This, too, is a bit outdated.
Okay, enough talk… Let’s get started learning Ruby!