Recently, I was invited to take an online coding assessment with Amazon. As I'm contracted with my current job for a while yet, I thought it might be fun just to try it out, with no pressure. Here's what I learned from absolutely crashing and burning on that coding assessment:
#1. Solve the Problem First
I spent a good chunk of my time validating arguments, which -- while this may be what you'd do in real life -- is not a good idea for a coding assessment. Sometimes, companies will throw in edge cases -- maybe your List
is empty, or is null
-- but usually that's after they verify the behaviour of your solution on valid inputs.
#2. Know the Basics
You don't want to have to waste time Googling how to deep copy an array when the timer is counting down. Know how to work with all of your standard data structures and practice, practice, practice.
#3. Read the Prompt Carefully
There will sometimes be caveats to your prompts. Maybe the prompt wants you to return an optimal solution if it exists, but if your solution falls below some threshold, don't return anything at all. Make sure you're satisfying the requirements of the prompt.
#4. Use Your Own Editor
Online coding assessments more or less have to provide an online IDE of sorts to help you compile, debug, and run your programs. Don't use it. It will be unfamiliar, slow, and it may have particular features you don't want (code completion), or be missing some that you do (automatic library imports).
#5. Practice with Restricted Time
These coding assessments are meant to be quick, but not so quick that you run out of time if you know what you're doing. That being said, when you're finished, you'll probably want to go back and clean some code, optimise, and add some comments. Practice with less time than you're supposed to be allotted.
There are third party assessment platforms, and Amazon has a coding assessment demo available online. I'm sure these exist for other companies, if anyone can provide them in the comments.
That's it! I think if I had followed my own advice above, I might have at least been able to finish the prompts in time. If you're a perfectionist like me, you'll need to leave that at the door to be able to first make a solution that works, and then go back and clean it up. Good luck!
If you enjoyed this post, please consider supporting my work by buying me a coffee!
Latest comments (36)
I have taken the OA.
This is divided into 4 steps. That are expected to be solved in 4 hours.
Do you know if I didn't perform my best at coding assessment, am I able to continue with next steps?
Because it took me away
Use your own IDE?
is that even allowed during the online assessment ?
Welp! I wish I had read this article yesterday! I bombed my coding assessment last night.
I actually read all the fine print before starting, and my interpretation was that I was supposed to use the web IDE they provided. I assumed they record your interactions for playback. But it was unfamiliar, and I make heavy use of code completion, which was not there.
They also provided a full practice assessment on the platform. I did that first and passed all test cases on both problems...and had about 20 minutes to spare.
But in the real assessment I struggled with the particular task. And the ticking clock made me flustered, and soon I was in a downward spiral.
This article really is super valuable...if you read it BEFORE your assessment. jajajajaja
can we switch windows during coding challenges? Doesnt the test get voided if they detect screen switching?
It depends on the rules of the specific challenge. It's always best to ask beforehand.
I see the biggest conflict in long term creating quality software vs. short term KPI, where one qualitative measure is compared with a quantitative measure.
And HR, as well as MGMT, are totally in love with quantitative measures, which is why (I assume) they still do these coding or fact-based-recall-skills assessments.
Woof. I applaud the positive message in this post and I'm all for encouraging and helping fellow devs with information like this. But it missed the biggest lesson from the experience:
Memorization and regurgitation does not a good developer make. And we need to stop accepting it as part of the hiring practice.
Knowing where and how to find an answer, and how to apply it, is infinitely more valuable today. Hiring in tech is fundamentally broken.
I made the same like a week ago: having a kid around doesn't help. Request for silence with a few days in advance. Of course I didn't get it
I would like to emphasize, that these kind of assessments only take a snapshot of your current development and problem-solving skills. A more valid approach also requires to monitor how your skills improve over time.
In the long run you want to hire someone who is good in self-improvement of skills and adapting to changes. Ans maybe this person has just not build the skills yet.
Failing this limited small puzzle makes me think in the end:
a) I just not solved it yet but in the future I would be able to do so
and
b) This would not be the place where I like to work at because the only thing they care is my current performance and not the performance I could deliver after x time-units of further improvement.
Hope this is not perceived as rude but rather a critical approach on code assessments we all should be aware of (and communicate in job interviews, too).
Still much thanks for sharing the test, it was fun to solve it <3
I wonder if you are allowed to use your own code editor? I can imagine them tracking your typing/editing, and if you are just copy-pasting a solution into the editor at the end, then they might get suspicious that you have not actually programmed it yourself.
For the one I did, at least, they warned you that they would be recording your screen. So they could see everything I was doing, including googling and going to StackOverflow!
Another comment for #4: the debugger can be a huge time saver!
Any ideas on where to get some sample questions?
In my opinion, Leetcode is the best website for practicing coding questions.
Check out this book, too:
amazon.fr/Cracking-Coding-Intervie...
Subscribe to dailycodingproblem.com/
Know Big(O) notation, too. I failed with the questions and then they asked this as well. I messed up this as well so I'm probably from redoing it for life :-)
I love solving such problems on Hackerrank. They are not timed but they do run against several test cases. So it gives you practice to code against all the edge cases.
Great tips for interview prep Andrew. Thanks for linking to Coderbyte!
My pleasure! Was there a little bump in traffic?
I bombed an interview at a huge company because I didn't read the question properly! It was a true/false question that was worth like 15% and I just read the keywords and clicked true because I wanted to have more time for the coding problems.
Lesson learned: Triple read each question 😆
I nailed an interview once because I didn't process the question correctly lol.
Me: goes on a 7-minute spiel.
Interviewer: ... ... Well, that's not at all what we were asking. ... ... But tell me more about that.
🤷♀️
Lol that sounds like something that could happen to me as well 😂