Remote Training: Ruby on Rails

Logo

Course materials and resources

What To Expect In This Course

Hi and welcome!

You’re receiving this information because you’ve been assigned to a Rails training class and it’s time to get set up for the course!

Read on for important information and steps to get you set up for the course. It’ll be important to get squared away before the course starts so that we can all hit the ground running. You can expect to allocate up to 30 minutes or longer to run through all of the installation steps (in other words, we don’t recommend putting this off until the first morning before class!).

What if I can no longer attend the course?

We have a wait list of people who would love to attend, so if you determine that you are not able to attend the class you are registered for, please contact Mike Jansen via email (mike@testdouble.com) or via Slack (mjansen401).

If you’d like to attend another class, we can add you to the wait list if slots become available.

Preparing Your Development Environment

Communication

We will use Slack and Zoom to communicate with each other during the course. Please be sure to have them installed.

Test Double and your organization have created a shared Slack channel that you will be invited to for use prior and during the training.

Editor

Please be ready to code in your text editor of choice. We may not be able troubleshoot editor-specific questions during the course so we encourage you to go with what’s familiar to you. Most modern text editors offer great support for writing Ruby and Rails code. If you are brand new to Ruby and/or Rails, you may wish to search for Ruby and Rails-specific plugins or packages that you can add to your editor for additional syntax highlighting and code navigation.

Install Ruby

There are several ways to install Ruby; we are fans of using rbenv. If you’re already using a different ruby version manager like rvm or chruby that’s fine, but these instructions will refer to rbenv

Install rbenv and ruby-build per the installation instructions.

Once you have rbenv and ruby-build installed, you can install Ruby. We will be using Ruby 2.6.6:

$ rbenv install 2.6.6

$ rbenv global 2.6.6

Check that you have successfully installed and set the correct version of Ruby with:

$ rbenv version

The output should indicate 2.6.6.

Verify you’ve installed ruby correctly

Run the following commands and check that your machine gives you similar output:

~ $ which ruby
/Users/kbaribeau/.rbenv/shims/ruby
~ $ which gem
/Users/kbaribeau/.rbenv/shims/gem

If either the commands above point to /usr/local/bin please double check you’ve followed the Install Ruby instructions accurately. By default, ruby comes installed on all OSX machines. But, rails developers avoid using the default install of ruby that resides in /usr/local/bin.

Usually the problem here is that your shell startup script (~/.zshrc or similar) isn’t running rbenv init - (see here for a possible fix).

Feel free to reach out in Slack if you have questions as well. We’ll be available to help debug your setup issues.

Install Rails

Once you’ve verified you’re on the correct ruby, installing rails is simple:

$ gem install rails -v 6.0.4.4

This can take a little while - go refill your water while you wait.

If you find yourself reaching for sudo to install Rails or other gems, this is a sign that you are attempting to use the macOS Ruby distribution. See the instructions above under “Verify you’ve installed ruby correctly”

You can verify that the rails installation has succeeded by running the following command. If it returns a version number, you are ready to go:

$ rails --version

We have also created a sample repository that we strongly recommend you use to verify that your environment is properly configured for class. Instructions for testing with the repository can be found in the README.

Course Schedule and Format

The course is structured into five sessions. Each session will be about 3.5 hours. Attendees will receive calendar invites for the scheduled sessions.

In each session, we’ll cover content through a mix of instructor-presented materials, individual exercises, and paired coding sessions. We will also take plenty of breaks so that you can stretch your legs and grab a snack.

We’ll be learning Rails in a completely remote and distributed way. We’ll be using the tools and tactics we’ve found successful for remote development here at Test Double. Remote setups present some unique challenges to learning. To help build a sense of presence and togetherness, we’re asking everybody to stay in Zoom. We know that sometimes the cat knocks over a vase and you have to mute and perform some vocal exercises, but whenever possible, please keep your camera & microphone turned on. We also ask that you please do your best to be on time for class each day and return to class promptly at the conclusion of each break. We have a lot of material to cover and don’t want you to have to play catch up on anything you may miss by being late!

Pair Programming

We’ll practice coding a lot, and we’ll use pair programming to do it. We believe that a pair is a sacred place. It should be a safe, judgement-free zone with a specific focus on learning and growth. Please read our pair programming ethos. Pairing can be an especially challenging endeavor remotely, so we encourage open and frequent communication to help overcome that barrier. We’re all here to learn, make mistakes, and have fun together, so we ask that you remember to treat each other with patience, kindness, and respect.

For more high-level perspective on working remotely, check out “Remote But Not Alone”.

Using Documentation and Other Resources

One of the things we love most about working in Rails - and hope you will too - is its active developer community and emphasis on comprehensive documentation. As we work through the course, we expect that you may get stuck at one point or another. As your instructors, we may find ourselves in the same situation too (we’re all human!), and you’ll find us reaching for the Rails Guides and other documentation to troubleshoot. We encourage you to take similar advantage here. We won’t always be around to answer your questions in the future, so we hope - nay, expect - that you’ll practice researching your own solutions during the class too.

What We Will Learn

We’ll be working together to learn more about Ruby and the Rails framework. There’s only so much that we will be able to cover in the short time we spend together, so we’ll also focus on learning how to learn - we’ll make use of the Rails community’s rich documentation and resources as well as each other so that you leave this course equipped with the tools needed to continue learning.

Beyond that, we hope to share a bit of what we’ve learned about effective remote software development. Test Double has been writing software remotely for nearly a decade and we’re passionate about helping others do the same. We hope this course will offer an opportunity to practice these skills as well as you work your way through the course.

Rails 101/102 - Introduction to Rails Course

By the end of this training, you should have a foundational grasp of how Rails works and be able to apply your newfound knowledge to your work. We want to provide you with solid, contextual understanding of the framework, as well as familiarity with mainstream tools and resources.

Rails 201 - Advanced Intro to Rails Course

By the end of this training, you should have a deeper understanding of how Rails works, its patterns, and be able to apply your newfound knowledge to your work.

Questions?

We are so glad you’re joining us! If you have trouble or questions with any of the prep and setup described here, please don’t hesitate to reach out in the shared Slack channel, or email Mike Jansen (mike@testdouble.com)