
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
In this lecture we get our introduction to what programming is, what it represents, and what it takes to program.
We discuss the central role of programming in the modern world and how technology is part of every aspect of our lives.
Programming is not just for computer scientists. Understanding code and how programs work is relevant in many modern professions.
We take a look at the application that we will be building in this final project for this course.
Build a log parser for an Apache style access log to extract emails and cross-reference them with users data, revealing patterns in directories and browser info.
In this video, we go over the installation of RVM and using it to run the Ruby interpreter on our MacOS environment.
The commands are available in the resources section.
We go over the Windows installation options for Ruby
We go over the installation options for Ruby on Linux
A guide to how troubleshoot errors and resources for looking for answers online.
An overview of some of the popular editors that we can use for programming in Ruby.
We go through the installation of the Atom editor
We go over what the terminal is, and some useful commands we can use in this environment.
We start learning how to use the terminal for our programming.
We review how to create directories through the command line and move between different directories.
We look at how to create files on the command line and open them for editing.
Create your first Ruby file named hello.rb in the editor or command line, recognize the .rb extension, and run it with the Ruby interpreter.
Use code commenting in Ruby to document code and guide future readers, noting that comments do not run and can temporarily disable lines to test outputs.
Explore interactive ruby (irb) by launching irb, running quick expressions like puts and 2+2, and seeing immediate outputs, with tips on when to use files instead.
We set up our environment for the programming that we will be doing.
Participate in a codealong to create a Ruby file, print name and favorite food, explore string formatting with new line characters and puts, and preview variables and terminal input.
Use Ruby to calculate and print your age in these three ways - in days, in hours, and in minutes
Explore variables in Ruby by creating a new project and assigning values such as a = 'hello' and b = true, then run the code to see valid Ruby.
Defines strings as sequences of characters and shows how Ruby uses double and single quotes, termination rules, and dynamic typing that lets a string become a number.
Discover how ruby strings work and how to interpolate ruby code inside a string to insert variables like a and b, enabling templating and dynamic output with puts.
Explore string manipulation in Ruby by reversing strings, using non-mutating and mutating methods, and understanding how index positions and bang methods change the original data.
Master logic comparisons in Ruby by evaluating true and false with and, or, and the precedence rules; use parentheses to control evaluation order, and understand short-circuit true-first behavior.
Learn how Ruby's if statements execute code blocks when conditions evaluate to true, using comparisons like A equals B and five is greater than four.
Explore branching logic with else if in Ruby, moving beyond a simple if to handle multiple conditions from command-line input, including a catch-all fallback.
Explore branching logic with case statements in Ruby, using when clauses and end to handle multiple conditions from command-line input. See how case compares to switch and the default case.
Learn how to find text inside strings using include, compare with equals, and apply conditionals like if, else, and case to user input such as days.
Learn integer operations in Ruby, including addition, subtraction, multiplication, division, and modulo, using variables and examples, and understand integer versus float arithmetic.
Discover how Ruby handles operations with integers and floats, showing why 1 divided by 2 yields 0 for integers but 0.5 with 1.0/2.0, and when to use floats for accuracy.
Learn how Ruby treats string numbers and casts them to integers with to_i for arithmetic. See why integer division returns zero and how converting to floats fixes results.
Combine strings and numbers in Ruby by taking user input, generating a random number, casting to numeric types, and displaying products, divisions, and sums with string interpolation.
This is the introduction to the Codealong Exercise for this section.
This video shows the step by step coding of the Guess the Number game
In this assignment, you will build an input analyzer that will return different messages based on the validation of input from the user.
Explore how Ruby methods return values, including default returns from the last line, using return statements, and conditional returns based on input.
Introduce arrays as a data structure by creating empty and populated arrays, and explore zero-based indexing, element access by index, and common methods like length, first, and last.
Convert a looping Ruby example from a while to an explicit break, using a choice input to exit the loop and avoid infinite looping.
This is the introduction to the Codealong Exercise for this section.
We will be building a contacts directory that can be added to from the command line.
In this assignment, you will be building a collection of usernames and passwords based on user input.
Explore what algorithms are and why they matter, focusing on sorting methods like selection, insertion, merge, quick, and bubble sort; with applications in data analysis and encryption.
Understand how the bubble sort algorithm works and its order of complexity
In this optional video, we are going to implement a sorting algorithm for arrays, which will take an array as input and return it with the numerical elements sorted from smallest to largest.
There is a PDF file and a Ruby file with the source code in the resources for this video
We will use the Bubble Sort algorithm - https://en.wikipedia.org/wiki/Bubble_sort
Explore how to control loops using next to skip iterations, apply modulo for odd numbers, and branch with break and conditions to process numeric collections in Ruby.
Learn how to iterate over ranges in Ruby using inclusive and exclusive syntax, reverse ranges, and the times method to process numbers without creating arrays.
Explore the enumerable module in Ruby using the ruby dog dot org docs, learn how each, all, any, detect, and entries operate on lists, and understand enumeration versus iteration.
explore enumerators in ruby, including how each with index yields item and position, calling without a block, and converting indices to strings to run array methods.
Explore Ruby array and hash transformations with map, select, and reject to filter and create new collections, including in-place bang variants.
Explore recursion in Ruby by defining a method that calls itself, establish a base case to stop the stack growth, and contrast it with looping to prevent stack overflow.
This is the introduction to the Codealong Exercise for this section.
We create filter functionality for a products catalog.
Open a file in Ruby, assign the file object to f, and print it with puts; explore existing versus non-existent files and future read, write, and close operations.
Learn how to write to a new file and append to it in Ruby, creating Bar.txt, demonstrating append mode versus overwrite, and verifying the file contents.
Learn how to write user input to files in Ruby by prompting, chomping, and interpolating input, then collecting five lines in a single open file to ensure efficiency.
Explore csv files, where each line holds comma separated fields such as name, occupation, and favorite food, as structured data. Use ruby's csv class to write and read these records.
Master working with csv files in ruby using the csb library: load data from files or strings, access fields as arrays, and write or append with correct file modes.
Learn how to guard file reads in Ruby by checking if a file exists before opening, then read and print its contents using conditionals and user input.
Learn how to open another Ruby file as Ruby code using require, so its methods and classes become available after loading.
Explore loading local Ruby files with require_relative, call a hello method defined in a utilities file, and understand method vs. variable scope and how __FILE__ reveals the running file.
This is the introduction to the Codealong Exercise for this section.
We create a todo note collector which writes to a file.
Master ruby by writing a csv file from terminal input and saving the data to a file, such as Bob 18, Alice 20, Ted 19.
We begin our journey with Object-Oriented Programming by learning about Classes
We learn about Objects and how they are different from Classes
We take a look at the Ruby techniques for instantiating objects from classes.
In this video we go through the displaying of Objects and how it can be customized
This is an introduction to object comparison, and implementing custom equality methods.
We find out what the term "Duck Typing" means, where it comes from, and what it looks like in Ruby.
We review methods belonging to objects, and learn a surprising thing about all methods in Ruby.
In this video, we explore the very important Object-Oriented concept of inheritance.
We learn about overriding methods on Objects.
We review the use of attributes on objects and different ways of adding attribute functionality in Ruby
We go over Class Methods and how they are different from Instance Methods and have a different use in Object-Oriented Programming.
We take a closer look at something very powerful in Ruby - Modules
In this video, we learn about how we can include Modules in our classes from other files, and how the different ways of loading in module code have different purposes.
We take a look at the difference between inheritance and composition in Object-Oriented Programming, and how the two can be used to great effect in Ruby
This is the introduction to the Codealong Exercise for this section.
Explore binary trees as ordered data structures with a root node and left and right branches, enabling fast searches and scalable O(log n) performance in Ruby.
We will take a look at how to implement a binary tree using classes and recursion in Ruby
The source code is available in a PDF file and a Ruby file in the Resources section for this video
Explore domain modeling by translating real-world concepts into domain models and model classes, using a health insurance plan to illustrate interactions among payer, provider, and patients. Engage with domain driven design and the domain layer to build software that accurately represents complex business rules and relationships.
Define a Ruby validator method is_valid? on a person domain object that returns true when first_name and last_name are not nil and non-empty, ensuring a valid state before saving.
learn how serialization translates an object into a storable csb format to save and later recreate a person record, including first name, last name, employee id, age, and position.
Save a person record to one per-employee file by opening the file in write mode and writing the first and last name, using a unique id in the filename.
This is the introduction to the Codealong Exercise for this section.
Build a Ruby directory entry class with name, position, and active fields, save entries to a file in append mode, and list entries by reading and formatting the stored data.
Explore how to model a car shopping problem by evaluating make, model, year, ratings, and price, and build a program that checks the website to find best match, saving time.
Preview a solution to automate car shopping by extracting data from a car listings site and saving relevant results to a JSON file.
Learn to parse an html response into ruby objects with the no go geary gem, install it, and extract car listings using a csx query selector.
Explore pretty printing in Ruby by using the built-in pretty print to examine a car listings object, verify collection length, and extract structured attributes from nested objects.
In Ruby, extract data from a car listings object by iterating with each through eight cars, using CSX to select make and year, retrieve text, and assemble a new collection.
Install and use Adam beautify to format JSON for clearer viewing; compare non beautified vs beautified output, run it to cast values to correct types, and save changes.
Create a convert_price method to remove the dollar sign and comma with gsub, then convert to integer for prices in the JSON and enable filters by price, rating, and year.
Learn to manage Ruby dependencies with Bundler, create a Gemfile, run bundle install, and lock exact versions in Gemfile.lock for reproducible setups.
Explore how ruby gems work, from browsing ruby gems dot org and gem specs to versioning, licenses, dependencies, and the role of lib files in a gem’s structure.
Explore data pipeline engineering by organizing a csv and an access log with timestamps in a project data folder to analyze web server traffic.
Determine browsers by parsing user agent strings with Ruby: build a pass_log and a determine_browser, identify Firefox, Chrome, Safari, or other, and assemble email with browser data.
Extract emails from server logs in Ruby by parsing a user agent string, applying regular expressions and match data captures, and assembling a user data structure with browser and email.
Clean and normalize cross-referenced user data by updating the users array in place with map!, filling missing fields with unknowns, and preparing data for log comparison.
This lecture demonstrates building a flexible data pipeline for access logs by decoupling file discovery from processing, using pattern matching to load each file and output formatted results.
Become a programmer with Ruby and learn one of the most fundamental skills in any industry - today and the future.
This is the most comprehensive course for learning how to program using the Ruby programming language. Why did we choose Ruby to teach programming? Not only is Ruby one of the easiest programming languages to get started with, but it is also extremely powerful and provides tools for learning and using all the fundamentals of programming that can be used in any language - with its own flair for programmer happiness. Whether you are a complete beginner or already know the basics but want to know and apply advanced concepts in programming like OOP, automation using web scraping, data engineering and algorithms built from scratch - this is the course for you!
Ruby is also the programming language behind Ruby on Rails which is one of the most popular and in-demand web development frameworks, with the highest paying jobs in the world today.
This course will teach Ruby, and programming in general, in a practical manner - you will be presented with concepts in screencast videos which you can code along with; followed by quizzes and coding exercises to test your understanding; along with programming assignments which will bring it all together to seal your knowledge. We go over the practical details of programming, issues that programmers face daily and build up your understanding in an efficient way. And with unlimited access - you can learn at your own pace!
By the end of this course, you will be able to write complete programs that can take input from users, build interactive menus, interact with formatted data files, automate life tasks like car shopping online using web scraping and engineering complex data from web server logs to your own specifications, among many other skills!
We will cover a wide variety of topics, including:
Installing Ruby - Mac, Windows and Linux
Command Line basics
Ruby basics
Basic data structures - Strings, Ints, Floats and more
Compound data structures - Arrays, Hashes and more
Algorithms and implementation - Sorting, Binary Search Trees and more!
Print Formatting
Methods
Built-in methods
Debugging and Error Handling
Object Oriented Programming concepts
- Classes, Inheritance, Polymorphism, Modules
File I/O in-depth
Web scraping
Automation of daily life tasks (car shopping online as an example)
Data Engineering - project with web server logs
Ruby specific methods
and much more!
You will get lifetime access to all the videos, text lectures, code repos, assignments and more!
This course comes with a 30 day money back guarantee! If you are not satisfied in any way, you'll get your money back.
So what are you waiting for? Get going with the Complete Ruby Programmer and introduce fun into learning an advanced, on-demand skill!