Cracking The Coding Interview
Cracking the Coding Interview is a classic when it comes to technical interview preparation.
I can recommend this book because this is the book I used when I was preparing for my first coding interview.
I still remember those days as if they were yesterday.
It was an interview for a software internship position and I wanted to get the position so bad.
It took me over two weeks to go over most of the problems and the solutions but boy was it worth it.
I passed the interviews and I owe a lot of that to the time I dedicated to studying this book.
One thing to mention here, this book provides solutions in Java.
It is not hard though to translate the solutions to your language of choice even if you are not a Java expert.
Ace The Coding Interview Every Time
Disclaimer and proviso: The postings on this site are my own and dont represent Amazons position in any way whatsoever.
Have you ever failed a code-intensive technical interview? I have, and can 100% relate. It was one of the most embarrassing moments of my professional career. It happened once, because I got complacent, didnt put in the prep time, and took the fact that my professional experience and ability to code would carry me through.
What a colossal mistake that was. I remember struggling in front of the white board for two hours and walking out of the interview dejected, knowing I missed out on a great opportunity due to a false sense of security and arrogance, and lack of preparation. I swore I would never let it happen again, and it hasnt.
Thus, whats contained here is my own blueprint, from having participated in technical interviews with many software companies of note, and from conducting literally hundreds of technical interviews at companies I work for. This methodology has also been refined with the help of other experienced Engineers and seasoned technical interviewers. Follow this, and you will absolutely crush most code-intensive tech loops as well as most other software companies out there.
Eat The Elephant One Bite At A Time
Most people would balk at the idea of eating an elephant.
Its simply too big, and theres no way to do it in small bites.
But if you take on the challenge one bite at a time, its not so daunting.
The same is true for studying for a coding interview.
Of course, you cant cram for a coding interview overnight, but it becomes more manageable if you break down the task into smaller pieces.
Don’t Miss: What To Email After An Interview
What Is The Amazon Interview
What exactly is the Amazon Interview? What should you expect when you walk into the room?
The majority of the Amazon interview consists of coding, and this is what the focus of this post specifically will be about. For strategies regarding how to ace your system design interview, consult the following post from Byte by Byte.
Lets break down the primary components of what the Amazon Interview consists of.
It’s Ok To Be Nervous
Most people get nervous before things like interviews, talks, or presentations.
I used to think of nervousness as a bad thinga thing I didn’t want. And no matter how many times I told myself “don’t be nervous”guess what: it just made me more nervous!
I’ve learned to re-think how I view nerves. Nervousness is my body preparing for a fightthat primal fight or flight response.
But like we said before: this is just an interview. There’s no tiger sneaking up on me in the interview room. This primal response isn’t necessary.
I’ve started retraining myself to view nervousness as a good thing. It means my body and sense are heightening so I can deliver the best performance I can muster.
So, embrace the nerves. They’re just prepping you to perform your best.
Also Check: What To Do Before An Interview
How To Prepare For Coding And Technical Interview Rounds
I will begin by giving a brief introduction about myself.
I am pursuing my B. Tech in Computer Science Engineering from NIET, Greater Noida and I am a 3rd-year student. I am currently an intern at SAPIO ANALYTIC as a Database Associate Intern.
Hey geek! It’s time to become a success story instead of reading them. Check out our most renowned DSA Self Paced Course, now at a student-friendly price and become industry ready. And if you are looking for a more complete interview preparation resource, check out Complete Interview Preparation Course that will prepare you for the SDE role of your dreams!
Feeling prepared enough for your interview? Test your skills with our Test Series that will help you prepare for top companies like Amazon, Microsft, TCS, Wipro, Google and many more!
I started off competitive programming in 2-1. So I had around 1.5 years of experience in competitive programming while I was sitting for placement tests. Having a strong background in competitive programming really saves your ass while others keep reading GeeksforGeeks to prepare themselves.
How to crack the interviews and get a decent job?
So, the organizations will be coming in many colleges soon, and conduct their shortlisting tests. Now, I will be talking very short and to the point. Each point is important.
Basic Skill Set :
Categorize Your Codes With Coding Frames
Once you create your codes, you need to put them into a coding frame. A coding frame represents the organizational structure of the themes in your research. There are two types of coding frames: flat and hierarchical.
Flat Coding Frame
A flat coding frame assigns the same level of specificity and importance to each code. While this might feel like an easier and faster method for manual coding, it can be difficult to organize and navigate the themes and concepts as you create more and more codes. It also makes it hard to figure out which themes are most important, which can slow down decision making.
Hierarchical Coding Frame
Hierarchical frames help you organize codes based on how they relate to one another. For example, you can organize the codes based on your customers feelings on a certain topic:
Hierarchical framing supports a larger code frame and lets you organize codes based on organizational structure. It also allows for different levels of granularity in your coding.
Whether your code frames are hierarchical or flat, your code frames should be flexible. Manually analyzing survey data takes a lot of time and effort make sure you can use your results in different contexts.
Recommended Reading: How To Watch Meghan Markle Oprah Interview
Do Not Forget About Traditional Questions:
Always keep in mind the mediocre and generic questions such as why do you choose this company?, do you think you are deserving for this position?, what qualities makes you stand out from others?, what are your strengths and weaknesses?, what are your hobbies? and so on. These questions are usually asked by the interviewer so as to create a basic outline about the candidate and what all are his interests. Also, these are great warm questions to prepare, and any individual going for an interview should expect such questions, as they will be asked for sure.
Dont Forget The Soft Skills
Mastery of coding challenges is only half the battle in coding interview preparation, so dont forget the soft skills. Throughout the entire interview process, including the technical coding interview, there are a lot of things that interviewers are looking for besides your ability to code. These other skills have to do with how well you communicate your thought process, collaborate, talk about the problem at hand, your leadership skills, your drive to learn, and generally speaking, how nice you are. Soft skills are often overlooked by candidates and can be deal breakers for a lot of coding interviews.
A company thats worth applying to will want candidates that have strong soft skills, sometimes moreso than hard skills, because they show how well a person can grow within the company and develop those hard skills over time. This is especially the case for junior software engineers.
When you practice your code challenges, see if you can buddy up with someone and take turns doing mock interview. Practice talking through the coding problem as you work, asking questions, giving each other hints here and there, and revealing your ability to lead, collaborate, and persevere through the coding test.
You May Like: How To Send A Thank You Email After An Interview
Research The Company You Are Interviewing With
Researching the company will give you insider knowledge to impress them with. Here are some tips on what types of research to do and where to find it:
Look at their website
Read about them on Glassdoor or Quora
Check out their blog posts or social media accounts -See if they have any videos that talk about themselves or anything exciting happening at the company right now.
Warm Up With The Classics
How did you do? Take a moment and rate yourself on these classics. We have been asked most of these at some point in the interview processand often early on as weed-out style questions. They often have less to do with algorithms and data structures, but still require a good understanding of loops and arrays .
Also Check: How To Get Ready For Interview Questions
Amazons Focus On Scalability
As you might expect from the tech behemoth, Amazon is very concerned with how things scale. Being able to not only solve certain technical challenges but also scale them is an important criterion on which you will be assessed.
For system design-based questions specifically, having a solid grasp of the various database technologies, how they scale, and how they compare will be a feather in your cap when confronted with how to increase the scale of your initial solution for a problem.
Knowing how SQL compares to NOSQL, and being aware of the differences between DBMS and RDBMS, etc. is good to know. It is worth taking the time to do your homework on how these technologies compare.
Expect to be able to effectively navigate system design-style interviews. These interviews tend to test your overall ability to design and scale technically based systems.
If youre unfamiliar with this style of interview or if you want practical tactics to prepare for system design interviews, check out this post by Byte by Byte that covers how to ace your interview.
What Is Coding In Qualitative Research
Coding is the process of labeling and organizing your qualitative data to identify different themes and the relationships between them.
When coding customer feedback, you assign labels to words or phrases that represent important themes in each response. These labels can be words, phrases, or numbers we recommend using words or short phrases, since theyre easier to remember, skim, and organize.
Coding qualitative research to find common themes and concepts is part of thematic analysis. Thematic analysisextracts themes from text by analyzing the word and sentence structure.
Don’t Miss: What’s The Best Way To Answer Interview Questions
Get A Good Nights Sleep
It is a well-known fact that sleep deprivation can make people do peculiar things.
A few examples are forgetting the name of your pet, not being able to remember how to tie your shoelaces, or even getting into a car accident.
The last thing you want going into an interview is being tired and mentally foggy, so have a good nights sleep before the interview!
Access Common String Groups With String Constants
Its trivia time! Is ‘A’ > ‘a’ true or false?
Its false, because the ASCII code for A is 65, but a is 97, and 65 is not greater than 97.
Why does the answer matter? Because if you want to check if a character is part of the English alphabet, one popular way is to see if its between A and z .
Checking the ASCII code works but is clumsy and easy to mess up in coding interviews, especially if you cant remember whether lowercase or uppercase ASCII characters come first. Its much easier to use the constants defined as part of the string module.
You can see one in use in is_upper, which returns whether all characters in a string are uppercase letters:
> > > importstring> > > defis_upper:... forletterinword:... ifletternotinstring.ascii_uppercase:... returnFalse... returnTrue...> > > is_upperFalse> > > is_upperTrue
is_upper iterates over the letters in word, and checks if the letters are part of string.ascii_uppercase. If you print out string.ascii_uppercase youll see that its just a lowly string. The value is set to the literal ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’.
All string constants are just strings of frequently referenced string values. They include the following:
These are easier to use and, even more importantly, easier to read.
Read Also: What Questions Do They Ask In A Cna Interview
Trick #: Know The Common Problems
There are a few common problems that show up often in interviews . You should be familiar with these problems because they’re sort of like questions you know are going to be on the test.
Two of the main ones are FizzBuzz and solving the Fibonacci sequence .
Now a word of warning: you don’t ever want to put down a memorized solution in an interview. That can only go poorly . You do however want to be familiar with the solutionand be able to recreate it from scratch.
So use your interview question prep books, yes, but make sure you understand the solution, can explain it, and can re-create it from scratch. A memorized answer isn’t going to get you anywhere here.
Format Strings With F
Python has a lot of different ways to handle string formatting, and it can be tricky to know what to use. In fact, we tackle formatting in depth in two separate articles: one about string formatting in general and one specifically focused on f-strings. In a coding interview, where youre using Python 3.6+, the suggested formatting approach is Pythons f-strings.
f-strings support use of the string formatting mini-language, as well as powerful string interpolation. These features allow you to add variables or even valid Python expressions and have them evaluated at runtime before being added to the string:
> > > defget_name_and_decades:... returnf"My name is and I'm decades old."...> > > get_name_and_decadesMy name is Maria and I'm 3.10000 decades old.
The f-string allows you to put Maria into the string and add her age with the desired formatting in one succinct operation.
The one risk to be aware of is that if youre outputting user-generated values, then that can introduce security risks, in which case Template Strings may be a safer option.
Don’t Miss: How To Prepare For A Second Interview
Start With The Brute Force Solution
I already mentioned this in passing in tip 3, but one of the biggest mistakes that people make when trying to solve interview problems is that they immediately try to find the most optimal solution to the problem.
But let me ask you this: Which is better, a brute force solution or no solution?
Ill tell you that finding a brute force solution is 1000% better than not finding a solution at all. And if you start by immediately trying to find the optimal solution, it is easy to get stuck and end up without a complete solution by the end of the interview.
While you dont actually have to code it up, I recommend at least mentioning briefly how you could solve the problem with a brute force solution before you go on to try to optimize your solution. This accomplishes two important things:
Starting with a brute force solution gives you clarity and a starting point to make everything else way easier.
Fifth: After Your Coding Interview
There is nothing more you can do other than waiting for the final decision.
Your recruiter will contact you shortly after and inform you of their decision.
If the final decision is a hire, then big congratulations
Invite your friends and family over and have a big celebration.
Your recruiter will contact you again to discuss the details of your offer.
Very good times indeed!
If the final decision was no hire, its OK.
You will definitely be sad for some period of time.
But after your sadness is over, its time to analyze why you got a rejection.
Either one of two things could have happened:
1- You havent prepared well
In this case, you know what to do.
Keep learning and improving yourself and then try again when you are ready.
2- It was outside of your control
Sometimes the rejection isnt really under your control.
If you feel that you did well in your interviews and you still got a rejection, just move on and try again later or try with a different company.
Good luck with your career!
With dedication and consistency, everything is possible
You May Like: How To Handle An Interview
Five Quick Tips On How To Pass A Coding Interview
Coding interviews can be a challenge for even the most veteran developers. For new developers they can be a downright nightmare. Sitting in front of a whiteboard while six or seven people stare at you can be intimidating. Especially if you’re stuck on a problem. Unfortunately software developers need to study for their interviews.
Even though coding interviews can be scary I have a few quick tips on how to get through them. There is a lot of material to cover in the world of coding interviews. Whole books have been written on how to get through them. Just keep in mind this is just a few quick tips.
A word of warning, I’m assuming that your interview will requires some sort of whiteboarding and or algorithm problem solving. As Joel Spolksy famously wrote, employers want employees who are 1. Smart and 2. get things done. And according to Spolsky one of the best way to find out if someone is smart is to test their knowledge by having the candidate complete whiteboarding and algorithm problems.
That being said, many employers, especially smaller organizations, reject this idea completely. Hiring practices at these places usually consist of a combination of take home or on-site tests and one-on-one question and answer with a technical interviewer. Occasionally they may even have the candidate participate in pair programming with members of their team. Most will skip the algorithm questions completely and shy away from whiteboard questions.
1. Study Every Day