I've compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the free PDF here.
Learn data structure and algorithm
If you are new to data structure and algorithm or you want to brush up on it:
- Udacity Course: Intro to Data Structures and Algorithms
- Coursera Course: Algorithm Part I, Algorithm Part 2
- Cracking the Coding Interview(it's a big book, but to ramp up on data structure and algorithm, you probably want to read below sections/chapters first): VI: Big O, VII: Technical Questions, IX: Interview Questions(Chapter 1–5, 7–10 since they cover common coding interview questions)
There are many other classic books or courses on data structure and algorithms, but to ace coding interviews, we should focus on practicing to solve common coding interview questions, there is no shortcut, practice makes perfect. Having said that, as of right now there are already more than 2500 practice problems on Leetcode, we also need to be smart about preparing for coding interviews.
A common and effective strategy I've seen many people used and worked(including myself) is:
Step 1: After learning about the fundamentals of a data structure or an algorithm, try to solve some corresponding classic problems
- You can check this book Elements of Programming Interviews in Python(or in Java)
- Grind 75 questions is a great tool if you want to spend less time but get the best coverage of frequently asked coding interview questions
- Leetcode has a couple of study plans such as Binary Search Study Plan, Graph Theory Study Plan(some problems may require premium to unlock)
- Neetcode has roadmap for studying data structure and algorithm
Step 2: Once you are familiar with these topics, now it's time to see if you are able to recognize which data structure or algorithm to use when you encounter a new problem
During this phase, you can try to practice this approach to solve new problems
Some community resources like this leetcode patterns is also helpful to learn about patterns
Step 3: Once you are confident you can solve most new problems, the next step is to practice mock interviews
Note that Leetcode has a Mock Assessment feature, you can try this feature to see if you can solve a problem within limited time, it mimics the online assessment in interview pipelines.
A more challenging yet common way to evaluate candidates is to have an interviewer work with you to solve a problem, it usually requires the candidates to be able to clarify requirements, communicate his or her thought process and solve the problem within a limited time. Other words, you also need to practice this scenario.
- Pramp is a free platform where you can pair with random peers to mock this type of interview
- interviewing.io also provides mock interview with FAANG engineers, although it's pricey, personally I think if you practice enough on Pramp and Leetcode it should be sufficient, but up to you if you want to invest a bit more in getting a FAANG engineer to mock coding interview with you
Coding interview Popular Youtube Channels
Other useful resources to prepare for coding interview
If you have seen resources that helped your job hunting process, leave a comment and share with more people :)
Next post I will go over how to study for system design interviews. Stay tuned!
Top comments (0)