The focus of this course is to make you a better programmer. Ruby is our preferred way to do that. It’s absolutely ok if you don’t have any programming experience at all, this course is still for you. Why? Because in this course you will learn how to imagine what you are coding. I will use the help of the charts to make an image in your mind about what’s going on in the code. Even while setting up the environment I will explain how Ruby is working in your system.
We will first look at the fundamentals of Ruby like Numbers, Strings, Procs, Blocks, Array, Hashes etc. Afterwards, we will look at how those fundamentals are used to implement Object-oriented programming. Object-oriented programming is a big and most important world to understand. It is the core of good quality software and the area where most of the developers lag when it comes to writing clean code. After this course, writing clean code won’t be a problem for you.
In the end, we will be making our own gem. That is our resume in the form of a command-line application. You can use this command line application in both cases, either to showcase your Ruby skills or share your resume.
Introduction to Ruby
-
1The ideology behind Ruby
First, we will look at the ideology behind Ruby. This will help us understand the "Why" of concepts we will learn further.
-
2Installing VS code
We will be using VS code as our text editor for our course. It is not mandatory to use VS code only, you are free to choose any text editor of your choice. If you choose VS code then I can easily help you if you face some issues in the text editor.
-
3Installing RVM
RVM will help us manage different ruby versions on our computer. Also, we will use RVM to install Ruby.
-
4Installing Ruby
In this lecture, we will install Ruby version 3 using RVM.
-
5Understanding PATH
Understanding our current system structure related to Ruby interpreter/compiler.
-
6Managing different versions of Ruby
It's possible that in future you will use different versions of Ruby for different projects. In this tutorial, we will see how we can manage different Ruby versions.
-
7Hello world !!
Our first program in Ruby. A "hello" from us to the world via Ruby.
Complex data structures
-
8Variables
There are 4 types of Variables in Ruby. Local, Global, Class and Instance variables. We will look at Local and Global variables in this tutorial and will look at Class and Instance variables in lectures of Object-oriented programming.
-
9Strings and Numbers
In this tutorial, we will at how we can interpolate String and Ruby-specific things in Numbers.
-
10Symbols
Let's look at Symbols in Ruby. They are similar to Strings but not exactly the same. We will see how they are different from strings in this tutorial.
-
11Functions
In this tutorial, we will look at we can define and use Functions in Ruby
-
12Block
Blocks are a fundamental concept in Ruby. They are similar to functions and are used to make our code more modular. In this tutorial, we will see how to make and call them.
-
13Lambda
Lambdas are a way of defining a block. In this tutorial, we will see how we can use them.
-
14Procs
Procs are another way of defining a block. In this tutorial, we will see how we can define them and their difference from lambda.
Object Oriented Programming
-
15Array
Arrays are a great way to store data. This tutorial covers the basics of using arrays in Ruby.
-
16Traversing Array
In this tutorial, we will look at how we can traverse an array.
-
17Hash
In this lecture, we will look at Hash in Ruby and its basic operations.
-
18Traversing Hash
In this tutorial, we will look at how we can traverse a Hash.
-
19Conditional Structure
Conditions are the way we define different paths in our program. In this tutorial, we will see how we can use conditional structures in Ruby.
-
20Loops
Loops are a way of doing some computation multiple times until a condition is met or broken. In this tutorial, we will see how we can use loops in Ruby.
-
21Multiple files
Splitting the code among multiple files is the way to have an organized project. In this tutorial, we will look at how we can achieve that in Ruby.
-
22Interactive Ruby Shell
IRB is an interactive shell. We can execute Ruby code in it quickly and this enables us to try and test out things quickly. In this tutorial, we will see how we can use it.
Writing clean code
-
23Introduction to Object Oriented Programming
Understanding the basics of object-oriented programming
Looking at how to think in terms of objects
-
24Classes | Encapsulation
Defining a class
Understanding how class provides Encapsulation
-
25Objects
Understanding how to make objects in Ruby
Accessing methods on object
-
26Initialize method
What is initialize method and how it is used?
A mind image for instance variables and instance methods
-
27Class methods
What are class methods?
What are class variables?
How to use the 'self' keyword and what it means?
-
28Numeric class
Verify that everything is an object in Ruby
Seeing Numeric class in Ruby
-
29String class
Exploring String class in Ruby
-
30Getters & Setters
Looking at what are getters and setters
Understanding Ruby's convention of implementing them
-
31Inheritance
What is Inheritance?
How to implement Inheritance in Ruby?
-
32Encapsulating Child class
Encapsulating the methods provided by Parent class in Child classes
-
33.methods Method
How to know all the methods provided by an object?
Understanding 'methods' method
-
34Override method in sub class
Understanding what is method overriding
Looking at an example of method overriding
-
35super Method
What is a super keyword?
How does the super work in terms of flow control?
-
36Access Specifier | Abstraction
What are access specifiers?
How to use access specifiers in Ruby?
Difference between Protected and Private access specifier.
-
37Polymorphism | Template method
Looking at what polymorphism is.
Implementing polymorphism in Ruby via Inheritance.
-
38Error Handling
What is error handling?
How to implement error-handling in Ruby?
Files
-
39Adding Stereos and Rims
Expanding our source code by adding two new model: Rim and Stereo
-
40Dependencies management
How to manage injectable dependencies?
How to explicitly mention hard dependencies?
-
41Duck Typing
Understanding what is Duck typing
Looking at why it is said to have less number of public methods
Implementing Duck typing
-
42Sharing behaviour via Modules
What are modules?
How to use modules?
Using Gems
CLI Resume | Building our own Gem
What's next? | Where to go now?
-
49Boilerplate code of our gem | Bundler
Using bundler to generate boilerplate code for our gem
-
50Adding CLI to our gem
Using Thor gem to add CLI functionality to our gem
-
51Publishing our gem to RubyGems.org
Making a version change and publishing it to RubyGems.org
-
52Making updates to published gem
Making changes to already published gem