Cracking the Coding InterviewGayle 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 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.
Never Split the DifferenceThough 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.
Programming PearlsIf 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:
- Choosing the process of finding the right algorithm to quickly find a solution that’s effective and accurate.
- Code profiling to get the correct answer to a problem.
- Programming principles for you to remember.
- A final list of problems for you to solve.
Daily Coding ProblemThis book by Lawrence Wu and Alex Miller has the subtitle, Get Exceptionally Good at Coding ours 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:
- Linked lists
- Hash tables
- Stacks and queues
- Randomized algorithms
The Complete Software Developer’s Career GuideThis book is for every programmer no matter his or her skill level. It asks (and answers) several important questions including:
- What programming language should I master first?
- How do I fill the gaps in my programming knowledge?
- How do I get around the “chicken and egg” problems of companies requiring three to five years of job experience that I don’t have?
- Is getting a computer science degree a necessity or a waste of time?
- How do I find a great coding bootcamp so I’m not scammed out of a lot of money?
- Should I take contract work or hold out for a salaried position, and which option brings me more money?
- How do I manage my boss so that he doesn’t micromanage me, but so that I can still help him succeed?
The Imposter’s HandbookThis ebook written by Rob Conery is only available on the Big Machine website.
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.
How to Win Friends and Influence PeopleThe 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
- six ways to make people like you (smiling is involved),
- twelve ways to get people to adopt your way of thinking, and
- nine ways to change people without making them angry or resentful.
Programming Interviews ExposedJohn 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 primarily covers programming problems you’ll encounter in the phone screen as well as in the actual programming interview, including:
- Arrays and strings
- Counting, measuring, and ordering puzzles
- Data science, random numbers, and statistics problems
- Design patterns
- Graphical and special puzzles
- Graphics and bit manipulation
- Knowledge-based questions
- Linked lists
- Object-oriented programming
- Recursion, string, and duplicate questions during a phone screen
- The best way to analyze your solution, especially by using the Big O analysis
- Trees and graphs
The Passionate ProgrammerThis 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 programming 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.
Head First Design PatternsThis 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:
- Adapter and façade
- Iterator and composite
- Template Method
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.