We're excited to release a free soft copy sampler of EPI.
Specifically, this PDF shows the organization, content,
style, topics, and quality of our book.
Amit, Tsung-Hsien
and I have completed "Elements of Programming Interviews"!
Buy it at Amazon.com - it's the best investment you as a software professional can make in your future.
Have you ever...
Wanted to work at a hot futuristic company?
Struggled with an interview problem that
could have been solved in 15 minutes?
Wished you could study computing in the context of real-world problems?
If so, you need to read Elements of Programming Interviews (EPI).
The code of EPI is a collection of 300 problems with detailed solutions, including over 100 figures and 200 tested programs. The problems are challenging, well-motivated, and accessible. They are representative of the questions asked at interviews at the most exciting companies.
The book begins with a summary of patterns for data structure, algorithms, and problem solving that will help you solve the most challenging interview problems. This is followed by chapters on basic and advanced data structures, algorithm design, concurrency, system design, probability and discrete mathematics. Each chapter starts with a brief review of key concepts and results followed by a deep and wide set of questions.
EPI concludes with a summary of the nontechnical aspects of interviewing, including common mistakes, strategies for a great interview, perspectives from across the table, negotiating the best offer, and much more.
Adnan, Amit, and Tsung-Hsien have worked at Google, Facebook, Microsoft, IBM, Qualcomm, and several startups. They co-developed algorithms and systems that are used by over one billion people everyday. They have extensive experience with interviewing candidates, making hiring decisions, and being interviewed.
Scaligent - self-serve scalable business intelligence
Scaligent will revolutionize the way businesses look at data.
It's a Silicon valley start-up founded by my PhD student Amit Prakash, and
I'm proud to serve as a technical adviser. Scaligent is looking for
very talented developers, specifically for high-performance
C++ computing, Java middleware, and UIs. Check out the job
openings at Scaligent.com. (Be prepared
for some really hard interview problems, Amit's a co-author
on Elements of Programming Interviews.)
My interests have moved from technology to applications. You can get an idea
of what I am excited about these days from MS reports I recently supervised/co=supervised:
I helped Jing-Tang (Keith) Jang develop Alephus,
an Android app for trading textbooks, which is now available for free at the Android marketplace.
Alephus is designed for university students to economically trade textbooks with their friends and classmates. It uses barcode scanner, camera, instant messaging, maps, and GPS functionality to allow you to effortlessly find nearby items. You can login with your Gmail and Facebook accounts."Minneapolis MN, 2007.
Software
TSS is a system for writing and evaluating trading strategies
written in Java. Downloadable tarball (18 Mbytes, mostly because
of the historical quote database included.)
Azinix is a system for monitoring and
controlling IP networks - any feedback would be greatly appreciated.
VIS is a system for
analyzing the temporal behaviour of systems of interacting finite state machines.
wikisearch
is some code I put
together for analysing the page structure of Wikipedia.