Choosing a programming language:
First of all, you need to choose a programming language for
your algorithmic coding interviews. The only exception I know of is Google.
They allow their candidates to choose between Java, C ++, Python, Go, or
familiar with, rather than a language that is new to you but is widely used by
Then there are a few you want to avoid completely. From my
own experience as an how to read cracking the coding interview interviewer, most candidates choose Python or Java. Other
completely avoid lower-level languages like C or Go, simply because they
don't have standard library functions and data structures.
Personally, Python is my de facto choice for coding algorithms
during an interview. It is concise and has a huge library of functions and data
structures. One of the main reasons I recommend Python is that it uses
consistent APIs that work on multiple data structures, such as len (), to
insert notation and split sequences (strings, lists, and tuples). Arr [-1] is
the last element in a sequence, and only arr.
Java is a decent option too. But because you will always
have to declare types in your code, it means entering additional keystrokes.
This will slow down the speed at which you encode and write. This question will
become clearer when you have to write on a whiteboard during an on-site
The reasons for choosing C ++ or not are similar to Java.
Ultimately, Python, Java, and C ++ are good choices. If you've been using Java
for a while and don't have time to get used to another language, I recommend
sticking with Java instead of learning Python from scratch. This helps you
avoid using one language for work and another for the interview. Most of the
time, the bottleneck is thinking and not writing.
One exception to the convention of allowing the candidate to
"choose whatever programming language you want" is when the interview
is for domain-specific jobs, such as front-end, iOS, or Android engineer roles.
If you need to use a data structure that is not supported by
they can assume that you have a data structure that implements certain methods
with specific time complexities. If the implementation of that data structure
is not critical to solving the problem, it is generally approved by the
interviewer. In fact, it is more important to know the existing data structures
and select the right ones to tackle the problem at hand than to know the
complex implementation data.
Check your CS101:
If you've been out of college for some time, we recommend
that you review computer basics. I'd rather go over it while I practice. I scan
my college notes and review the various algorithms as I work through the
LeetCode and Filtering the Coded Interview algorithm problems.
This collection of interviews with Kevin Naughton Jr was a
quick update for me.
Vaidehi Joshi's medium-sized posts are also a very joyful
resource for reviewing the various data structures and algorithms.
If you're interested in how data structures are implemented,
is still much more WIP but I intend to turn it into a library that can be used
in production and also as a reference resource for learning data structures and
Mastery through practice:
Then gain knowledge and mastery of algorithms and data
structures in your programming language of choice.
Practice and solve algorithm questions in your language of
choice. While Cracking the Coding Interview is a good resource, I prefer to
solve problems by writing code, running it, and getting immediate feedback. From
my experience, LeetCode questions are very similar to questions asked in
interviews. HackerRank and CodeForces queries are more like