Technical interviews are a staple of the tech world: they’re praised, they’re analyzed, they’re criticized, but they just cannot be ignored — after all, they often serve as the ultimate test to the developer’s knowledge. It’s no wonder aspiring developers put their maximum effort into preparing for technical interviews.
Even though different companies organize their interview workflow differently, many people from the tech community think there must be some sort of “interview DNA” — certain motivations, features, and questions that all interview processes share — and that they can be distilled, analyzed, and cracked.
Books
In today’s era of online courses, it may be tempting to disregard the importance of books as they often seem outdated. Indeed, the technologies involved in the interviewing process change quickly — and books often just cannot catch up. But technical interviews are much more than “Okay, now sort this array in the latest version of Python” questions; they involve psychology, soft skills, and many other aspects not directly related to technology. This is where the power of books lies: they foster a thorough and fundamental understanding of important topics that don’t really change as time goes on.
Cracking the Coding Interview
When discussing an intricate issue like technical interviews, we always want to hear the experts’ opinions — and Gayle Laakmann McDowell, the book’s author, is exactly the expert we should turn to. She’s a software engineer who also boasts a lot of recruitment experience that she gained at Microsoft, Apple, and Google — in essence, she understands the ins and outs of the recruitment process from both sides.
The book’s goal isn’t to make you memorize the answers to the most typical questions; instead, the author will teach you how to approach the interviewing process analytically, dissect complex problems, and think creatively to find a solution to them.
Naturally, the book covers programming questions as well — there are 189 questions that go in-depth into topics like arrays and strings, trees and graphs, math and logic, object-oriented design, sorting and searching, scalability and memory limits, testing, and databases. The programming languages covered in this book are C, C++, and Java. Here’s how the book is structured:
- The interview process meta: why and how they’re conducted at various large companies and how they differ.
- Preparing for an interview: the right mindset and the right experience.
- Big O: designing efficient algorithms.
- How to prepare for technical questions.
- Receiving the offer — and dealing with the consequences.
- Programming questions and answers.
Programming Interviews Exposed: Secrets to Landing Your Next Job
Much like “Cracking the Coding Interview”, this book provides a balanced insight into the realm of technical interviews: solid theoretical insight is combined with hands-on practical experience. As reported by the readers, the highlight of this book are the exercises: they are practical, concise, and highly relevant — exactly what you need to get the job (done).
It’s important to notice that classic questions involving fundamental data structures and algorithms aren’t the sole focus of the practical exercises: new topics like probability, data science, statistics, and machine learning are also included to help you approach the learning (re-learning?) process from a new perspective.
As this is a new — fourth — edition, the authors strive to keep their brainchild highly relevant: they’re constantly adding information about new technologies, helping the book stay as fresh as an online course: online coding contests that are being used to screen candidate pools of thousands, take-home projects have become commonplace, and employers are even evaluating a candidate’s public code repositories at GitHub.
So which competencies will you gain after reading this book?
- Communicating with the interviewer effectively, i.e. understanding what they want to hear from you.
- Communicating with the recruiters effectively… even if they don’t have a technical background!
- Understanding of common interview problems and tests.
- Ability to prove your skills independently of the platform/medium: verbally, on GitHub, in contests, etc.
Online coding challenges
Although the books we’ve just described do offer a curated list of great technical questions, it’s often not enough for developers who really want to up problem-solving their game. Just 10 years ago, developers were left with studying books over and over — but not anymore.
HackerRank
This was the problem that HackerRank founds felt — and they decided to offer a platform where tech enthusiasts from all over the world can gather and solve coding challenges. Nowadays, HackerRank community boasts 4 million developers, billions in investment, and a spot in our “Best Resources for Preparing for Your Technical Interview” list — must be pretty neat of a service…
HackerRank offers three categories to train your skills in. The first one is “problem solving“ (Algorithms, Data Structures, and Mathematics), the second is “language proficiency” (C, C++, Java, Python, Ruby, Linux Shell, and Functional Programming), and the third is “specialized skills” (Artificial Intelligence, SQL, Databases, and Regex). The tasks at each sub-category are divided into difficulty levels and subdomains: the Linux shell sub-category, for instance, contains Bash, Text Processing, Arrays in Bash, and Grep Sed Awk subdomains.
Of course, users aren’t expected to solve each challenge — and when a particularly difficult one comes up, HackerRank offers a tutorial to explain the given problem, so it also acts as an educational platform.
Codewars
Codewars is a coding challenge platform as well — but it offers a different experience: the focus here is on the community and indeed, it drives the entire learning and training process. Each coding challenge is created by a community member, while other users test it, rate it, and provide help and feedback.
Upon completion, Codewars shows you the solutions that other users came up with — this really fosters healthy competition and motivates to continuously improve (we’re sure that many users had the “Wow, their solution is much better than mine!” thought at least once).
The community’s influence spreads even further: Codewars has the Honor system encourage user activity, rewarding for making code challenges (and making them better, too). In essence, you’ll never feel lonely on Codewars: even when completely focused on the next code challenge, you can still feel the presence of your like-minded peers solving their challenges with you.
Conclusion
The world of technical interviews often seems like a mysterious and daunting realm: the scope of questions that interviewers ask is so vast that many aspiring developers think it’s impossible to actually be prepared for a technical interview. Well, the resources we’ve just reviewed prove these fears wrong. Good luck in your next technical interview! 🙂
Its a great article. Easy to understand. Thanks for sharing this article.
Thanks for the feedback Nick!