When I decided to go back into software development in March 2017, I knew very little about the current state of the industry, so I was quite uncertain what to specialize in and what approach to choose. Since I had never worked for a company, or applied for any jobs for that matter, I had no idea about the employment process, which meant I had to do some research online. The resource that helped me the most was John Sonmez’s Youtube Channel, which I mentioned in my first blog post. John is also the author of two really good books on non-technical skills for programmers: Soft Skills: The Software Developer’s Life Manual and The Complete Software Developer’s Career Guide. To be clear, I don’t know John, and I am not advertising him for any financial reasons. He has his flaws like everyone else, and I certainly disagree with his political views. I just think his advice, a large part of which is free, is really valuable. At least I know that I have gained a lot of knowledge and understanding of how things work from listening to his videos and reading his books.

Another thing that helped me a lot was talking to developers I knew or was able to meet through programming meetups. Basically, what I figured from my research is that the two most important prerequisites to finding a job for someone without previous employment experience in software development are having 1) a clear specialization and 2) a portfolio of work that can be shown to a potential employer to demonstrate proficiency. Of course, there are other factors, formal education being one of them, but the above-mentioned two seem by far the most important.

Web programming

I spent the next half a year (until December 2017) studying various programming topics, but was still undecided about the area to specialize in. Web programming seemed to be the most logical choice. First of all, I had actual recent experience in this field, designing and developing my wife’s website, which I could use as a part of my portfolio. I have gotten pretty good at using Javascript, managing the inner quirks of WordPress, using CSS and HTML5, etc. Secondly, there are a lot of positions in web development, even here in Vancouver, Canada. However, by choosing this field I would be essentially neglecting one of the strongest areas of my background – my education in mathematics and computer science. There is a reason why there are so many web development bootcamps nowadays, and that’s because almost anyone willing to study hard can learn how to create websites, even without previous education. Still, I was seriously considering this direction. Even now, if I don’t find a job soon, I might apply for web development positions, although this would not be my preference at this point.

Web programming

It was not until December that I stumbled upon my current area of interest, which is machine learning, as a promising career path. Okay, I have a Master’s degree in AI, so maybe I should have thought about it right away, but I had always considered it as more of a research subject than a field that has many non-academic jobs. Basically, my impression was that big companies like Google and Apple hire a bunch of Ph.D.’s who develop novel AI products such as self-driving cars and voice assistants, and then the rest of the world just uses these products as they are. I had not realized how much the area of machine learning has grown over the last few years, and how many different directions one can explore within this field, until I started going to the data science meetups in Vancouver and talking to other people interested in this field.

Of course, it’s still true that there are fewer positions in machine learning than in web development or general programming, but there are also fewer qualified applicants, and the number of jobs is growing very quickly. In one of the following blog posts, I am planning to do a review of the current employment market and talk about what types of machine learning and data science positions are available, according to my understanding and research.