I am learning Java. This is why.
My job applications were rejected several times on the grounds of not having “formal programming knowledge”. I have done some nice amateurish open source stuff and tools, proved myself in several technologies, but that was not good enough to convince HRs that I am worthy of a junior position. I will not go into details about the quality of the jobs I applied for, the context of the applications or experiences related to it – to me the rejections were enough to do something. I had to choose, and I wanted to choose, a programming language to study as formally as I could, and this is why I decided to dedicate my time and money to Java.
Open and free versus closed and proprietary
I have always liked open source world. I have learned so much from it and got introduced to some great people. I also believe that sharing knowledge and allowing creative freedom is a good thing, that has its rightful place in today’s consumerist/corporate world. Java is open and runs on almost anything. Chosen: Java. Rejected: C#
Java is in demand
True, Java is not the freshest thing around when it comes to IT word, but it is relevant and in demand. I browsed though job advertisements and compared Java with other technologies: Java seemed to be consistently present throughout years. Chosen: Java. Rejected: C#, PHP
Java is versatile
One of the courses offered to me was a course in PHP. I have never been a fan of PHP, but I worked on it when I had to, and there are some awesome projects written in it (this CMS for example!). Also, I did not feel I can learn the things I wanted the way I could with Java (OO and some advanced meta stuff). Another option was C++, which was not really my cup of tea (I am not interested into low-level languages). Chosen: Java. Rejected: C#, PHP, C++
Java is corporate
Now, this was an interesting moment for me: Java is a corporate technology. My programming projects have been either related to academic research or to open source / startups. I have not had a chance to see how programming works within a corporate context, and Java seemed like a perfect way into that world. It may not be the perfect world, but it dominates, and it would be foolish to ignore it. After all, all those startups are hoping to become a corporate leaders. Also, there have been moments where I felt at ease with more strict corporate frame of mind, than with over the place fresh startup’s. Chosen: Java. Rejected: PHP
So, what about Python?
I had not found a suitable course where Python is studied formally. Even if I had, that would have not affected my decision to choose Java. I love Python I keep coming back to it (most of the projects I wrote about on this site are Python-related), but sometimes it’s good to get a flavour of a different mental setup and learn new techniques. I have experienced that and I loved it when I had to learn the basics of R programming; now I am looking forward to the same excitement in Java. Learning a new programming language (a formal language) is similar to learning a new language (a natural language): you get a change to see reality from different angles, get to know different culture.
So, off I go to the Java adventures.