What Every Junior Rails Developer Should Know

Not long ago, I shared a link to an outstanding video called What Every Junior Developer Should Know.

That talk was geared toward Front End Developers, but most of the content overlapped with the subjects that Back End Developers should know.

I happened to come across a diagram that my instructor from The Iron Yard shared on the first day of class.

When I first saw it, I was familiar with only about half of the terms on the diagram, but coming back to it after 6 months as a Junior Developer, I feel that it is a great summary of the tools and topics that I use every day.

As one reader pointed out, although the diagram says “Ruby on Rails Competencies”, it is actually a diagram of the skills required to become a Full Stack Developer. Many Ruby on Rails developer roles will never touch some of these areas, such as Javascript, HTML and CSS–which are Front End skills. Large companies often have dedicated teams handling databases and testing, as well. However, having at least some familiarity with these topics is important.

That being said, the following categories are the primary focus for a Rails developer: operating system, command line, WWW, Ruby language, Rubygems, Rails Framework, Git and IDE/Text Editor.


One blog post isn’t enough space for an overview on all these topics, but here is the first:

  • Operating System:
    • Rails developers generally develop on a Mac or on a Linux Operating System; Windows is not compatible with many software development tools
    • Mac OSX and Linux are both based on the Unix operating system, so they are similar in many ways
    • The Mac OSX is generally easier to use, but less customizable, and only run on Mac computers, which are expensive
    • Linux comes in many flavors, such as Ubuntu, Fedora, and Centos
    • The benefits of Linux are that it is free and customizable, and it can be installed on any computer
    • The downside is that installing and running software can be more complicated on Linux, especially since most users are tech people. The documentation is not very newbie friendly, but fighting through setup issues can be a great learning experience if you have someone to help when you get stuck
    • What you need to learn:

Learning the Mac OSX or Linux operating system is a great place to start.

Leave a comment if you found this article helpful. If it is helpful, I’ll try to go into more detail on the other topics.