Frustrated with coding challenges? Take a read of this..
I’m seeing more and more software engineers frustrated with recruiters asking them to do coding exercises - asking why they should do them when their CV goes back 15-20 years. I get it - seems OTT sometimes.
It’s not the recruiter asking you to complete it – it’s their client. If we had it our way, there wouldn't be a coding test.
Unfortunately though, it’s not 2001 anymore and we can’t fax a Java developers CV over to Goldman Sachs, you start the next day and we're already in the suit shop spending our commission.
Most companies want to see some code and there’s an under-lying aspect of your attitude too. Talent acquisition / HR and the hiring managers will often say ‘well, everybody else has managed to do it, so if this person doesn’t then they won’t be considered unfortunately'.
Take a step back and try and have a bit of empathy here for the business who are trying to find their star software developer. If you've got 100 applications/CVs to go through, one of the only ways you can really sift through and find the person you're looking for, is to see some code, right? If you were hiring and it was your budget on the line, you'd probably do the same.
A good challenge should generally reflect the companies tech stack, to see how you work / would cope with it.
Also – a good company (or, a sensible one), should have a coding challenge that they’ve created themselves or have set up in hackerank that is about 2-3 hours long. There are some challenges (I’ve heard) from the tech giants, that are 8 hours+ long, that go over computer science fundamentals that you’d never use at work. I agree with candidates here – its too much, plus it shouldn’t take 8 hours of your code at home to figure out whether you can do the job.
Here’s a few tips;
1) If you really don't like coding challenges, you may want to pursue roles in start-ups, small companies or roles from referrals at meetups. Your larger product/tech firms will all ask you to complete their coding exercise..
2) Try and keep your github up to date. I have placed developers before, where a mature chat was had, timescales weren’t on our side and the developer had enough code on their github for the CTO to check out and run a white-boarding session on.
3) Take some time and figure out which job you really want and apply for 1, maybe 2 roles. If you go throwing your hat into the ring for 5 different roles – that’s 5 coding challenges you might be doing and by that point you’ll be over it, or probably getting an offer elsewhere.
4) When completing the challenge, your best bet is to set aside some time on a Saturday or Sunday afternoon, complete most of it and then go back on Monday or Tuesday and re-visit it – make sure its well documented, there are test cases, etc.
5) Don’t over-engineer things or try to use every piece of technology you see in the job description. Just because the 'Senior .Net role with AWS, Docker, Microservices & Lambda' has that tech in the role, you dont need to implement them and you should certainly only do so if you can execute properly. Often, as long as it runs/works, things are documented well, is enough. The code will generally be a talking point in your final round / last face to face interview.
6) Call the shots – if you don’t have enough time and couldn’t complete things, or, there was something you weren’t sure of – email your recruiter and tell them what you would have done differently or done more of, if you had the time. Whatever you submit – the person looking at it will assume that’s your best effort..
Hopefully this has added some value? Drop me a line if you’d like to chat around this.. [email protected]
Technical Director | Accelerating Change in Financial Services
5 年Thanks for sharing.?I agree with giving coding exercises in the interview process. We have quadrupled our team in two location in the last 3 years in two rapid hiring drives. We were balancing sound assessment with candidate experience and speed of scaling. We slim lined the process but kept the take home coding exercise which a competent developer could solve in 2 to 4 hours.? Solutions of these simple exercises revealed not just candidates' coding skills and knowledge but also their attitude towards their tasks and their colleagues. This helped us recruit strong software talent who gelled together in high performance teams. More details on this is in : https://www.dhirubhai.net/pulse/recruiting-software-talent-omar-bashir/
Choose a job you love, and you will never have to work a day in your life ??
5 年Mark Joseph
Head Of Engineering @ Compare Club | Digital Transformation Leader
5 年I've had the privilege of hiring many developers over the years. I've been through processes that do no tests, codility/hackerrank type tests, multiple choice and a practical coding tests. I've easily had over 400 people go through the practical test and lots through the other tests. The practical test has by far been the most accurate way to assess a candidates ability. The test itself is based on a real world example similar to the work they would eventually do in the role. Just because you have 15 years experience doesnt mean you have always tried to improve the way you code and you don't have bad behaviours. For instance I've found mid level engineers who write far better, neater and testable code than seniors (I don't assess seniors based on this alone). The coding tests aren't perfect and they are time consuming but they give a great indication of the candidates ability. Every test is different and they need to be assessed in context. I understand it's time consuming for candidates and I ensure every test submitted has full feedback on why we didn't proceed. Long post, so apologies for the length. Thanks Nick for sharing your thoughts.
Technical partner, founder
5 年I usually don't give tasks to people I hire. I give them my own code asking "examine and tell me what's wrong with this code". Works way better than tasks...
Engineering Manager, 9Now CTV Team, Nine
5 年Good write-up!