As a freelancer, I have a degree of control over which languages I invest the time required to achieve a level of proficiency — albeit somewhat guided by the market demand for particular skills. This is very different to when I was working the University of Manchester, where I had to be a jack of all trades because students could ask questions on Python, Java, Objective C and a dozen other languages.
At present, my CV lists my known languages as proficient with PHP and familiar with C, Java and Perl. Nearly all my paid work involves PHP, with a bit of Perl for automation system administration tasks, and I’m currently using Java for a software startup.
I’m not sure where to focus my future efforts though. There are plenty of interesting languages around, but I’m wary of investing a lot in a ‘here today, gone tomorrow’ fad (e,g, I’m not sure how long NodeJS will last).
From a practical perspective, I think I need to cover the following bases:
- Web development
- Systems development: Low-level software such as kernels (more for fun than an expectation of paid work).
- Applications development: Predominantly desktop applications with a GUI.
- Scripting language: For processing text, sending automated emails etc.
Some languages will cover multiple options, but I find that any language that tries to do more than two of the above ends up being poor at them all.
At the moment I’m leaning towards PHP for web development, C for systems work and Python for application development and scripting. Does anyone have other recommendations?