Programming Interviews Exposed

book

Hi,

this week I’ve finished reading Programming Interviews Exposed: Secrets to Landing Your Next Job. Actually, I’m not looking for a new job now, but I was a little bit curious about how the book shows the way on solving programming problems. The book discuss a lot of lists, trees, strings and arrays problems and solutions, making a very detailed explanation about each of them and their time cost. Besides of that, it teaches you some secrets of big companies’ interviews process.

The book is divided in 16 chapters. Here they are:

Chapter 1: Before the search

In this chapter, the book talks about tasks that you should perform before looking for a new job. The first one is knowing yourself and what kind of programmer you are. Next, you should know the market and understand the current job you are applying for. Later, you need to develop market skills such as upgrade your credentials, get certified and keep learning. Finally, you must sanitize you online profile to prevent screeners to find online informations that can affect your chances of being hired.

Chapter 2: The Job Application Process

This chapter exposes that networking is the best way to find prospective jobs. However, if you don’t have a good one, contact companies directly. The chapter also talks about the interviews in an job application process. In short, there will be one or two screening interviews, usually done by phone, and later a series of on-site technical interviews.

Chapter 3: Approaches to Programming Problems

This chapter introduces the importance of coding questions in programming interviews because they’re the opportunity to demonstrate that you can do the job. Try making your code solid and pretty and always explain what you are doing to the interviewer.

Chapter4: Linked Lists

This chapter talks about linked list data structures, kinds of linked list and  its basic operations, nothing too advanced at all. However, the good part is in the second half of the chapter:  linked list problems, the typical problems that you might encounter during an interview. So, I will be a good boy and show you some of them

  • Discuss the stack data structure. Implement a stack in C using either a linked list or a dynamic array, and justify your decision. Design the interface to your stack to be complete, consistent, and easy to use.
  • head and tail are global pointers to the first and last element of a singly-linked list of integers. Implement C functions bool remove(Element *elem) and bool insertAfter(Element *elem, int data)
  • Given a singly-linked list, devise a time – and space-efficient algorithm to find the mth-to-last element of the list. Implement your algorithm taking care to handle relevant error conditions. Define mth to last such that when m = 0, the last element of the list is returned.

Chapter 5: Trees and Graphs

Similar from chapter before, Chapter 5 gives an introduction on trees and graphs data sctructures followed by some problems involving them. Here they are.

  • Perform a preorder tranversal of binary search tree, printing the value of each node, but you may not use recursion.
  • Given the value of two nodes in a binary search tree, find the lowest (nearest) common ancestor. You may assume that both values already exist in the tree.

Chapter 6: Arrays and Strings

This chapter focuses on arrays and Strings explanations. The book starts with their concept and the differences of each one in languages such as C/C++, Java e C#. Later, comes problems involving operations with both data types. Here are some of them

  • Write an efficient function to find the first nonrepeated character in a string.
  • Write a function that reverses the order of the words in a string.
  • Write two conversion routines. The first routine converts a string to a signed integer. The second routine converts a signed integer sotred as an int back to a string.

From here, I’ll start just saying the name of the chapters, trying to incentivate you reading the other problems by yourself.

Chapter 7: Recursion

Chapter 8: Concurrency

Chapter 9: Object-Oriented Programming

Chapter 10: Databases

Chapter 11: Other Programming Topics

Chapter 12: Counting, Measuring, and Ordering Puzzels

Chapter 13: Graphical and Spatial Puzzels

Chapter 14: Knowledge-Based Questions

Chapter 15: Nontechnical Questions

Chapter 16: Conclusion

In short, this is a very good book on its purpose. So if you are close to apply to some interview process, reading this book is a very good start.

See you,


Fernando

One thought on “Programming Interviews Exposed

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s