Part of my job as the Ruby teacher for Treehouse is to stay on top of what employers are looking for when hiring people to fill Ruby and Rails positions. The landscape changes often but below are some of the trends that I’ve noticed. Having a willingness to learn, being able to embrace new technologies, staying motivated, and strong communication skills are important for any job. The following list focuses more on the technical side of things.
Contents
Ruby on Rails
It should go without saying that employers are looking for both Ruby and Ruby on Rails knowledge when hiring a junior Rails developer. Experience is always helpful as well. A junior Rails developer should have at least a cursory familiarity with everything in the Rails Guides. This is going to include:
- Models, Controllers, and Views
- Routing
- ActiveRecord validations, callbacks, and associations.
- Layouts
- Bundler and Gem installation
- Debugging skills
- The ability to read documentation
It is possible to learn both Ruby and Ruby on Rails at the same time but it can be difficult to know where Rails stops and Ruby begins. For this reason, it’s important to be familiar not only with Rails but also the peripheral technologies: Ruby, basic linux administration, JavaScript, and more. Let’s take a look at these in a little more depth and learn why they’re important.
In addition, it’s important to be familiar with conventional Ruby. Ruby is very lax with coding style and the liberties that can be taken with syntax. Coders should follow a consistent style, such as the GitHub style guide, when writing code.
HTML and CSS
A Rails developer should know both HTML and CSS. There may be more leeway with a job that involves only back-end Ruby development, however, those are fairly rare.
JavaScript
I’m going to lump JavaScript and jQuery together for the purposes of this article. When reviewing job postings, they practically used the terms interchangeably. The big take-away here is that JavaScript is important to know as a Rails developer. Besides jQuery, take a look at some of the JavaScript frameworks that have been gaining in popularity lately as well: Backbone, Ember, and Angular will give a leg-up to applicants looking for a job.
MySQL
Although NOSQL databases have been gaining in popularity, MySQL is still a “gold standard” that is heavily used. If you want to go the extra mile, learn how to use Postgres as well. There’s a reason the LAMP stack includes MySQL.
Unit Testing
It actually warms my heart to know that unit testing is in such wide demand. The Ruby and Rails communities have been forward-thinking and have embraced testing for a long time. Over the last several years, that mindset has become more widespread and now is part of many engineering cultures. Unit testing can be difficult to learn at first — particularly if trying to learn unit testing at the same time as programming concepts. The investment pays off in spades, both when applying for jobs and attempting to fix code you wrote six months ago.
RSpec
The Ruby and Rails communities are known for their testing tools and this is reflected in many junior development positions. The default Rails stack does not include RSpec. Many companies have embraced RSpec for its clarity and ease of use when writing tests. RSpec is my personal preferred testing framework of choice.
The interesting part about RSpec and Unit testing is that many of the job postings I’ve looked at were split almost down the middle. For that reason, I recommend learning both testing stacks in order to hit the ground running at a new job.
Git
Git is currently the de-facto standard for version control. Yes, Mercurial, Subversion, and other version-control systems are still in use but a junior Ruby on Rails developer needs to know how to use Git. Using any version-control system is a requirement these days. Uncle Bob Martin likens writing tests and using version-control to a doctor washing his hands before surgery — it’s just something one does as a professional.
Linux Administration
The latest trend has been a push towards ‘DevOps’, where developers will write programs that help control the infrastructure of an application. The first step on the path towards that goal is learning about how a linux system is laid out, how to navigate the operating system, install software, update and configure software, troubleshoot issues, and more. Once these skills are mastered, one can move on to more advanced DevOps related skills, such as Capistrano.
Agile Methodology
Employers wanting experience and knowledge in agile methodologies came up a lot in job applications. This one is a chicken and egg scenario for someone applying for their first job — it’s impossible to claim agile experience when you haven’t worked in an agile environment. Instead, I recommend reading up as much as you can on the different ways companies practice agile development as well as books on the topic. The Pragmatic Bookshelf has several books available.
Conclusion
When applying for a junior Rails developer position, it’s not just as simple as knowing how to code a Rails application. There are several peripheral technologies that are necessary to be familiar with. Want to know a great place to brush up on some of these skills? Check out some of the Ruby courses I have done on Treehouse. Shameless, I know.
One way to do this is to play https://trello.com/zeleniabarnett storage
games.
Thanks for finally talking about > What Employers are looking for in a junior rails developer < Liked it!
Oh my goodness! Incredible article dude! Thank you so
much, However I am going through problems with your RSS.
I don’t understand the reason why I can’t subscribe to it.
Is there anybody else getting the same RSS problems?
Anyone who knows the solution will you kindly respond? Thanx!!
I visit each day some web pages and information sites to read articles, except this
webpage offers quality based content.
Hi Jason,
Can you clarify this statement, “There’s a reason the LAMP stack includes MySQL”? I am currently learning Postgres but came from CMS building that involved the LAMP stack. Thanks.
This is a bit old, but here’s my answer for future readers.
Jason’s saying here that MySQL is a gold stantard. And the LAMP stack, as well as the WAMP stacks for those courageous enough to dev on a Windows system both integrates MySQL as a base webstack. If they keep including MySQL, it’s because this is one of the most common and widespread DBMS (DataBase Management System)
Hi Jason, great article as I am looking to hire junior ruby developer as well!
Most employers will probably give you a Ruby coding test. If they’re worth anything, it will be a test with actual real world problems and scenarios, such as this one for example: http://www.testdome.com/Programming-Tests/Ruby/52
But there are many useless test online that barely measure any kind of skill or ability, and it’s even worse when companies rely on them too strongly. They should only serve as the first step of the screening process.
When will you write a post on What Employers Are Looking For in a Junior JavaScript Developer or Front End Developer
what is the mean salary for junior web devs in US. Can past experience be considered of someone is in technical writing for software industry and making a career shift
@david
The threehouse courses are a great start, do you want to learn web dev or mobile apps? ( native) Another great overview of the web development skills needed for a junior position is the odin project:
http://www.theodinproject.com/courses?ref=home
Related question: I am a former mainframe programmer (left 15 yrs ago to a different career) and I’m now looking to get back into the computer world. I’d be happy to come in at a junior level and need to be marketable ASAP.
Where should I begin? Would Ruby and Rails via Teamtreehouse be a good place to start? Or, could you suggest a different Teamtreehouse path, once again considering that I need to become marketable ASAP?
Also: How many hours (realistically) would someone middle-aged expect to have to put in? 200 hrs?
Completely agree with everything mentioned in this post! I started learning through treehouse about a year ago and started very basic working through HTML, CSS and building very simple pages understanding my own style of designing websites. Then went to a few free conferences just listening and talking to anyone i could to to try and find out how to get a job in the industry. Then through complete fortune managed to secure a position at Funding Circle (London) as a full stack developer mainly graduating through their Codecraft program (I have heard they are starting a new one up and are brining a few people across from the San Francisco office!). The only way i really got into the company was through having a massive passion for creating good looking sites then understanding more about what was going on under the hood later on.
Our main applications are Rails but we also use Sinatra in a couple of them. Ive know been there for around 8 months and i’ve been exposed to Ruby, Rails, Sinatra, Git, Github, SQL, Postgres, Grunt, Bower, Capistrano, Nginx, Cassandra, Angular, Javascript plus briefly touched Node & C. Pretty sure ive missed something out there as well! Plus all the countless little programs and ways we uses systems internally.
From someone who has recently secured a position through learning at Treehouse I would say if you want to try and get into development and are a visual person try taking a really modern designed site get a screen shot of it and try to build a static version first using HTML, If you feel comfortable then use git and create branches etc and ensure you commit regularly to get the feel of working in a team. Then once you feel more comfortable then try to build a simple blogging site or to-do list using rails just to get an understanding of the routing and basic magic that is provided by rails (Jason provides some great examples of these)!! Realise this doesnt cover much practise for Ruby but if you want to get better id actually try doing some Katas on [Code Wars](http://www.codewars.com).
But above all else keep learning as much as possible Treehouse is a great start!
“Yes, Mercurial are still in use”
Ohm… When Mercurial had become obsolete?
Great article! The timing of it couldn’t be more perfect! Next is to find out how to find Junior Rails positions. I haven’t had much luck when browsing typical job-seeking sites, however, I heard a developer mention companies usually pick from the Jr Front-end department to promote towards learning Rails. The question remains, should I focus on front-end development and search for Jr Front-end positions?
hopefully japanese is optional despite being written by a man of Japanese heritage!