Developing confidence in your ability to think through interview-style problems is every bit as important as exposing yourself to interview-style problems.
![elements of programming interviews github elements of programming interviews github](https://res.cloudinary.com/practicaldev/image/fetch/s--FlSrpt1a--/c_imagga_scale,f_auto,fl_progressive,h_900,q_auto,w_1600/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b1zguz0u0ellg6hgjucc.png)
ELEMENTS OF PROGRAMMING INTERVIEWS GITHUB HOW TO
This is important and it allows you to develop confidence in your ability to think methodically through a problem as well as giving you an opportunity to develop mental heuristics for how to tackle and test unfamiliar problems. it is not enough to settle for "I think I know how to solve this" - Actually code up the solution by hand and step through it with some simple cases. For the first week or two give yourself an honest focused couple of hours to wrestle with a problem before looking at the solution. Get dry-erase paper/notebook or a white-board and work through the problems by hand including the coding (important!). (I have worked through both Elements of Programming Interviews and Cracking the Coding Interview in their entirety and while both are good, in my experience Elements of Programming Interviews was clearly the better preparation in terms of technical depth, breadth of exposure to the kinds of questions I faced in the full-day interviews, and succinctness of coding solutions) Start to with "1-month" plan in the book spending at least an hour a day at the very minimum.
![elements of programming interviews github elements of programming interviews github](https://cdn.hackernoon.com/images/cksfsqtku-001-d-0-bs-6-h-5-b-290-z-6.jpg)
Get "Elements of Programming Interviews" and give yourself 2 months to prepare. I went to a top ranked school myself and had a comp sci degree but was very intimidated by technical interviews until I realized that this was no different than all the other other intellectual hurdles/gauntlets I had successfully navigated up to that point by giving myself time to thoroughly prepare. The thing to realize is that being good at technical interviews (as done by the above companies) is a skill unto itself but it is a skill an intelligent person with a comp sci background has the ability to get significantly good at after a 1 to 2 months of disciplined preparation. I have worked at Microsoft, Google and Facebook as a software engineer, going through the full interview process every time.