You've got the building blocks of Ruby out of the way, great! Now it's time to get into the fun stuff... how do we combine those building blocks in the most efficient and elegant ways to produce the programs we'd like to write?
The concepts you'll learn here are often less specific to Ruby itself and more widely applicable to any object-oriented language. That's because the fundamental concepts are just that... fundamental. Don't repeat yourself. Modularize your code. Have your classes and methods only do one thing. Show as little of your interfaces to the world as you can. Don't make methods or classes heavily dependent on each other. Be lazy. These will take some time and practice to implement effectively, but you'll already be taking a big step towards creating high quality code just by finishing up this section.
There's a lot to do here but stick with it! We'll start with some refactoring work which should be a quick refresher of some concepts we covered in the last lesson before moving into some of the OOP principles. The Codecademy lessons are interspersed with their projects so you'll get a chance to apply what you're learning. The Beginning Ruby book will help you understand the material a bit deeper, which will be important when you are creating your own projects next.
Look through these now and then use them to test yourself after doing the assignment
Note: This is again a long list of things to understand! Read through the list, breathe deep, do the assignment, and then come back to them.
Classes and Methods:
#sortetc instance methods?
#superdo? Why use it?
Read Beginning Ruby Chapter 5:
The Ruby Ecosystem for a brief break from code to learn more about the world of Ruby.
Read Beginning Ruby Chapter 6:
Classes, Objects, and Modules. It will extend your knowledge deeper than Codecademy alone.
Read Beginning Ruby Chapter 7:
Projects and Libraries
Read Beginning Ruby Chapter 8:
Documentation and Error Handling but skip the stuff on Testing (pgs 175-179)
Read through these reinforcing posts by Erik Trautman to help you answer the questions in the "Points to Ponder" section:
Read the Bastard's Chapter on Error Handling to reinforce your understanding of dealing with errors.
Glance over the Ruby Style Guide so you have an idea of how to make your code look more professional.
This section contains helpful links to other content. It isn't required, so consider it supplemental for if you need to dive deeper into something
From the creators of The Odin Project...