We may earn an affiliate commission when you visit our partners.
Course image
Huw Collingbourne

Advanced Ruby: a 2nd-level course. If you have already done some Ruby programming, this course will help to take your coding to the next level. It explains some of the more advanced features of Ruby including blocks and procs, threads, regular expressions, exception handling, singletons and metaprogramming. The course is based on Huw Collingbourne's book, The Book Of Ruby (a copy of 3rd PDF edition of the book is supplied with this course). All the source code is provided in the code archive. This course can be used with any editor or IDE and on any operating system that supports Ruby. If you are ready to go beyond the basics and gain a deeper understanding of how Ruby really works, this course is for you.

Read more

Advanced Ruby: a 2nd-level course. If you have already done some Ruby programming, this course will help to take your coding to the next level. It explains some of the more advanced features of Ruby including blocks and procs, threads, regular expressions, exception handling, singletons and metaprogramming. The course is based on Huw Collingbourne's book, The Book Of Ruby (a copy of 3rd PDF edition of the book is supplied with this course). All the source code is provided in the code archive. This course can be used with any editor or IDE and on any operating system that supports Ruby. If you are ready to go beyond the basics and gain a deeper understanding of how Ruby really works, this course is for you.

Note: If you're new to programming, check out Ruby Programming for Beginners (now with over 24,000 students enrolled. ).

Enroll now

What's inside

Learning objectives

  • Encapsulation and data hiding
  • Singleton classes and methods
  • Exception handling
  • Threads and fibers
  • Modules and mixins
  • File handling
  • Yaml and marshal
  • Regular expressions
  • Metaprogramming

Syllabus

Getting ready to go further in Ruby

What is this course about and who is it for? Watch this video to find out.

This is an intermediate-to-advanced level course on Ruby programming. It can be used with any code editor or IDE and any operating system that supports Ruby. This video provides a quick overview of the course and gives a few tips on how to get the most from it.

Read more
Here I explain the principal resources supplied by this course and how you should use them.

This is the 'course text' – a short eBook that summarizes the most important topics from each of the steps of this course. Use this book to revise the subjects. It also contains links to useful resources such as Ruby installers, editors and IDEs.

This contains an archive of all the code to accompany The Book Of Ruby and this course

The Book Of Ruby is an extensive and in-depth eBook on Ruby programming. It provides a more in-depth text than the Course Notes (which are also downloadable from this section of the course). In over 420 pages The Book Of Ruby covers the Ruby language in great depth, starting with the very basics before moving onto quite complex subjects such as Exceptions regular expressions, threads and metaprogramming. Use this book to deepen your understanding of the topics covered in the video tutorials. All the sample programs mentioned in this book are provided for your use in the downloadable code archive.

Table of Contents

Introduction

Chapter 1: Strings, Numbers, Classes, and Objects
Chapter 2: Class Hierarchies, Attributes, and Class Variables
Chapter 3: Strings and Ranges
Chapter 4: Arrays and Hashes
Chapter 5: Loops and Iterators
Chapter 6: Conditional Statements
Chapter 7: Methods
Chapter 8: Passing Arguments and Returning Values
Chapter 9: Exception Handling
Chapter 10: Blocks, Procs, and Lambdas
Chapter 11: Symbols
Chapter 12: Modules and Mixins
Chapter 13: Files and IO
Chapter 14: YAML
Chapter 15: Marshal
Chapter 16: Regular Expressions
Chapter 17: Threads
Chapter 18: Debugging and Testing
Chapter 19: Ruby on Rails
Chapter 20: Dynamic Programming

Appendix A: Documenting Ruby with RDoc
Appendix B: Installing MySQL for Ruby on Rails
Appendix C: Further Reading
Appendix D: Web sites
Appendix E: Ruby Development Software

Subscribers to this course are entitled to a 30% discount off the price of my other Ruby programming book, The Book Of Ruby , published by No Starch Press. In around 400 pages, The Book Of Ruby goes into more advanced Ruby topics such as blocks and nameless functions, threads and fibers, self-modify…

An overview of how to test conditions in Ruby and a first look at the alternative Boolean operators: and/&&, or/||, !/not

An explanation of why the same tests may produce different results if you change the style of Boolean operators. Also a look at the various types of if, else and unless tests, plus case statements.

Performing tests in Ruby may seem easy. But there are some complexities which, unless you are very careful, can change the way your program works. Use this quiz to test your understanding...

Classes, class methods and singletons

What are class methods and what are they used for? 

How to use class methods and class variables and why it’s important to understand that classes are objects too!

How to add methods to a specific object rather than to an entire class

The difference between class and instance methods and variables, plus singletons.

Arguments, return values and encapsulation

Regular arguments and default arguments, a discussion of parentheses, single and multiple return values and parallel assignment

