The following is basically a collection of resources that I found useful in my job search, for the various components of the technical interviewing process.
Here are some good pointers and guides for general interview preparation
- The Complete Guide to Google Interview Preparation http://blog.gainlo.co/index.php/category/google-interview-preparation/
- “Interview Tips” section here: https://www.interviewcake.com/
- A really interesting and fun video to watch. This guy Moishe Lettvin did a lot of interviews when he was at Google and he kind of gives you the inside info on the process. His approach is very positive and friendly, and helps take some of the intimidation out of the process. https://www.youtube.com/watch?v=r8RxkpUvxK0
- A couple of videos that cover the general onsite tech interview process (videos are for google, but generalizes well)
Every phone screen is usually split up into 10 min intros, 45 min coding in a shared editor (example: coderpad.io) where you generally try to solve one to two problems, and 5 minutes for questions. BE CAREFUL not to eat up too much time in the first 10 minutes talking about yourself and resume since it just means less time to solve the technical problems.
- Interview Cake
- Sign up for their free 7-day email course, just fun encouraging emails about the process
- Read all of their free materials, they’re great
- I think it’s worth buying the full course, great walk-through style approach to problem solving
- They have a very positive and nurturing kind of style, feels like you’re being hand-held through the process.
- https://www.interviewcake.com/
- CodeRust 3.0
- A great collection of datastructure and algorithm explanations with interactive code editors (which aren’t quite as good as leetcode’s) and some animated visualizations.
- Probably more focused on volume than necessarily quality (compared to interview cake for example)
- https://www.educative.io/collection/5642554087309312/5679846214598656
- LeetCode
- A huge repository of problems to solve.
- I recommend using premium, then you can get the problems ranked by frequency of being used in interviews and broken up by large tech companies (not sure how actually useful that is, but whatever)
- Some recommendations online say to try to solve ~100 problems in this list mixed between easy/medium/hard. I probably did about 50, but did a lot of problems on other platforms as well.
- https://leetcode.com/
- Geeks 4 Geeks
- Great resource for learning material, problems to solve, discussions on problem solutions
- https://www.geeksforgeeks.org
- An awesome 1-pager flow-diagram for how to do a technical interview
- Cracking the coding interview
- Everybody recommends this book, if you would rather use a physical (or PDF) book rather than websites then this is definitely the thing for you:
- http://www.valleytalk.org/wp-content/uploads/2012/10/CrackCode.pdf
- Cheat sheets
- Complexity of various algorithms, kind of neat. http://bigocheatsheet.com/
- Just a bunch of interview tidbits that are useful to be familiar with. https://gist.github.com/TSiege/cbb0507082bb18ff7e4b
- Videos for algorithms / datastructures
- Hacker rank: great videos and explanations often by Gayle the author of “Cracking the coding interview”. https://www.youtube.com/channel/UCOf7UPMHBjAavgD0Qw5q5ww/videos
- I like a lot of these videos, especially the ones by Dr. Mike. Make sure to look at his Djikstra’s and A* videos, maybe the most intuitive explanations I’ve heard. https://www.youtube.com/channel/UC9-y-6csu5WGm29I7JiwpnA
- People recommended doing practice live interviews using something like pramp. I ended up not doing that myself, but think it’s probably a good idea. https://www.pramp.com
The system design portion of an interview is about requirements gathering, high-level architecture, box diagrams, talking through how systems should be built to scale up with traffic/use. They can also sometimes be more focused on object oriented design practices. I found that there was often one system design interview in any onsite (one of 4-5 technical interviews you would have during the onsite).
- Educative
- Great collection of articles and explanations of system design concepts and best practices. Example system design problems and walk-through of solutions. https://www.educative.io/collection/5668639101419520/5649050225344512
- Great software design patterns review. Mostly focused on software component design patterns vs. system design but very good still https://www.geeksforgeeks.org/software-design-patterns/
- Youtube lectures / videos:
- Every video by Ramon Lopez is absolute gold. https://www.youtube.com/successintech
- Great talk by Tim Berglund. It’s a bit of a Cassandra pitch, but has a lot of really good scalability points. I especially like his explanation of consistent hashing. https://www.youtube.com/watch?v=Y6Ev8GIlbxc
- This guy has great energy and is fun to listen to. https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw
- This guy has very thorough explanations. https://www.youtube.com/channel/UCZLJf_R2sWyUtXSKiKlyvAw
- Was given these two lists by a recruiter in preparation for the system design interview.
- One company I interviewed with required knowledge of relational databases and SQL. My experience in that domain is very little so I found these tutorial very useful (and they turned out to be very relevant to the interview). https://www.khanacademy.org/computing/computer-programming/sql/sql-basics/v/welcome-to-sql
This is of course only relevant if you’re seeking ML or AI roles, but I figured I may as well share the materials I found and used.
- This is just a spectacular resource. I didn't have time to take the full course, and found this page too late in my preparation but absolutely used many of its explanations and articles. Would definitely take the course if I was doing it over again. https://elitedatascience.com/machine-learning-masterclass (that link is broken, this might be an updated version of that article but I'm not completely sure: https://elitedatascience.com/primer)
- Extensive set of learning resources, articles, books, and a course. https://machinelearningmastery.com/
- "Kaggle is the place to do data science projects". A great selection of learning materials, competitions, free data sets etc. https://www.kaggle.com/
Can either be taken completely with assignments etc., or cherry-picked for good explanations of specific concepts)
- The classic Andrew Ng course on Coursera. Still relevant and a great resource on classicML https://www.coursera.org/learn/machine-learning
- Another great course covering the basics. Has a lot of Azure homework which you can take or leave. I really like Cynthia Rudin's style of explanation. Especially good backpropagation, clustering, and collaborative filtering explanations. https://www.edx.org/course/principles-of-machine-learning
- Machine Learning Crash Course with TensorFlow APIs. Google's fast-paced, practical introduction to machine learning. https://developers.google.com/machine-learning/crash-course/
- Neural Networks and Deep Learning https://www.coursera.org/learn/neural-networks-deep-learning
- Machine Learning: An In-Depth Guide - Overview, Goals, Learning Types, and Algorithms. I found this to be a great refresher, it uses relatively simple english to practically explain a broad set of topics. https://www.innoarchitech.com/machine-learning-an-in-depth-non-technical-guide/
- Do You Need Help Getting Started with Applied Machine Learning? This is The Step-by-Step Guide that You’ve Been Looking For!https://machinelearningmastery.com/start-here/
- The Most Comprehensive Data Science & Machine Learning Interview Guide You’ll Ever Need. https://www.analyticsvidhya.com/blog/2018/06/comprehensive-data-science-machine-learning-interview-guide/
- A Tour of Machine Learning Algorithms. High level list and comparison of several models and algorithms. https://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/
- Modern Machine Learning Algorithms: Strengths and Weaknesses https://elitedatascience.com/machine-learning-algorithms
- Machine Learning Algorithms Pros and Cons https://www.hackingnote.com/en/machine-learning/algorithms-pros-and-cons/
- What are the advantages of different classification algorithms? https://www.quora.com/What-are-the-advantages-of-different-classification-algorithms
- Machine Learning For Dummies Cheat Sheet. https://www.dummies.com/programming/big-data/data-science/machine-learning-dummies-cheat-sheet/
- The Inductive Biases of Various Machine Learning Algorithms http://www.lauradhamilton.com/inductive-biases-various-machine-learning-algorithms
- Why is it that the lasso, unlike ridge regression, results in coefficient estimates that are exactly equal to zero? https://www.quora.com/Why-is-it-that-the-lasso-unlike-ridge-regression-results-in-coefficient-estimates-that-are-exactly-equal-to-zero
- Word to Vectors — Natural Language Processing https://towardsdatascience.com/word-to-vectors-natural-language-processing-b253dd0b0817
- An Intuitive Understanding of Word Embeddings: From Count Vectors to Word2Vec https://www.analyticsvidhya.com/blog/2017/06/word-embeddings-count-word2veec/
- Probability concepts explained: Maximum likelihood estimation https://towardsdatascience.com/probability-concepts-explained-maximum-likelihood-estimation-c7b4342fdbb1
- The complete Andrew Ng course https://www.youtube.com/watch?v=PPLop4L2eGk&list=PLLssT5z_DsK-h9vYZkQkYNWcItqhlRJLN
- Predicting Titanic survivors with machine learning - Ju Liu. A pretty cool talk where he codes everything up live (pretty much). https://www.youtube.com/watch?v=YhZXU5zUnO0
- Great practical tutorials and overview videos by Siraj Raval. https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A
- The 7 Steps of Machine Learning. A quick high level overview video https://www.youtube.com/watch?v=nKW8Ndu7Mjw
- How To Prepare For A Machine Learning Interview https://blog.udacity.com/2016/05/prepare-machine-learning-interview.html
- 5 Skills You Need to Become a Machine Learning Engineer https://blog.udacity.com/2016/04/5-skills-you-need-to-become-a-machine-learning-engineer.html
- How to Ace a Data Science Interview https://alyaabbott.wordpress.com/2014/10/01/how-to-ace-a-data-science-interview/
- Data Science Question Answer. This one has pretty good explanatory images https://github.com/ShuaiW/data-science-question-answer
- "Easy Tensor Flow" walkthrough. https://github.com/easy-tensorflow/easy-tensorflow/blob/master/1_TensorFlow_Basics/Tutorials/1_Graph_and_Session.ipynb
- Approaching the Hiring of Engineers as a Machine Learning Problem https://www.pagerduty.com/blog/approaching-the-hiring-of-engineers-as-a-machine-learning-problem/
- How Not to Fail Your Machine Learning Interview. https://medium.com/ai%C2%B3-theory-practice-business/how-not-to-fail-your-machine-learning-interview-9545a67b35bc
Good for reference even though you may not have enough time to go through them exhaustively.
- Deep Learning by Adam Gibson, Josh Patterson. https://www.safaribooksonline.com/library/view/deep-learning/9781491924570/ch01.html
- Reinforcement Learning: An Introduction. By Sutton and Barto. http://incompleteideas.net/book/the-book-2nd.html
- 21 Machine Learning Interview Questions and Answers https://elitedatascience.com/machine-learning-interview-questions-answers
- Glassdoor - Amazon Machine Learning Interview Questions https://www.glassdoor.com/Interview/Amazon-Machine-Learning-Interview-Questions-EI_IE6036.0,6_KO7,23.htm
- Glassdoor - LinkedIn Software Engineer/Machine Learning Interview Questions Experience https://www.glassdoor.com/Interview/LinkedIn-Interview-Questions-E34865.htm?filter.jobTitleExact=Software+Engineer%2FMachine+Learning
- Data Science and Machine Learning Interview Questions https://towardsdatascience.com/data-science-and-machine-learning-interview-questions-3f6207cf040b
- 12 Important Machine Learning Interview Questions to Study Ahead of Time. https://www.simplilearn.com/machine-learning-interview-questions-and-answers-article
- Popular Machine Learning Interview Questions To Assess Candidates. https://analyticsindiamag.com/popular-machine-learning-interview-questions-used-to-assess-candidates/