How to learn Rails the Wyzant way

Paige Keenan
Jul 10, 2017 · 5 min read

For some background, my team recently switched tech stacks from .NET to Rails. A lot of thought and consideration went into the decision, and ultimately, it was decided that we needed to drastically change how we write code in order to get Wyzant where we want to be as a company. To learn more about the thoughts leading up to this transition, you can read our VP of Engineering’s blog post here.

Now before I dig in, I should disclose: I’m not an expert Rails developer. I’m only a month in. However, one month feels like a good benchmark to reflect and share how I’ve learned Rails and my thoughts on it moving forward.


Where to begin

We had three tactics for moving a team of mostly .NET developers to Rails, including:

  • Training
  • Managing product expectations
  • Creating a prototype to get fully immersed within the Rails tech stack

1. Training

The entire tech team joined codeschool.com. There, we competed against each other to see who could earn the most points by completing lessons (silly, I know, but it worked) and along the way began to learn basic Ruby skills and nuances. Additionally, we consulted the experts. Every Friday morning we hosted training sessions where a Rails guru would come into our office to graciously teach us the tips and tricks he’s learned in the Rails framework.

2. Managing expectations

Another important aspect of moving to Rails was managing product expectations. By this, I mean to say that moving a code base from one language to another is not a copy and paste process. It’s a full code rewrite. We’re an agile development team, so moving fast and launching features with a quick turnaround time is in our nature. It was both counterintuitive for us and for the rest of the company to not move as rapidly as we typically do. However, we’re betting on the movement to Rails as being an investment in the future of Wyzant. Thus, taking time to learn a language we believe will benefit us in the long run is the best approach to getting where we want to be as a company.

3. Getting our hands dirty: Prototype time

Current state of the student search experience on Wyzant.

Once we heard from the experts and that the entire company was on board with our decision to move to Rails, it was time to start coding! We decided to zero in on the student search experience aspect of our website, and figure out how we could improve it. The tech team needed to familiarize themselves with Rails, so the decision was made to build a two-week long prototype to emulate the current state of the student search experience within the Rails framework. Spoiler alert—the prototype worked well. Our Rails prototype evolved into a working copy of our code base and is something we’re confident will last in the long run. Here’s how we did it:

Pairing

Wyzant is a one-to-one learning marketplace, and as a tech team, we’ve agreed that learning from one another is also the best way to master a skill. Pairing became a crucial part of the Rails transition. We were faced with the task of learning a framework none of us were familiar with. We sat together as we coded new features and defined new models to make sure all sides of the development team were invested in all changes made, and ultimately, it resulted in a more well-rounded tech team.

Pull requests

2 weeks of work generated 30+ pull requests.

Another important aspect of learning Rails was generating many pull requests. This has always been an important aspect of getting code from development into production, but became even more apparent here. Pull requests were generated for all features, small updates and more! It became a way to share learnings as well as consult differing points of views on our work thus far.

Daily demos

The final step of moving to Rails was hosting daily demos of our learnings. This gave both developers and our product team the chance to review what we’d learned and see the progress we’d made in such a short period of time. We met at 4 pm each day and discussed what we’d worked on. From that, came questions of how? And why? Ultimately, this familiarized us with various approaches to the Rails experience.


Moving forward with Rails

As you’ve probably realized by reading this far, my team was able to build a successful prototype, and we want to keep this momentum moving forward. My biggest takeaway from month one of learning Rails is to embrace the language. Rails has the most interesting nuances. I found myself baffled time and time again when code seemed to read like English:

Certainly you shouldn’t be able to check if an array is empty by literally asking if it’s .blank? Or .nil? Or .empty? But of course, in Rails, you can.

Next, I learned that if I’ve written a lot of code to achieve something, there’s probably a better way to write it. That’s a universal concept in development, but it’s especially true in Rails. There are a tremendous amount of helper methods, and you should take the time to get familiar with as many as you can. I found the Rails API Query Methods to be especially helpful.

http://api.rubyonrails.org/

For example, as a JavaScript developer, I am accustomed to writing for loops to traverse arrays with if statements checks throughout to return something I’m looking for. I was pleasantly surprised to discover helpers like .select and .where , which drastically reduce the amount of code I would typically write to achieve the same thing in a drawn out for loop.


I’m excited to see where I’ll be with Rails in another few weeks, and even in another few months. It’s a fun language to learn, and one that when embraced, I’m finding is especially powerful.

Wyzant Tech

Thoughtful engineers, data scientists and designers building a better way to connect people who need to know with the experts who can teach them.

Paige Keenan

Written by

Front end developer @Wyzant

Wyzant Tech

Thoughtful engineers, data scientists and designers building a better way to connect people who need to know with the experts who can teach them.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade