4 Weeks • Self-Paced • Intro Level
Learn Advanced Ruby: Behind The Magic
An advanced Ruby course for Rails developers to explain the "magic" that makes Rails code so impressive.
Ruby code feels like "magic" 🧙♂️
I spent 6 months learning Rails before I realized needed to learn Ruby. Ruby is a very flexible language, but that makes it hard to understand sometimes.
Here are some questions I was struggling with:
- How do I know if this is a variable or method with optional parentheses?
- What are symbols? How are they different than strings and why are they used so much?
- Where does my code even come from? Why are there no "require"s anywhere? And what is autoloading?
- How does ActiveRecord even know what attributes I have on my database table?
- Are modules even useful?
These questions had me thinking Ruby was a stupid, frustrating, awful language.
Most programming languages are designed for the computer to understand it first and humans second. I had spent my time learning Python. Ruby felt like it was full of too much stupid "magic".
Boy was I wrong.
Ruby is incredibly powerful.
All that stuff I was questioning... well that was intentional.
Ruby was designed to get out of the way on purpose. It wants you to focus on the problem, not what the computer needs. Everything about Ruby is designed to get out of your way so your code can communicate how it solves problems to other humans, not the computer.
When I realized that, my head started to explode. 🤯 You can focus on the business logic, not the syntax! This is amazing.
After years of building Rails apps, gems, and other things in Ruby, I realized I should try and compile all this knowledge into a course to save other people time.
We'll cover everything I wish I knew about Ruby when I started out as a Rails developer 10 years ago.
Since I started, I've recorded almost 400 screencasts on Ruby and Rails, built a Rails hosting service (in Rails!) and a popular SaaS template for building businesses. I've also built a handful of Ruby gems that have been collectively downloaded over 1.2 million times!
The trick to becoming good at Ruby is to understand the tools you have available.
Rails takes full advantage of these tools in Ruby to create DSLs for configuration, routing, and database querying. It also takes advantage of modules, class variables for fine tuning things, and a lot of other interesting tidbits.
In this course, we'll explore these core components of Ruby and recreate some of the features of Rails that you interact with every day.
We'll explain away the magic so you can see exactly how it works. The reality is there is no magic at all. Just some really smart use of Ruby's functionality.
This is the course I wish I had when I started. 😅
I always felt like I should take time to learn Ruby better, but I pushed it off. I'm sure you've felt the same way at one point.
Taking the time to learn Ruby well drastically improved my skills building gems, products, and Rails apps. I know that it's only going to make you a better developer.
Enough talking, let's get to learning Ruby. I'll see you in the course! 👋
— Chris Oliver
What is the format of this course?
We're not building a project, but exploring the individual features of Ruby that can be used to build frameworks and libraries.
In this course, we build small projects like:
- How ActiveRecord keeps track of validations (and inheriting them)
- The Rails routes DSL
- Rack and it's DSL
- an autoloader (like Zeitwerk)
- ActiveSupport Concerns from scratch
- A couple ActiveSupport features like Integer's .minutes and .hours
- The Rails link_to and div helpers
- Metaprogramming ActiveRecord features from scratch
- 3 drastically different refactorings of the Gilded Rose Kata
- And much more
How long is the course?
This course is 6 hours of video screencasts.
What experience level should I have before taking this course?
If you have a basic knowledge of Ruby and/or Rails, you'll be able to follow along with this course just fine.
Lessons in this course
Week 1
Coming soon
Week 2
Coming soon
Week 3
Coming soon
Week 4
Coming soon
Gilded Rose Kata
Coming soon
Bonus Lessons
Frequently asked questions
Can’t find the answer you’re looking for? Reach out to our customer support team.
- What is a One Month course?
- One Month courses are 100% online and self-paced so you can quickly learn topics in 30 days without feeling overwhelmed.
- How much time will I need to commit?
- Our courses require around 2-4 hours per week (depending on how fast you go). That time will be spent watching video lessons and following along with projects on your own computer.
- How is One Month different from other learning platforms?
- We focus on making courses that students complete and learn successfully all while living a busy life. We distill topics down in a fun, time-boxed curriculum that helps you succeed.
- Do I have to complete everything in one month?
- Nope! When you buy a One Month course, you can pick up the course at any time. If you get busy, take a break and continue where you left off when you're ready.
Testimonials
We have taught thousands of amazing people
“One Month has been such an awesome intro to programming, and I'm discovering that I love it!”
“One Month is the best place to learn programming. The teachers are phenomenal. People from all backgrounds can grasp the concepts.”
“I changed my life with a new career in just 6 months.”
“I've traveled a steep learning curve thanks to Chris' friendly and lucid style of teaching!”
“The best way to learn is to do, which is why One Month is so great. You watch, you do, you repeat. It's the best way to make things stick”
“So far you're the only one who has been able to teach me how to code. An INCREDIBLE thank you!”