A look at the IT job market

Posted by Marco Dinacci on 0 comments
Update! the ruby source code is on github.


Few weeks ago I bought an amazing book whose first chapter is an introduction to the Ruby language. I've never really been interested in Ruby before as I'm perfectly happy with Python but I think there's always something to learn when studying a new language. With this in mind, and considering that I'm looking for a job, I thought to learn Ruby by writing a tool to analyze the technical skills most required by the market today. I selected the website that in my opinion offers the more interesting jobs, careers.stackoverflow.com, did a bit of scraping and made some visualisations to help me understand the data collected (which, BTW, is limited only to the last 5 weeks).

The data

First, let's see what are the technologies required the most:

Although the data is limited (again, only 5 weeks), we can make some interesting comparisons:

This knowledge is useful but too superficial. Most of the companies are looking for candidates with a knowledge of a set of technologies strongly related between them so I made a graph to see which groups of technologies are the most requested. This visualization takes the 20 most occurring tags and analyze which other tags appear with. I shortened some of the words to make the visualization more readable, eg. ror stands for Ruby on Rails while js represents Javascript. Each circle represents a tag, the number in each circle represent the number of times that tag appears with the tag label on the left. (If you don't like the colors reload the page).

Now I think it's possible to appreciate more which set of technologies are currently requested and which one a developer should focus in order to increase his/her changes of landing a job of the ones proposed on careers.stackoverflow.com.

Trends ?

For frontend web developers that know HTML and CSS it is also necessary to know Javascript and a big advantage is to know JQuery which demonstrates to be the leading Javascript framework. If you're a frontend developer and want to learn a server-side scripting language, PHP (instead of Ruby or Python) seems to be the most requested.

Python is very often associated with Java and C++ but also with Django and Javascript confirming the language versatility. It seems though that companies prefer to use it mostly outside the web, probably as a "second language requirement" for Java or C++ developers. If you know Python already and want to apply it on the web, study Django.

Nothing surprising in the Microsoft world, .net, C#, Asp.net and SQL server are the technologies required in companies that relies on Microsoft technologies.

It's interesting to see C++ and Java so often together. Companies are probably looking for candidates with a knowledge of either one or the other but I think that while a C++ developer can pick up Java pretty fast I've some doubts about the opposite being so easy.

Knowledge of both Android an iOS seems to be well appreciated by companies that probably prefer to have only one developer working on the same application for both platforms. Windows mobile and blackberry skills are not particularly requested.

The Spring framework is often demanded when working with Java EE. Interesting to note that Java skills are often requested along with a scripting language like Python, Perl or Groovy. They aren't probably necessary but a candidate with a knowledge of at least one scripting language may have the head over a candidate that does not.

Finally, since I don't live in a big city with a lot of job opportunities, I'm particularly interested in telecommuting jobs:

Guess I should relocate... :-|

The Code

The code to scrape the data and to visualize it is on github.

I think making this kind of tools is a great exercise to learn a new programming language and I really enjoyed doing it in Ruby and Javascript.