How I prepared for coding interviews as a bootcamp grad
Tags: bootcamp, interview, career, codenewbie
Published: 2022-04-24 07:52:47

I am a new software engineer who started on this interview preparation process with relatively weak CS background - I didn’t do CS in undergrad and did a bootcamp to get basic programming skills. I have since gotten multiple software engineering offers. These are the resources I used and hope this helps someone!

## Step 1: Getting relevant CS conceptual knowledge

Without a CS background, there are many basic Data Structures and Algorithms information which I didn’t know. As such, I started with a [Data Structures and Algorithms](https://www.udemy.com/course/master-the-coding-interview-data-structures-algorithms/?LSNPUBID=PPkX79%2Fc*b0&ranEAID=PPkX79%2Fc*b0&ranMID=39197&ranSiteID=PPkX79_c.b0-RoQEu4muSD0Qn.n7ISEfsw&utm_medium=udemyads&utm_source=aff-campaign) course from Udemy. This helped me with the very basics which really helped the rest of my preparation.  

## Step 2: Understand interview etiquette and formats

I then started reading the famous [Tech Interview Handbook](https://www.techinterviewhandbook.org/), written by an engineer who authored Blind 75 and also got multiple offers at Facebook, Google, Lyft, etc. This handbook contains information that covers all aspects of a tech interview - from [resume writing](https://www.techinterviewhandbook.org/resume/), [interview formats](https://www.techinterviewhandbook.org/software-engineering-interview-guide/), [preparation guides](https://www.techinterviewhandbook.org/coding-interview-prep/), [evaluation rubrics](https://www.techinterviewhandbook.org/coding-interview-rubrics/), [how to behave](https://www.techinterviewhandbook.org/coding-interview-cheatsheet/), problem solving techniques, etc. It even contains [algorithm study cheatsheets](https://www.techinterviewhandbook.org/algorithms/study-cheatsheet/) which covers the must-remembers and must-dos to familiarize with must-do DSA topics for interviews

1. [Array](https://www.techinterviewhandbook.org/algorithms/array/)
2. [String](https://www.techinterviewhandbook.org/algorithms/string/)
3. [Hash table](https://www.techinterviewhandbook.org/algorithms/hash-table/)
4. [Recursion](https://www.techinterviewhandbook.org/algorithms/recursion/)
5. [Sorting and searching](https://www.techinterviewhandbook.org/algorithms/sorting-searching/)
6. [Matrix](https://www.techinterviewhandbook.org/algorithms/matrix/)
7. [Linked list](https://www.techinterviewhandbook.org/algorithms/linked-list/)
8. [Queue](https://www.techinterviewhandbook.org/algorithms/queue/)
9. [Stack](https://www.techinterviewhandbook.org/algorithms/stack/)
10. [Tree](https://www.techinterviewhandbook.org/algorithms/tree/)
11. [Graph](https://www.techinterviewhandbook.org/algorithms/graph/)
12. [Heap](https://www.techinterviewhandbook.org/algorithms/heap/)
13. [Trie](https://www.techinterviewhandbook.org/algorithms/trie/)
14. [Interval](https://www.techinterviewhandbook.org/algorithms/interval/)
15. [Dynamic programming](https://www.techinterviewhandbook.org/algorithms/dynamic-programming/)
16. [Binary](https://www.techinterviewhandbook.org/algorithms/binary/)
17. [Math](https://www.techinterviewhandbook.org/algorithms/math/)
18. [Geometry](https://www.techinterviewhandbook.org/algorithms/geometry/)

## Step 3: Grind leetcode questions

After getting a basic understanding on leetcode and questions, I started with easy leetcode questions across all topics. If you try to work on leetcode question lists found elsewhere on the internet, it’s probably going to be quite challenging, but with [Grind 75](https://www.techinterviewhandbook.org/grind75) I could generate lists specifically of easy difficulty first, spread over a short period (3 weeks). This allowed me to work and familiarize with the easy questions first.

When I didn’t know how to questions,  I used this which is a [CN user’s solutions to 900 problems](https://www-cnblogs-com.translate.goog/grandyang/p/4606334.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB) (google translate to English).

After that, I generated questions based on the time I had left to my next interview (another month), and continued churning. I made use of the handbook’s problem solving techniques and best practices cheatsheet and incorporated them during practice. 

All in all, I spent close to 2 months churning. Because of the efficient way in which I went about my practice with Grind 75, I was able to work on medium and even hard difficulty leetcode questions towards the last 3 weeks of my preparation - much earlier than most.

## Step 4: Mock interviews

I used Pramp for mock interviews, although it’s not exactly the very best platform. It at least allowed me to get some live practice. I did around 10 Pramp interviews before I felt confident enough for my first interview. I scheduled them interspersed in the last 2-3 weeks to get adequate live practice and for it to feel “normal” to me.

## Step 5: Miscellaneous preparation

As per usual, you typically will need to introduce yourself at the start of an interview and also prepare questions to ask the interviewer. I prepared those as well before my first interview, using again guides from Tech Interview Handbook: [here](https://www.techinterviewhandbook.org/self-introduction/) and [here](https://www.techinterviewhandbook.org/final-questions/).

## Final thoughts

And that was my preparation journey as a bootcamp grad! I will be joining Amazon as a new software engineer starting June. Hope this transparency helps other bootcamp grads as well who may feel discouraged!