MACHINE LEARNING INTERNSHIP
Machine Learning is one of the fastest growing fields. Top tech companies like Google, Facebook, Amazon, Apple, and Microsoft are investing heavily in Machine Learning. For students, it is a great opportunity because not only does it open new avenues for learning but also it creates a lot of high-paying jobs and internships which the students can grab.
In this roadmap, we will talk about a step-by-step guide on how can a normal student like you get a great Machine Learning/Data Science Internship at a tech company.
This roadmap would be organized as follows:
Understanding the end objective
Preparing the basics
Picking up the basics of Machine Learning
Machine Learning project ideas
Building your resume
Reaching out to companies
Okay, so let us get started.
First, you should understand your end goal. Your aim is to get a great Data Science/Machine Learning related Internship. However, you need to refine your goal under the following areas:
Timing and duration of the internship: for how long do you wish to intern? Is it a 1-month long winter internship or is it a summer internship lasting for 3 months? Are you looking for a semester-long internship?
Startup vs large organization: are you excited to work at a startup? Or, are you looking to join a large organization? The environments, stipends, working hours are all very different in a startup as compared to a large organization. You will have to plan accordingly on what suits you the best.
Paid vs unpaid: are you fine with joining a great company where you believe that there is a huge learning potential, but may not pay you well?
The above factors are important to analyze before you start your preparation so that you can design your preparation strategy accordingly. Also, knowing the above parameters will help you refine the list of companies that you are reaching out to.
It is highly recommended that you are clear with the basics of Computer Science and Programming before you jump into Machine Learning. A lot of students start to learn advanced concepts without the preparation of the very basics of Computer Science. Such students eventually face difficulties because the implementation of Machine Learning algorithms requires great programming skills. Not being fluent in Programming will make you feel handicapped while implementing Machine Learning algorithms.
Therefore, before you dirty your hands with Machine Learning, make sure to revise/prepare the following concepts:
Basics of Programming (the CS101 stuff): make sure that you are comfortable with at least 1 well-known programming language. It doesn’t matter if it is C or C++ or Java or Python or something else. If your concepts are right, it is easy to pick up any new programming language. Revise the fundamentals of loops, variables, constants, functions, classes and objects.
Calculus: Machine Learning involves a lot of concepts from multivariate Calculus. Not knowing these concepts would make you feel that “ML is a black box” - which obviously you don’t want. Therefore, you should revise Calculus thoroughly. In particular, make sure you are familiar with the concepts of Differential Calculus. Coursera’s course on Mathematics for Machine Learning: Multivariate Calculus is excellent for picking up Calculus.
Linear Algebra: Linear Algebra is heavily used in Machine Learning. Some algorithms like PCA involve heavy use of Eigenvalues and Eigenvectors. Most students take Linear Algebra lightly and skip the advanced portions. They eventually face challenges in understanding ML algorithms. Coursera’s course on Mathematics for Machine Learning: Linear Algebra is great.
Probability and Statistics: You should be absolutely comfortable with the theory of Probability before you start Machine Learning. Probability and Statistics course offered by MIT OCW is something you should definitely give a try.
For Machine Learning, it is highly recommended that you use Python as the programming language. Python has excellent libraries for Machine Learning and it integrates well with quite a few web-frameworks. For learning Python, you can take Introduction to Python Programming course offered by Udacity.
Once the basics are in place, you would find it far easier to understand the concepts of Machine Learning. Having done the above, you’d be in a position to start with the core ML concepts.
By far, the best known introductory course on Machine Learning is Andrew Ng’s Course on Coursera. The course is an excellent mix of theory and programming and would give you a first-hand experience at ML. There is just 1 major drawback - the course uses Octave as the programming language which for all practical purposes is not used in the industry. Most companies, including startups, rather use Python for ML.
But that isn’t an issue. When taking Andrew Ng’s course, you can parallelly implement the algorithms in Python as well. To start off with, you can use the Sklearn library in Python which is one of the easiest to learn and implement. Sklearn offers readymade implementations of a large number of Machine Learning algorithms.
Some of the key concepts that you should focus on as a part of the course are:
Supervised vs unsupervised learning: a lot of companies ask basic questions on this topic during the interviews.
Difference between Regression and Classification
Backpropagation in Neural Networks
At the end of the course, you’d be able to implement Machine Learning algorithms on simple datasets which is quite good to grab an internship.
As soon as you complete Andrew Ng’s course, one of the most important things that you should do is to aim for at least 1 decent project in Machine Learning. Putting a great project on your resume is sure to give you an edge.
Many students worry about project “validation”. You should understand 1 important point - most companies don’t care about the “validation” of your project. Basically, you need not necessarily show that you did the project under a professor. You can always take up a project on your own and put it on your resume. At the very most, the interviewer might want to verify if you are lying or not. They always have a simple way to check this - ask you questions. In fact, that’s what most interviewers do - they ask you questions about your projects that you have mentioned on your resume.
Therefore, having some great Machine Learning-based projects on your resume gives you a great opportunity to create that “story” in front of your interviewer. You can talk about how you implemented your project, the concepts that you learnt and the scope of improvement. These things help you stand out of your competitors.
To get some great project ideas on Machine Learning, you can visit Kaggle. Kaggle contains a large number of datasets on which you can implement your own algorithms. Google has also launched a repository of ML Datasets. Each dataset is a project opportunity for you.
There is also a great course by Eduonix on Learning Machine Learning by Building Projects.
While doing a project, focus on the following key points:
How did you clean the data in the particular dataset
Why did you choose a particular Machine Learning algorithm for that dataset
What metrics have you used to evaluate the performance of the algorithm
How does the performance get impacted if you use some other algorithm?
Basically, aim to create a 1 - 2 page long report which highlights these points. It would be great to carry a printout of this report during your interview.
The first step in cracking a great Machine Learning internship is to get your resume shortlisted by some top companies you are aiming for. Generally speaking, resumes are screened by recruiters of the company. Recruiters often do not have the technical knowledge and therefore, they look for “keywords” on your resume. These keywords are highlighted in the form of skills, projects and certifications.
For instance, under the skills section, you should mention "Machine Learning" and "Data Science".
Under the projects section, you can add something like this: implemented a Neural Network which predicts _____ with an accuracy of __%. The implementation was done using Sklearn library in Python.
Under the certifications section, you should mention any certificates that you may have obtained in Machine Learning. Obtained a certificate of Machine Learning course completion by Coursera’s Machine Learning class.
When preparing for the interviews, divide your preparation into 2 parts
Preparing for Non-Machine Learning based interview
Preparing for Machine Learning based interviews
It is highly likely that even if you are applying for a core-Machine Learning company, they will have a round of screening which evaluates you on your basic knowledge of Data Structures and Algorithms, Python programming, Operating Systems and related fundamentals.
The last thing that you would want is that after 3 months of Machine Learning preparation you are rejected during the screening round which has nothing to do with Machine Learning.
Therefore, preparation for non-Machine Learning based interviews and screening tests is equally important. To do so, you should aim for the following:
Practice some simple implementation based problems, primarily on arrays, trees and Dynamic programming - these are most common in screening tests
Revise the concepts of Operating Systems and a bit about Databases as well
Recall all of the concepts involved in various projects that you’ve mentioned on your resume, by it ML projects or be it non-ML projects - remember, interviewers can pick up anything.
Often, the companies carry out a generic hiring process and then depending on the skills and projects mentioned on the candidate’s resume, they shift the candidate to a specific position (like Machine Learning Engineer Intern). Make sure that you are able to crack the generic hiring process by revising the concepts mentioned above.
For Machine Learning interview preparation, you should revise all the projects that you’ve mentioned on your resume. Besides, you should review Andrew Ng’s course quickly so that all the algorithms and related concepts are fresh in your mind.
A great platform to reach out to startups and middle stage companies is AngelList. Create a proper AngelList profile, highlighting your education, courses, skills and most importantly, the projects in chronological order. Add a decent profile image. Recruiters tend to skip profiles without an image - often thinking it to be a fake profile. Add a professional photograph. Do not add a casual picture with your friends.
Now, you can use AngelList to filter roles and companies by location, and even skills. For instance, you can filter all companies that are hiring for Machine Learning or Data Science.
You should post about your projects on LinkedIn so that the audience can see your progress and potential recruiters can reach out to you. Make a decent LinkedIn profile and connect to recruiters of the companies that you found on AngelList. Drop them a polite message, attaching your resume
My name is Y and I am a 3rd-year Computer Science student at PQR college. I am glad to be connected with you on LinkedIn.
I am very passionate about the domain of Machine Learning and for the past 3 months, I have been working hard to develop my skills around it. I believe that your organization could be a great opportunity for me to improve my skills and at the same time, create value for your company by working on your backend Machine Learning infrastructure.
I would be glad if you could kindly consider my resume for a position of a summer internship for 3 months, starting 1st of May, 2019.
Looking forward to hearing from you.
Thanks and Kind Regards,
B.Tech 3rd year
Computer Science and Engineering
After a week or so, if they have seen your message but not replied, you could drop a gentle follow-up message something like this:
I hope you got a chance to see my last message. I was wondering if there is something else you need from my end which will help you consider my candidature.
Thanks and Kind Regards,
B.Tech 3rd year
Computer Science and Engineering
Aim to reach out to at least 10 - 20 decent companies. Assuming a success rate of 50%, you’d hear back from 5 - 10 of them for the interview.
Learning Machine Learning and cracking a great internship is easy. All that is needed is that you create a systematic plan and execute it. Unfortunately, Tier 2 and Tier 3 college students do not get much attention from the companies and so, if you are from one such college and are looking for a top internship, you should aim to differentiate yourself. Your resume and your skills should be that key differentiator. Aim to create a superb resume which will help you catch the eyes of the companies. Increase your visibility to recruiters by being active on LinkedIn and AngelList.
At CareerHigh, we will soon be partnering with companies and recruiters who would be able to recruit students like you who have successfully followed our roadmaps.