Usually, there is one way to pass data to a method in a Ruby object and one way to get data back out again. But there are exceptions to the rule. Here I discuss the importance of encapsulation and information hiding.

Information-hiding, returning values from methods and unintentional side-effects

Exception Handling

Trapping exceptions and recovering from errors in your code. The fundamentals of exception handling techniques in Ruby.

Exceptions are objects and they have a class hierarchy which can be useful to you when handling specific types of error

How to deal with errors

Blocks, Procs and Lambdas

In Ruby blocks are like ‘nameless methods’ that are often used in iterators. This short video explains the basics

Blocks, procs, lambdas, block parameters, closures, passing blocks as arguments, yielding anonymous blocks and using blocks as iterators

How to pass and execute blocks to methods. Careful! This is quite tricky!

Symbols, Threads and Fibers

Symbols are widely used in Ruby programming. Here we find out what’s special about them

This is Chapter 11 of The Book Of Ruby. It explains symbols.

Threads and Fibers can help you to write programs that do more than one thing at a time. But they can be tricky things to use effectively!

What are Ruby Symbols? And how can threads help your programs multitask?

Modules and Mixins

Ruby does not implement ‘multiple inheritance’. So how can a class include features from multiple parent classes? The answer is: it can’t. But it can mix-in multiple modules…

You just have to look at a module definition to see how similar it is to a class. But the resemblance is not superficial. Here I explain the relationship between a Class and a Module.

Modules as namespaces and as mixins. How to access module constants, module methods and instance methods and how to avoid potential problems 

Modules, mixins and methods

Files, YAML and Marshal

How to use Ruby's File and IO classes to read, write and copy files. How to find file information and traverse directories and subdirectories recursively.

How to save and load structured data to and from disk in a human readable format.

You can use Marshal to read and write byte streams of data to and from disk

Opening and closing files, reading and writing data

Regular Expressions

This explains the fundamentals of matching text patterns to find or modify strings using Regular Expressions

Some sample programs show how you can match patterns substitute text or create new files – for example, containing extracted documentation – using Regular Expressions

Matching and replacing text patterns

Dynamic Ruby and metaprogramming

How to add and remove methods at runtime, deal with method-calls to methods that don’t exist and evaluate strings as Ruby code.

In Ruby you don’t have to write a complete program before you run it. You can add new Ruby code to the program that is running. Here’s a simple example.

Blurring the boundaries between code and data

Discover the roots of Ruby's Object Orientation

While the eBook is the core element of this section of the course, this video gives you a brief introduction to the notion of examining Ruby's Object Orientation in a historical context.

This book explains some of the history of object orientation and compares the OOP features of Ruby with the influential Smalltalk language.

Download the source code archive to try out Smalltalk code (for either Dolphin or Pharo) and compare this with its Ruby equivalents.

If you want to try out Smalltalk and run some of the Smalltalk sample code, this video will show you how to get started with either Dolphin Smalltalk for Windows or Pharo on Windows, OS X or Linux.

Extras

This is a beginner's guide to Ruby. It also forms the basis for my other Udemy Ruby course for beginners. Refer to The Little Book Of Ruby if you need help with the fundamental features of Ruby programming (which are not covered in the current course).

This is an archive of all the programs to accompany The Little Book Of Ruby

And finally...

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops encapsulation, data hiding, and information-hiding, which are core principles of software engineering
Teaches exception handling, threads, and fibers, which are challenging topics that enable students to write more sophisticated programs
Taught by Huw Collingbourne, who is recognized for his work in Ruby programming and is the author of The Book Of Ruby
Examines metaprogramming, a powerful technique that allows you to modify the behavior of Ruby programs at runtime
Intermediate-to-advanced level course, indicating it's suitable for learners with some programming experience

Save this course

Save Advanced Ruby Programming: 10 Steps to Mastery to your list so you can find it easily later:
Save

Reviews summary

Advanced ruby programming not advanced enough

According to students, Advanced Ruby Programming: 10 Steps to Mastery may not live up to the expectations of advanced learners who may already be familiar with Ruby fundamentals. Many learners describe the material as basic but do note that they are only on the fifth video. There are mentions of frequent promotions for the instructor's book and dated visual aesthetics that may hinder the learning experience.
The course materials may be better suited for beginners.
"I was hoping it would be a little more advanced, but I'm only at he fifth video, maybe it'll get better later."
The course videos have substandard visual aesthetics.
"sometimes texts or titles appear with animations similar to those of power point from 20 years ago."
The instructor frequently promotes their book during the course.
"constantly promotes his book, I wouldn't mind him mentioning it once, but he's already done it in like 3 videos."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Advanced Ruby Programming: 10 Steps to Mastery with these activities:
Organize Course Materials
Organizing your course materials will make it easier to review and retain the information presented in this course.
Show steps
  • Gather all the course materials, including notes, assignments, and quizzes.
  • Create a system for organizing the materials, such as folders or a digital notebook.
  • Review the organized materials regularly to reinforce your learning.
