My Machine Learning Internship Experience — Part 1
This time last year, I was a couple of months into my Machine Learning internship. I spoke about my experience prior to my internship in my previous post. This post discusses my first week and some of the challenges that I faced during the rest of my internship.
Photo by Clemens Van Lay on Unsplash
The First Week
In my experience, the first week of any new role is all about understanding the current processes and tools that are being used. In my case, the tools and processes were still being put into place and there wasn’t anything formal to follow.
If you can ask about this before you start — I would recommend that you do! I guess some of the tools and packages (that I list below) may be obvious in hindsight, but there is nothing wrong with asking if you’re not sure or would like to start learning before.
I had been given a list of things that I could start taking a look at and things to get familiar with, as well as some of the project proposals that I was to be getting involved with. An example of some of the tools and packages includes: PyTorch, Ray Tune, Dash, Linux, and Vim. It became clear to me that before I even started getting familiar with this list, I needed to learn how to learn again in a much faster paced environment.
The following week my colleague in the same team arrived back from holiday and shared her notes from her first week. This was SUPER valuable, not only was I learning how someone else learns but I was also learning some of the things that I had skipped over. I did have to translate my colleagues notes from Spanish to English first, adding to the list of things that I was learning. The company was a Spanish company, and just before lockdown began I got the chance to go to Madrid with my team. So having translated my colleague’s notes was more beneficial than I could have thought it was at the time.
The AI team that I was part of consisted of only myself, my colleague and my manager for the first 6 months. We had 2 more colleagues join during my final 3 months, and just as reading my colleague’s notes was super valuable, so was understanding how other people fit into a team. For example, reading through the entire codebase to either understand or make comments.
Photo by Patrick Fore on Unsplash
Challenges
The biggest challenge that I’m sure everyone is either going through or has gone through is imposter syndrome. Some of the things that my colleagues did during their first week should have been obvious to me, but I felt like too much of an imposter to actually follow suit. I always thought that I could only have a small impact, but the matter of fact was that only I stopped myself. Learning from my colleagues has been so beneficial to me, and participating in things like code reviews has really helped me to overcome imposter syndrome.
I also played victim to the Dunning-Kruger effect, even after learning about what it is. I definitely compensated for this by taking many online courses, which would have been useful…except I wasn’t applying enough of what I was learning. One thing that helped with this was that my manager always encouraged me to take some time out during the work day everyday for learning, and setup a codewars account for the UK counterpart of the company. This is a lot of fun and now something that I also encourage others to do.
If you’ve only learnt python, and want to get better at these problems — as well as attempting them and not waiting, I can highly recommend this Data Structures and Algorithms course by Jovian. This course also encourages you to try out the challenges on LeetCode.
There are so many of these websites to practice your coding skills. I learnt that I hadn’t got to grips with the basics early enough, but I wasn’t even aware of how to get better. My colleague had also mentioned early on to check out HackerRank, which is another problem solving website that betters your code. There were so many things to learn so quickly (Machine Learning, Software Engineering and Satellite data) that I wasn’t sure what to prioritise, I can only hope that this post will help someone with their learning path.
Photo by Taylor Vick on Unsplash
As mentioned in my previous post, the farthest extent to my ML/DL knowledge was taking a 2-day course in Deep Learning. At the start of my internship I jumped into the deep with taking the fast.ai course. The fast.ai courses are amazing and I would highly recommend, but some of the problems I faced may have been avoided if I wasn’t using my company laptop — which I did to get access to a GPU at the time. Now there are many more accessible options (e.g. Google Colab or Kaggle). I was always comfortable asking questions and asking for help, but there were definitely certain scenarios I hadn’t thought to ask for help.
I wanted to download a PyTorch model, but I couldn’t figure out why this wasn’t working. When I eventually did, I realised that it was the company’s proxy blocking this request! Depending on how your company is structured, this isn’t something that can always be figured out on your own.
I had the fun job of installing SNAP which ended up taking me months(!) to get right, because yes you guessed it, the proxy. Not only because of the proxy, but also the company’s firewall. It would have been very easy to belittle myself in this situation because I couldn’t figure out what the problem was for a long time, but sometimes you have to ask for help (and sometimes you have to be persistent 🙂).
My next post describes the projects I was involved in, other learnings, what I’m up to now and my final remarks.