in transitione: (Latin) something in the very act of transitioning itself.

A look at the IT job market

Posted by on 10 Nov, 2011 in Blog, Programming, Web development | 0 comments

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 I scraped the data and made some visualisations to help me understand it (which, BTW, is limited only to the last 5 weeks).

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:

  • There’s more demand of Java developers than C# developers.
  • More jobs require Android knowledge rather than iOS, maybe this is also why Java > C#.
  • MySQL beats any other database, including NoSQL ones.
  • Javascript is the most frequent tag, immediately followed by Java.
  • Ruby is less requested than I thought, but maybe requests are distributed among the tags ruby and ruby-on-rails, I don’t know.

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.

Let’s see some 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 place with a lot of job opportunities, I’m particularly interested in telecommuting job:

I guess I should relocate… :(

For those interested the code I wrote to collect the data and visualizing it is available 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.

Marco

Read More

It’s time for some javascript.

Posted by on 2 Aug, 2011 in Programming, Web development | 0 comments

It’s time for some javascript.

It’s been ages I haven’t written some Javascript code.

I always found coding in Javascript excruciatingly painful and the idea of getting myself again into this nightmare wasn’t particularly exciting.

This was at a time when there were no such things like jQuery, Mootools or Prototype. Nobody was using the words “Javascript” and “framework” in the same sentence.

But today, things are very different. I must say this was the first time in my life I actually found coding in Javascript fun.

The result of my latest two days Javascript (and PHP) coding is the online experiment Mobile Icons Generator. This tool takes as input as many images as you want and creates a set of icons usable on an Android or iOS device.

I didn’t write it only for educational purposes, I wrote it because I really need such a tool. Although it’s easy to setup a script to resize images using ImageMagick having a web interface is more practical when there are lot of options.

Now I’m back coding in Javascript…

Marco

Read More

Movie Suggestions Beta is out

Posted by on 14 Jul, 2011 in Android, Featured, Programming | 0 comments

Movie Suggestions Beta is out

My first Android application is out on the market. Technically it’s the second but the first I didn’t release it and I don’t have intention to.

Movie Suggestions screenshotMovie Suggestions is a simple application that uses a couple of web services to find a movie you like and to return a list of movies related to your query. Once you select a movie you can then read some comments from reviewers and see the trailer on Youtube, where available. Graphics and functionalities are pretty basic at the moment but hopefully the only one thing it does it does it well. In any case, I do realize that it’s not the most useful application in the market, I made it to learn the Android framework not to become rich and famous.

I used the Rottentomatoes API to search and retrieve movie informations and another web service I can’t remember the name now that look for the correct trailer on Youtube. This last one actually saved me a lot of work.

The application is free and will always be but I’m not yet releasing the source code as it uses some libraries I’ve written that I don’t want to release. I will definitely release the wrapper around the Rottentomatoes API as soon as I’ll find the time.

UPDATE: here is the source code of the RottenTomatoes API wrapper. It’s not a full wrapper but it covers most of the API.

Marco

Read More

Advanced ListView: populating a list with images and text

Posted by on 10 May, 2011 in Android, Programming | 1 comment

Advanced ListView: populating a list with images and text

The Android documentation says that the ListView widget is easy to use. It is true if you just want to display a simple list of strings but as soon as you want to customize your list things become more complicated.

The following is a tutorial on how to write a ListView that displays a static list of images and strings, similar to the settings list on your phone.

Read More

How to detect motion on an Android device

Posted by on 4 May, 2011 in Android, Featured, Programming | 10 comments

How to detect motion on an Android device

For learning purposes I’ve written PicInMotion, a small Android application that automatically takes a picture when it detects motion in the camera preview.

This article explains how the simple motion detection mechanism works.

Read More

Adding control to the OpenGL spinning cube

Posted by on 2 May, 2011 in Android, Programming | 0 comments

Adding control to the OpenGL spinning cube

This demo extends on the Create a spinning cube OpenGL to show how to control the cube using a D-pad.
We’re going to increment the speed rotation along the X and Y axes using the directional keys of the D-pad.

Read More

“touch” a file on Android

Posted by on 30 Apr, 2011 in Android, Programming | 0 comments

“touch” a file on Android

This snippet mimics the behaviour of the unix touch command on the Android platform:

Read More