The Ultimate List of Job Hunting Resources for Software Developers Part 3: Prepare For Coding Interview
Tags: interviewpreparation, interviewprep, codinginterview, codinginterviews
Published: 2023-02-09 19:50:15

---
title: The Ultimate List of Job Hunting Resources for Software Developers Part 3: Prepare For Coding Interview
published: true
description: 
tags: #interviewpreparation #interviewprep #codinginterview #codinginterviews
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-02-07 14:44 +0000
---
_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](https://devgrowth.gumroad.com/l/TheUltimateListofJobHuntingResourcesforSoftwareDevelopers)._

---

## 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](https://imp.i115008.net/kjyQo3)
- Coursera Course: [Algorithm Part I](https://imp.i384100.net/P0eYVN), [Algorithm Part 2](https://imp.i384100.net/kjyQM3)
- [Cracking the Coding Interview](https://amzn.to/3kDAsM9)(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](https://leetcode.com/), 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](https://amzn.to/3HwoTiV)(or in [Java](https://amzn.to/3Hui7tQ))
- [Grind 75 questions](https://www.techinterviewhandbook.org/grind75) 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](https://leetcode.com/study-plan/binary-search/), [Graph Theory Study Plan](https://leetcode.com/study-plan/graph/)(some problems may require premium to unlock)
- Neetcode has [roadmap](https://neetcode.io/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](https://www.crackingthecodinginterview.com/uploads/6/5/2/8/6528028/cracking_the_coding_skills_-_v6.pdf) to solve new problems
Some community resources like this [leetcode patterns](https://seanprashad.com/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](https://leetcode.com/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](https://www.pramp.com/#/) is a free platform where you can pair with random peers to mock this type of interview
- [interviewing.io](https://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
- [Tushar Roy - Coding Made Simple](https://www.youtube.com/@tusharroy2525)
- [Back To Back SWE](https://www.youtube.com/@BackToBackSWE)
- [Abdul Bari](https://www.youtube.com/@abdul_bari)
- [Byte by Byte](https://www.youtube.com/@ByteByByte)
- [WilliamFiset](https://www.youtube.com/@WilliamFiset-videos)

## Other useful resources to prepare for coding interview
- [Big O cheatsheet](https://www.bigocheatsheet.com/)
- [Design Patterns](https://refactoring.guru/design-patterns)
- [Refactoring](https://refactoring.guru/refactoring)
- [A Philosophy of Software Design](https://amzn.to/3R5pSK6)

---

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!