Great Ways Of Putting Your Coding Skill To The Test
Great tips and strategies for helping you put your strong coding skill to the test. How to make sure you are building clean code.
You’re up to date on the latest frameworks, you’ve got a Github with some shiny portfolio projects in it, and you’ve been preparing your answers for common interview questions. But the technical interview is still looming ahead of you – what will you be asked to do, and do you really have the coding skill to get hired?
You’ll want to make sure your fundamentals are strong enough. What if you’re asked to make some tricky sorting algorithm for a dataset with a particularly weird structure?
Let’s cover some of the more abstract traits that interviewers directly test for so that when you walk into the room, you know you’ll be able to handle whatever they throw at you.
Assessments of Coding Skill
It’s challenging to get a reliable metric of someone’s skills in computer programming. Even if a candidate has a good-looking portfolio, that doesn’t always translate into a productive developer in a team environment.
Here are some of the things a technical interviewer will look for, and what each indicates about how well you fit the position.
Open Source Contributions
A list of contributions to open source projects is a useful addition to your portfolio. To a prospective employer, this proves;
- You can jump into an existing project
- You are self-starting and self-directed
- A large codebase doesn’t daunt you
- You don’t just write code – you can read and understand what others have written
- Your interest in programming goes more in-depth than pure financial considerations
A Security Focused Mindset
Regardless of whether your code is meant to be public-facing, a security-focused mindset is critical for anyone working on an actual product, instead of just passion projects. Organizational security is only as strong as its weakest link – you don’t want to be that weak link.
Among other things, this means;
- You don’t unnecessarily reuse RNGs
- You properly scope your variables
- Sensitive data is appropriately encrypted at rest and in transit
- Credentials are properly stored
Calm Under Pressure
When your company is pushing out a product, the pressure is on in every area of production. Even with a carefully crafted roadmap, you might find yourself needing to rapidly ship a patch for a vulnerability that no one caught until it was too late.
This need is why the ‘live coding interview’ has experienced a continuous rise in popularity. It demonstrates that your coding ability doesn’t disappear when the pressure is on, and produce results that aren’t sloppy even if you worked quickly. After all, it wouldn’t be any good to fix one issue while introducing dozens more.
Polishing Your Work
We’ve all been there. You want to have some flashy looking projects up, so you can ‘wow’ the interviewers into hiring you. It’s essential to make sure that behind that style is substance – rock-solid code that demonstrates an attention to detail and coding conventions.
Beyond raw functionality, you must understand that your portfolio demonstrates your coding skill in aggregate – so don’t slack on the details. Look over your projects, and make sure;
- You aren’t using ‘hacks.’ Hacky code is buggy and unmaintainable.
- It’s legible. New graduates often underrate code legibility. Intentionally obfuscated and showy ‘tricks’ take center stage all too often. Quality code is also easy to understand.
- Your project source is all adequately commented and documented. Beyond maintainability, this also allows less technical hiring staff to assess the structure of your code and your professionalism.
- Remove projects that don’t highlight your skills. Low code development environments are a convenient way of mocking up an idea. But projects that use them don’t make you look appealing to a potential employer.
Test, Test Again, Then Test Again
“I’ve tested this enough, and besides, QA will take care of that when I’m working with a team.” Until you’re in a larger organization, you are QA. It’s your responsibility to make sure that what you produce passes the standards you would expect from the software you use.
In a proper business, the job of QA isn’t to clean up messes – it’s to catch the random, tiny issues that slip through the cracks. It’s not going to help you get a raise or promotion later on if you keep getting your contributions bounced back for simple errors.
Beyond the above, consider how embarrassing it would be to open up a project during an interview, only to have it throw “that one error it never throws, sorry just let me take a peek at the error log and see what’s going on.” That shame is entirely avoidable – all you have to do is test your code.
Algorithms and Optimizations
Algorithmic and simple optimization problems get a heavy – some would say imbalanced – emphasis placed on them during live coding interviews. The reason for this is simple; they’re easy to make and easy to assess.
Accordingly, you can expect most modern technology companies to quiz you on things like reversing arrays, heap management, recursion, etcetera. The best response to this is not to run out and memorize the most popular solutions to the most popular questions. It’s to make sure you truly understand the mechanics of the language before you test.
Beyond just knowing how to program in a given language, it is beneficial to understand why the language works the way it does. What problems is it trying to solve? What are its weaknesses?
If you learn more about how your language of choice operates ‘under the hood’ so to speak, you won’t need to memorize solutions. You’ll be able to create new ones. Novel solutions to known problems are the single best and easiest way to make an impression on your interviewer.
A CS Degree Isn’t All You Need
Increasingly, employers realize that a computer science degree isn’t direct evidence of a prospective employee’s actual coding skill. From Elon Musk to Barack Obama, executives in positions of power are publicly stating that what matters most isn’t your degree – it’s if you can write quality code.
So regardless of whether or not you underwent formal training; take a look at what you’re presenting employers. Consider whether you would hire yourself. Look at your portfolio, comb through your code, and polish up your soft skills.
Why not assess yourself using the same platform your potential employers may use? Check out our services, test your mettle, and see how you measure up. Better to learn about any possible weak areas now, rather than with your interviewers watching!