Chapter 19
IN THIS CHAPTER
Finding books with information about interview questions and negotiation
Learning what programming skills and concepts you need to know
Taking a 30,000-foot view of your programming career
There are plenty of great books for information not just about preparing for your in-person interview, but also about how to solve a wide variety of programming puzzles. We have ten books we think you should consider reading alongside this one.
It was hard for us to select only ten books to recommend to you, but we think they will give you the tools and information you need to succeed. We write about some of these sources in more detail in earlier chapters in the book, but if you haven’t read those chapters yet, here’s your chance to learn about them.
Gayle Laakmann McDowell, owner of CareerCup in the San Francisco Bay Area, has published six editions of her best-selling book, Cracking the Coding Interview. This book contains 189 programming questions, including many algorithm-style problems, and their solutions.
The book also has a lot of good advice about how to prepare for and ace a programming interview, which isn’t surprising because CareerCup offers personal interview preparation services. Though the sixth edition was published in July 2015, the book is still current and as of this writing remains a number one bestseller in the computer programming languages category on Amazon.
What’s more, the CareerCup website (www.careercup.com
) has a list of recent interview questions that readers have submitted so you can see what companies are asking programming candidates. The site also includes videos of mock interviews conducted by McDowell with unscripted candidate reactions to learn from.
Though we’re negotiators from the time we’re very young, negotiating your benefits package at your potential new employer can seem overwhelming. After all, your life and your ability to live the way you want are on the line.
So, don’t start negotiating until you’ve read Never Split the Difference: Negotiating as if Your Life Depended on It. The book was written by Chris Voss, a former FBI lead international kidnapping negotiator, and award-winning business author Tahl Raz. (The book also has a five-star customer rating on Amazon.)
Saving lives honed Voss’s negotiation abilities, and he shares nine negotiation principles that may seem counterintuitive, but will give you the competitive edge — from establishing a rapport with the people you’re negotiating with to how to bargain so you get the price (or, in this case, the salary and benefits) you want.
If you’re looking for a book that will tell you how to solve algorithm problems in C and C++, then the classic Programming Pearls by Jon Bentley is the book you need. This book was originally written in 1986 and updated in a second edition in 1999, and despite the book’s age, the concepts and problems contained within are those you need to know to prepare yourself to answer interview questions.
Chapters in this book follow the same pattern:
When you finish reading this book and solve the problems within it, you’ll be a better programmer and ready to pass any interview with flying colors.
This book by Lawrence Wu and Alex Miller has the subtitle, Get Exceptionally Good at Coding Interviews by Solving One Problem Every Day.
Wu and Miller are both software engineers. Miller has interviewed hundreds of candidates for companies such as Yelp and Pinterest, and each question is based on an actual interview question asked by large tech companies. You’ll answer questions in a variety of categories including:
These categories are just a sample of all the categories in the book, and you can decide which questions you want to work on based on the job you’re interviewing for. After you get into a groove and solve your daily programming problem, you’ll feel confident that you can answer any question by the time you reach the last page of the book.
This book is written by someone you may find familiar (one of the coauthors of this book), and is for every programmer no matter his or her skill level. It asks (and answers) several important questions including:
This book discusses the human side of software development and when you finish reading it, you’ll understand why Amazon lists the book as a top seller in job interviewing.
This ebook written by Rob Conery is only available on the Big Machine website (https://bigmachine.io/products/the-imposters-handbook
) shown in Figure 19-1.
Conery bills the book as one for people who want to teach themselves computer programming without having to go through formal schooling. Conery did this by diving into all the topics that a typical computer science degree requires from the Stanford University website. Then he wrote a book that covered all those topics, including design principles, algorithms, design patterns, and data structures.
What’s more, Conery offers a print edition of the book for $49.99 (as of this writing; the ebook version costs $30), which includes 17 video walkthroughs so you have a full understanding of what Conery covers in the book.
If you like the book, Conery invites you to purchase the second volume, The Imposter’s Handbook Season 2, which also costs $30, so you can learn about advanced topics, including information theory and blockchain. You can also buy both volumes for only $49 instead of the normal $59.
The Dale Carnegie book, How to Win Friends and Influence People is considered the seminal book for learning how to improve their interpersonal skills so people can get the outcome they want from any situation. Carnegie died in 1955, but his book has been updated constantly since then, with the last edition published in 1998.
This book teaches you
After multiple editions published and over 15 million copies sold, the book is still relevant today and will be relevant as long as humans behave the way they do.
John Mongan, Noah Kindler, and Eric Giguere wrote the fourth edition of this book, subtitled Coding Your Way Through the Interview. Because this book is published by Wrox, a sister Wiley book brand, it’s the natural complement to this book.
Programming Interviews Exposed goes further than this book by primarily covering programming problems you’ll encounter in the phone screen as well as in the actual interview, including:
When you pick up our book, pick up Programming Interviews Exposed as well so you can get a full understanding of the programming interview process. Our book takes you through the basics and the human element, and Programming Interviews Exposed uses a soup-to-nuts approach to tell you about all the programming questions (and answers) you should know.
This book by Chad Fowler talks about approaching programming holistically. That is, not looking at the next job but at your career as a whole so you can drive your career in the direction you want. Though the book was published in 2009, the concepts in the book are as fresh today as they were then.
Through a series of essays in the book, Fowler shows you what your career looks like from a 30,000 feet review so you can see what you need to do now as well as 5, 10, and 20 years from now. That work includes creating a structured plan for keeping your skills fresh and your brain thinking.
When you’re thinking ahead, you can see what skills are becoming important and in what fields. You also learn to assess your skills and how to train yourself to be marketable to companies that use those new technologies. You’ll find yourself working on more interesting technologies and getting paid more in the process.
In sum, if you’re looking to become a leader in the software development world, you should buy this book, which is available only as an ebook on Amazon Kindle.
This book by Eric Freeman, Bert Bates, Kathy Sierra, and Elisabeth Robson was published in 2004 — which you can tell from the model on the cover who looks like rock singer Gwen Stefani in those days — but the information is still relevant because many design patterns haven’t changed over the years.
The subtitle of this book is A Brain-Friendly Guide, and the book lives up to that claim by providing not only simple explanations of common design patterns, but also many visual examples to reinforce the concepts explained in the text.
The book covers an extensive list of patterns you may encounter during your programming career, including:
The book ends with a chapter about how to apply these patterns in the real world and an appendix of other patterns that aren’t as important to know but you may encounter in your work.
If you’re the type of person who needs simplified information and illustrations that help reinforce concepts, this book will make it easier for you to understand design pattern concepts, why they’re important, how to recognize different design patterns, and how to use them in your code.