Life has been very busy (but good) these last weeks both from the professional and personal life and I have neglected the blog. I will change this in the next weeks and try to come back to my usual speed. For the moment being, I will share my answer to a question that I have been asked in several occasions in the past, especially when I visit universities: “What are the skills that the industry is looking for in new developers?”:
I believe that my answer could be more general, but I know it to be true for start-ups and even small companies, where the candidates will most likely be inspected by technical people (i.e., the current developers in the company) rather than an HR officer. Just for the record, I don’t intend this to be a complete answer and I will focus on the technical skills rather than the personal ones.
One of the first important questions you will face in one of this interviews is if you have a GitHub (or any other VCS) account. It is critical that you have one for two reasons. Firstly, this is the best way of showing you programming skills because anyone can see the code you have written in the past. This is a much better approach than sending a zip file with, for instance, some of your course-works from university. Most of the times, you can have a feeling of the quality of any developer by looking at the code they are willing to share online for everyone to see. Furthermore, if this code is part of a personal project that will clearly show the passion for programming that is needed to be a great developer. Having pushed code to open source projects will be also highly regarded.
My second advise is to broaden the programming skills by knowing multiple languages, and, even more importantly, paradigms. Being an expert in one specific language has its perks, but in my humble opinion, a slightly worse developer with a broad knowledge of other languages and paradigms would be much better for the job. There are multiple reasons for this: Programmers that only deal with one language develop “tunnel-vision” where they only see the solutions that are viable using that language. Remember the old english proverb “if all you have is a hammer, everything looks like a nail”. There is no such thing as “the best programming language” because multiple use cases will have multiple best candidates. A final benefit is that knowing multiple languages is something that will keep happening in the future as new languages appear and current ones slowly disappear. Continuous learning is the most important skills for any developer. It is not uncommon for some companies, especially start-ups, to radically change their development stack and even change their main language. In order to succeed they have to have developers that can learn new frameworks, tools and even languages in short periods of time.
As a summary, my recommendation would be to learn a couple of different languages (e.g., python and Java) and to start using them with a specific goal in mind, learning new techniques and libraries as needed and keeping this code in a public repository.