Review Object-Oriented Programming Concepts
Reviewing the foundational concepts of Object-Oriented Programming (OOP) will make it easier to grasp the more advanced OOP concepts covered in this course.
Show steps
  • Revisit the principles of OOP, such as encapsulation, inheritance, and polymorphism.
  • Go through examples of OOP implementation in Ruby.
  • Try solving simple coding exercises that involve OOP concepts.
Read 'The Book of Ruby' by Huw Collingbourne
This book provides a comprehensive overview of Ruby, covering both fundamental and advanced concepts. Reading it will enhance your understanding of the topics discussed in this course.
View The Book of Ruby on Amazon
Show steps
  • Read the book thoroughly, taking notes on key concepts.
  • Complete the exercises and examples provided in the book.
  • Discuss the book's content with other learners or an experienced Ruby developer.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Follow Ruby on Rails Tutorials
Ruby on Rails is a popular web development framework. Following tutorials will help you apply your Ruby skills to build web applications.
Browse courses on Ruby
Show steps
  • Find a reputable source for Ruby on Rails tutorials.
  • Follow the tutorials step-by-step, building a simple Rails application.
  • Experiment with different features and configurations.
Practice Debugging Ruby Code
Debugging is a critical skill in programming. Practicing debugging techniques will help you identify and resolve errors in your Ruby code more efficiently.
Browse courses on Ruby
Show steps
  • Introduce deliberate errors into simple Ruby programs.
  • Use debugging tools to identify the source of the errors.
  • Fix the errors and test the program to verify that it runs correctly.
Attend a Ruby Workshop
Attending a Ruby workshop can provide valuable insights and hands-on experience from experts in the field.
Browse courses on Ruby
Show steps
  • Find a reputable Ruby workshop in your area or online.
  • Register for the workshop and prepare any necessary materials.
  • Attend the workshop, actively participate, and ask questions.
Build a Ruby Project to Automate a Task
Applying your Ruby skills to a practical project will solidify your understanding and demonstrate your proficiency.
Browse courses on Ruby
Show steps
  • Identify a task that can be automated using Ruby.
  • Design and implement a Ruby script to automate the task.
  • Test and refine the script to ensure it runs smoothly.
  • Document the script and share it with others.
Build a CRUD Application in Ruby
Building a full-stack CRUD (Create, Read, Update, Delete) application will provide hands-on experience with Ruby in a real-world scenario.
Browse courses on Ruby
Show steps
  • Set up a Ruby development environment.
  • Create a database and design the data model.
  • Implement the Ruby code for CRUD operations.
  • Develop the user interface using HTML and CSS.
  • Test and deploy the application.

Career center

