Ruby Metaprogramming - Complete Course (Udemy.com)

Learn metaprogramming! Start writing elegant Ruby & Rails code and understanding all the magic behind Ruby on Rails.

Created by: Said Abduvaliev

Produced in 2017

icon
What you will learn

  • Understand the magic behind Ruby on Rails.
  • Write better, more elegant & efficient Ruby code and tests.
  • Join the "Ruby Guru" pride.
  • Write own DSL, gems, etc.
  • Understand most of the code in popular gems.

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 90 / 100

icon
Course Description

Just like many other ruby developers, I wanted to learn metaprogramming to make the leap from Ruby novice to Ruby pro. But, approaching the subject felt a bit intimidating. I tried to learn metaprogramming several times and every time I tried, all available materials were referring to even more complicated and less known concepts such as: eigenclasses, singleton classes, ruby object model, classes being objects themselves, etc.
So, I spent several months reading about all these concepts and synthesised all available material. At the end, it just "clicked"! It turned out to be very simple! The problem was that there was no single resource where all this concepts were put together. So, I decided to produce this corse. I hope it will save your time and you will find it useful.

This video course will teach you ruby metaprogramming by introducing small, simple and less known ruby insights in each video. And once you learn them, metaprogramming will just start to make sense.
At the end of the course, you will:
  • Be better Ruby developer who can write elegant code using Ruby's metaprogramming features.
  • Make your test code more concise by writing test that dynamically generate code that covers all test cases.
  • Be able to understand and explain the magic behind the code/syntax in all popular gems.
  • Better understand the Ruby language.
  • and of course write your own DSL's for your business domain (just like rspec, rake, etc.).
Course overview

Metaprogramming is such an integral part of the Ruby language, that in order to learn it, you need to understand the specific language features of Ruby. This features are less known and not covered in books. But, once you are introduced to them, metaprogramming starts to make sense. That's why, the course will start by introducing several key Ruby language insights. After this section, you will understand why is it that some method or variable is not available in some scope and available in others or how scope changes in your code and more.
In the second section of the course, we will cover all the SDK methods that are involved in metaprogramming. Along the way, we will go through several examples that demystifies magic behind most popular gem code as well.
In the last section of the course, we will put everything we've learnt into practice and will build our own rspec, domain specific language and some of the rails most popular magical methods.Who this course is for:
  • Ruby developers who are familiar with the ruby language basics, syntax, etc.
  • Ruby on Rails developers who want to improve their code.
  • Developers who want to understand the magic behind Ruby on Rails code.
  • This course is probably not for you, if you are new to Ruby and want to learn the Ruby programming language basics.

icon
Instructor Details

placeholder

Said Abduvaliev is a an experienced full stack web developer with over 10 years experience. In the last 5 years, he has been involved in several successful startups built on Ruby on Rails. Latest involved projects: KupiKupon, BeSmarty, LocalOne, etc. (12M page views/day).
Said has experience writing enterprise systems using Java, PHP and Ruby. He has worked for and involved in project for United Nations Development Programme, Ministry of Economy, Tax Committee and others. He has always been a passionate teacher. Currently, he gives lectures at the University of Westminster.
Also, he enjoys front-end development. He writes his thoughts on JavaScript and jQuery in his popular "jQuery HowTo" blog.

icon
Reviews

4.5

100 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Metehan Gzlesoy on 8/25/2020

There can't be that much slide narration, my expectation could tell through the project.

By Yasuhiro on 2/22/2020

The instructor has a lot of knowledge of metaprogramming. There were lightbulb moments throughout the course. That was good. However, there were also some confusing parts with terms used interchangeably and/or lack of explanations. In a case like this, we usually turn to forums, but there were no meaningful discussions. I asked for a Slack invite, but it was never given. The accompanying resources are only a PDF version of the recording; You have to copy everything manually in case you would like to demonstrate it locally. Like some people expressed, this is not a kind of thing we expect from Udemy. We like a workshop-like environment full of interactions. If you are a beginner, you probably want to solidify your knowledge of Ruby and feel comfortable with the language before taking this course. It's a tough topic.

By Verny Rivera Duarte on 1/21/2020

So far it has been a really good experience. I would have chosen a different naming convention to facilitate the understanding rather than Myclass. Anyway, it's a complex topic and the explanation has been really good.

By Eswar Dharmal on 11/16/2019

Great tutorial, every video has something new to learn.

By T K on 11/9/2019

There are few courses on Udemy that are truly one of a kind. Most of the time you have a choice between at least 3 or 4 courses that offer approximately the same content, and you choose of them. But only very rarely will you come along a course that is truly unique, and goes above and beyond. This is one of those courses. As the name suggests, it's pretty damn 'meta'. If you want to know why Ruby is so weird, and why everything is so different from all the other OOP languages, and why that's actually a cool feature, go and take this course.

By Planarind Online Services India Private on 10/23/2019

Getting Positive vibe about the course. Excited for next lectures.

By Rajesh Wagh on 5/24/2019

This course is really great in order to understand "WHY" and "HOW" things work in Ruby, instead of just knowing "WHAT" that specific thing is. The course has a concise explanation for a topic in hand. Though its explained using slides, the contents are very insightful & well organized.
I would highly recommend anyone who has basic to an intermediate understanding on Ruby language. ( Have already recommended many of my colleagues while I was halfway through the course :) )
Thanks for bringing such course & looking forward to more of such courses in future.

By Prayas Arora on 5/2/2019

This is the best course not only to understand Ruby's metaprogramming but also a lot more about the language as well. I searched a lot to find the best content for ruby metaprogramming but always end up with partial and incomplete knowledge. Trust me its the final station, the real deal. I have a book named Metaprogramming Ruby which is of 300 pages. Trust me this course has more content and even everything is so beautifully explained that even with the basic knowledge about Ruby you can learn what only few percent of ruby programmers have the knowledge about.

By James Paradis on 4/13/2019

I found the early lectures on class hierarchies and eigenclasses to be dry and somewhat confusing. I wasn't sure that I understood it 100%, and had the same feeling I had in college where missing a key point in the early lectures would leave me in the dust and unable to catch up. Fortunately, the "Metaprogrammer's Toolkit" lectures seem to be much easier to follow...

By Yuri Tarasov on 4/6/2019

Good and exhastive explanation of the topic

By Marcelo Akihiro Miyachi on 3/17/2019

Perfect! Clear explanation, examples, exercises, pdf material and resources!
I'm a rails developer and I'm learning a lot!

By Abhijit Sharma on 2/23/2019

Fantastic!