- You must be extremely proficient at writing code in at least one language. Having good command of a language like JAVA would be beneficial.
- You must know your computer science fundamentals and be able to explain and use them to solve problems.
- Know Big-O Notation and how to figure out when offering solutions to problems
- Be able to code on a whiteboard.
- Know your data structures and how / when to use them. Also be able to code things like queues from scratch.
- Don’t forget to prepare for the “soft questions” as well. Why you want to work there, examples of problems you have solved, why you are leaving your job, etc.
- Get this book and do the problems: