Algorithms for Interviews

Adnan Aziz, Amit Prakash

Mentioned 2

This book is subsumed by our new work "Elements of Programming Interviews" (EPI), also available from Compared to "Algorithms for Interviews", EPI has many more problems (300 vs 174), increases emphasis on problems that can be solved without specialized knowledge has much more code (over 250 programs) and over 100 figures, and is more bug free. You can view a sample chapter from EPI at Adnan Aziz's homepage (

More on

Mentioned in questions and answers.

I have been working on RTOS and Linux driver development for quite some time. Now I am interviewing at semiconductor companies and failing to answer questions about algorithms on strings, and time and space complexity. I have not studied discrete maths and algorithms during my as I have an electronics background.

How can I overcome this gap?

Start with something simple like: Algorithms in a Nutshell (good starting point for interview like questions)

alt text

Or Algorithms For Interviews When you feel you know the above book, then you can think of diving into introduction to Algorithms.

Introduction to Algorithms is a great algorithms book (and also happens to be listed 6th on the great influential book question)

I learned C# my first language about 2 years ago. I immediately did a project in unity3d but after that I didn't do another project for about 4 months. When I came back I realized I lost a lot of problem solving skills. When I first did the project I didn't Google for answers ever. I sat there and problem solved. I want this skill back. I think I need to relearn the foundations of programing and particularly problem solving.

Does anyone know of any courses or books, preferably free. For focusing on problem solving and the basics again? I do NOT mean basics in syntax. I mean figuring out (problem solving) on your own.

Also I've heard programmers usually look up research papers on things they want to program. What are some websites that have scholarly reports on how a algorithm might work, and most importantly I need some ways to start learning how to read a research paper and think about it computationally, and convert it into code.

Thanks in advance!

Your best bet for improving your problem solving is not reading books, but just doing lots of practice programs. is a site you can look at.

These books will give you a large list of problems that if you get one of them and work through it you will be in a good mindset for problem solving (These books are not free):

Some free sites:

It is very hard to learn how to problem solve just from a book, as all people think differently. Try doing questions for fun and you will learn to problem solve.