I’m a software developer with 8 years of professional experience. A couple of years ago I felt like I’ve reached a dead end. I felt like I’ve mastered the “regular” programming. Of course, you can always get better but just needed a bit of a change. I have always had a passion for mathematics (derivatives, equations, etc) but haven’t been able to use this in my professional life. What should I do?
I talked with my boss to see if we could find a project internally in the company that involves more mathematics or advanced algorithms. Unfortunately, we couldn’t find such a project and to be honest I wasn’t too surprised. So I started to look around by myself. ML has always been hyped so maybe I should try it out? I started with the Googles ML crash course, https://developers.google.com/machine-learning/crash-course, and it definitely caught my attention. To be honest, after completing it I was still lost in that area but what I did understand that it involved mathematics at least so that’s good! Now I understood that this is my new passion and I was eager to start learning more, and hopefully change my career to become a Data Scientist or Machine Learning Engineer.
The next step I took was to sign up for a course through the Coursera platform. I chose a course just to get more structure to my learning and the Coursera platform is a great place to learn online. Andre Ng has a great course called “Machine Learning”, https://www.coursera.org/learn/machine-learning, and I recommend it to everyone pursuing ML. It starts really basic and at the end gets to the advanced stuff. It took me a couple of months to finish this, did this on the side while I was on parental leave, and it gave me a great foundation to stand on. After the course, I wanted to dig more deeply into mathematics and I found the specialization on Coursera called “Mathematics for Machine Learning Specialization”, https://www.coursera.org/specializations/mathematics-machine-learning.
The course did everything you can ask. I got to refresh my mathematics knowledge from the university and also dig down more deeply into some concepts I haven’t stumbled into before. For someone that has an interest in mathematics, I can highly recommend this course. In my opinion, it is important to understand the basics of ML. Yeah, sure you can just use the tools that already exist today but if your model is just a black box you will have a hard time understand it and also tweaking the model’s hyperparameters, you can see this as the algorithms different settings. Now that I have got a solid foundation from the crash course and courses what is the next step?
Next up is to do some actual work. Since I have a great interest in E-sport I decided to make a predictor for the game Dota 2. Before explaining my work let’s have a quick summary of the game. The game has two different teams that consist of five players in each team. All players select one character that has its own unique abilities and they are selecting the heroes in a strategic phase. Character selection is very important and games can be decided in this step. So I decided to make a predictor that predicts the best character based on the enemy and allied characters. Should be easy, right? Well as with most of the ML projects it all depends on the data.
2. How AI Will Power the Next Wave of Healthcare Innovation?
3. Machine Learning by Using Regression Model
4. Top Data Science Platforms in 2021 Other than Kaggle
In my case, I got a model with high accuracy but unfortunately, it didn’t work that well. Because I didn’t have enough data the model was too biased. The model only chose a couple of heroes and skipped some heroes completely. This is called that the data is imbalanced. This can be fixed by either altering the data so that the data is more distributed between all classes, the different characters, or you can add more data. The end result should be a good distribution of the different characters.
If you have data with 99% with only one class then ML algorithms have a tendency to simplify the model to only select that class all the time. Not a very smart model but it will have high accuracy on the training data. This is actually when I stopped. I wasn’t able to get better/more data and to be honest, I lost interest in it 🙂 As with most failed projects I have at least learned something!
After this, I looked at some projects that could be done that had a clear goal and something I can actually check how good my model is, and not just something I made up by myself. I found Kaggle that is a platform to learn and also compete with ML models. I started on several projects but I finished just one of the competitions and didn’t get any great results. These kinds of competitions take a lot of time and life gets in the way, small kids have a tendency to soak up parents’ free time ;). I’m not in my 20:s anymore and my time is limited.
As I stated early in this story my aim was to move to a Data Scientist or Machine Learning Engineer role. I realized that this kind of career change will be hard and take a lot of time, and I do love to code! Why not combining these?
Now we have reached the end of the story and I hope that you have stayed with me all the way. To all the developers I would say this: Hop on the ML train. It will maybe a bumpy ride but it will be worth it! ML is, in my opinion, the future and it will help your career. By having this in your backpack you will be able to find ML projects in your products that could bring great value. The biggest thing here that you get the basics so that you understand where this can be applied. One last piece of advice is don’t do the mistake I did and try to do a full career change. Instead, apply this new knowledge in your current career and make it more like a specialization.