A bit of background:
- Picked up Java for my undergraduate degree, but stopped using it regularly 3 1/2 years ago
- Picked up Python in my last year of undergraduate, and stopped using it roughly 2 1/2 years ago
- Used PHP for a year in industry, and stopped using that 1 1/2 years ago
Since then I did a largely theoretical masters degree at the University of Cambridge, and got very little actual coding done except for a few side projects in functional programming languages.
In the last few weeks I've been interviewing regularly, but have found my programming skills to be very rusty, making the coding interviews very challenging.
My thought now is that I really need to spend 1-2 months completely immersing myself in a more mainstream language. Most companies seem to focus on Python, with a bit of Java and node.
Initially I though I should learn Python, both because it's popular, and also easy to write in an interview setting. However I am now thinking Java would be a better choice; it's used all over the place, and represents more of an "archetypal" OO language, and it will probably make asking questions about design patterns, SOLID principals etc. more straightforward.
What do you think?
Given that you've done some functional programming, you might also want to investigate Scala. There's probably not too much Scala work out there right now, but you might be able to evangelize it for some appropriate workloads once you're doing Java development. It completely interoperates with Java (it runs on the JVM also). I think it's one of the best designed modern languages.