Learners who complete Advanced Ruby Programming: 10 Steps to Mastery will develop knowledge and skills that may be useful to these careers:
Software Engineer
Software Engineers design and develop software for a wide range of industries and applications. They use their knowledge of programming languages, algorithms, and data structures to create efficient and reliable software solutions. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, one of the most popular programming languages used today. By completing this course, you will gain the skills necessary to enter the field of Software Engineering and develop high-quality software applications.
Web Developer
Web Developers design and develop websites and web applications. They use their knowledge of HTML, CSS, and JavaScript to create user-friendly and visually appealing websites. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a powerful language used for web development. By completing this course, you will gain the skills necessary to enter the field of Web Development and create dynamic and interactive web applications.
Data Scientist
Data Scientists use their knowledge of statistics, machine learning, and data analysis to extract insights from data. They use this information to help businesses make better decisions. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for data science. By completing this course, you will gain the skills necessary to enter the field of Data Science and develop data-driven solutions.
Systems Administrator
Systems Administrators maintain and manage computer systems and networks. They use their knowledge of operating systems, networking, and security to ensure that systems run smoothly and securely. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for system administration. By completing this course, you will gain the skills necessary to enter the field of Systems Administration and manage complex computer systems.
Database Administrator
Database Administrators maintain and manage databases. They use their knowledge of database management systems to ensure that data is stored securely and efficiently. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for database administration. By completing this course, you will gain the skills necessary to enter the field of Database Administration and manage complex databases.
IT Consultant
IT Consultants provide advice and guidance to businesses on how to use technology to improve their operations. They use their knowledge of technology and business to help businesses make informed decisions about their IT investments. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for IT consulting. By completing this course, you will gain the skills necessary to enter the field of IT Consulting and help businesses make the most of their technology investments.
DevOps Engineer
DevOps Engineers bridge the gap between development and operations teams. They use their knowledge of software development and system administration to ensure that software is deployed and maintained efficiently. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for DevOps. By completing this course, you will gain the skills necessary to enter the field of DevOps Engineering and develop and deploy software applications.
Cloud Architect
Cloud Architects design and develop cloud computing solutions. They use their knowledge of cloud computing principles and best practices to create cloud solutions that are scalable, reliable, and cost-effective. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for cloud computing. By completing this course, you will gain the skills necessary to enter the field of Cloud Architecture and design and develop cloud solutions.
Software Architect
Software Architects design and develop software systems. They use their knowledge of software engineering principles and best practices to create software systems that are scalable, reliable, and maintainable. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for software architecture. By completing this course, you will gain the skills necessary to enter the field of Software Architecture and design and develop complex software systems.
Cybersecurity Analyst
Cybersecurity Analysts protect computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. They use their knowledge of cybersecurity principles and best practices to identify and mitigate security risks. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for cybersecurity. By completing this course, you will gain the skills necessary to enter the field of Cybersecurity Analysis and protect computer systems and networks from cyber threats.
Game Developer
Game Developers design and develop video games. They use their knowledge of programming languages, game engines, and game design principles to create fun and engaging games. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for game development. By completing this course, you will gain the skills necessary to enter the field of Game Development and design and develop video games.
Data Engineer
Data Engineers design and develop data pipelines and infrastructure. They use their knowledge of data engineering principles and best practices to create data pipelines that are scalable, reliable, and efficient. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for data engineering. By completing this course, you will gain the skills necessary to enter the field of Data Engineering and design and develop data pipelines.
Mobile Developer
Mobile Developers design and develop mobile applications. They use their knowledge of programming languages, mobile operating systems, and mobile development tools to create mobile apps that are user-friendly and efficient. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for mobile development. By completing this course, you will gain the skills necessary to enter the field of Mobile Development and design and develop mobile applications.
Quality Assurance Analyst
Quality Assurance Analysts test and evaluate software to ensure that it meets quality standards. They use their knowledge of testing techniques and tools to identify and fix bugs and defects. The "Advanced Ruby Programming: 10 Steps to Mastery" course provides a solid foundation in Ruby, a language that is increasingly used for quality assurance. By completing this course, you will gain the skills necessary to enter the field of Quality Assurance Analysis and test and evaluate software.
Technical Writer
Technical Writers create and maintain technical documentation, such as user manuals, white papers, and help files. They use their knowledge of technical writing principles and best practices to create documentation that is clear, concise, and easy to understand. The "Advanced Ruby Programming: 10 Steps to Mastery" course may be useful if you want to enter the field of Technical Writing, as it will provide you with a solid foundation in Ruby, a language that is increasingly used for creating technical documentation.

Reading list

We've selected 15 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Advanced Ruby Programming: 10 Steps to Mastery.
Is the primary resource for this course. It provides a more in-depth text than the Course Notes, and covers the Ruby language in great depth, starting with the very basics before moving onto quite complex subjects such as Exceptions regular expressions, threads and metaprogramming. Use this book to deepen your understanding of the topics covered in the video tutorials.
Is the official Ruby language reference. It comprehensive guide to the Ruby language, and it great resource for both beginners and experienced Ruby programmers.
Collection of best practices for writing Ruby code. It great resource for learning how to write more efficient, maintainable, and readable Ruby code.
Comprehensive guide to Ruby programming. It covers all the basics, as well as more advanced topics such as object-oriented programming, metaprogramming, and concurrency. It great resource for both beginners and experienced Ruby programmers.
Is about metaprogramming, which powerful technique that allows you to write code that can modify itself. It great resource for learning how to write more powerful and flexible Ruby code.
Guide to the Ruby programming language. It covers the basics of the language, as well as more advanced topics such as object-oriented programming and metaprogramming. It great resource for both beginners and experienced Ruby programmers.
Guide to writing clean code. It covers a wide range of topics, including naming conventions, code organization, and error handling. It great resource for anyone who wants to learn how to write code that is more readable, maintainable, and reusable.
Guide to designing and building data-intensive applications. It covers a wide range of topics, including data modeling, data storage, and data processing. It great resource for anyone who wants to learn how to build scalable, reliable, and efficient data-intensive applications.
Guide to domain-driven design, a software development approach that focuses on creating software that is closely aligned with the domain of the business. It great resource for anyone who wants to learn how to build software that is more maintainable, extensible, and scalable.
Guide to refactoring, a software development technique that involves changing the structure of code without changing its functionality. It great resource for anyone who wants to learn how to improve the design and quality of their code.
Great way to learn Ruby on Rails, a popular web development framework. It covers everything you need to know to get started with Rails, from setting up your environment to deploying your application.
Collection of best practices for writing Smalltalk code. It great resource for anyone who wants to learn how to write more efficient, maintainable, and readable Smalltalk code.
Guide to the Pharo programming language. It covers the basics of the language, as well as more advanced topics such as object-oriented programming and metaprogramming. It great resource for anyone who wants to learn how to build software in Pharo.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser