Part two of two on how to be a standout LaunchCode apprenticeship candidate. If you missed part one you can read it here.
Technical Testing and Live Coding
Every company uses different types of technical assessments. However the assessments used differ, and the tests given fall into two main categories: unproctored online assessments and live coding exercises.
How are the tests administered?
The tests are usually hosted on sites like HackerRank.com. Candidates are usually sent a link from the hiring manager that will take them to the test. You should be aware that, occasionally, the link may have an expiration date. Additionally, coding tests have time limits; if you cannot find the time limit on the test, it never hurts to double-check! Often, you will get to choose your preferred programming language from a relatively large list. Something to be aware of before taking one of these tests is that some tests specifically cater to certain languages and may have some options disabled. Once you submit the code, the platform will attempt to run a series of test cases to assess your programming logic. However, if the platform cannot run the code, it will return an error report to help you debug.
What are evaluators looking for?
Evaluators are looking for quite a few different things. The test score is only one aspect the evaluators take into consideration. At some companies, candidates must score above a certain level to qualify for the next round. Beyond the test score, evaluators are looking at many other things: quality of code, effort, code comments, time taken, logic, syntax, run time complexity and so on. At LaunchCode, the quality of your code means more to us than how well your code scores. We would much rather see clean code that is logical and easy to understand than poorly written code that works, but is very difficult to read.
Candidates can prepare for online tests by simulating the environment and practicing.
How can a candidate prepare themselves?
Candidates can prepare for online tests by simulating the environment and practicing. Many websites offer free coding puzzles, examples of which include hackerrank.com, projecteuler.net, or exercism.io. Start by copying down a list of questions you feel comfortable answering, select a random question from that list, set a time limit for yourself and limit the use of outside resources!
How are the tests administered?
Tests can be administered in person, either on a whiteboard or paper, or online using resources like collabedit. Most of the time, candidates don’t have access to the internet, code editors, or compilers. This exercise really shows your ability to code and your understanding of what your code does.
What are the evaluators looking for?
Evaluators can be looking for a number of different things during these exercises from problem solving abilities to communication skills. To keep things simple, I recommend you focus on four different things as you’re working on problems: requirements, logic, syntax, and testing.
- Ask yourself what are the requirements of this problem — what are the parameters, what is the input, and what is the desired output? Are there specific test cases you should take into consideration? Are there edge cases you should keep in mind while designing your solution? Once you have a good handle on the requirements, check in with the evaluator ask them to confirm your requirements.
- Before you start coding, consider the logic behind the problem. If the problem is complex, you should break it down into smaller, less complex problems. Once you have broken things down, take note of the steps or pseudo-code the problem. This shows the interviewer your problem solving process, and also, gives them a chance to sign off on your solution. This technique will help prevent errors you may make while coding out the problem.
- Syntax comes into play once you start coding. After confirming the requirements and completing the logic, begin coding. You should be able to follow the plan you created in the previous logic step. If you are confused or concerned about your syntax, circle it so that you can come back to it and redefine your logic if necessary.
- After completing your code, you should test your solution. If they gave you specific test cases, run them through your code to figure out the output. Does the output of your solution match the desired output for that test case? If not, you need to pinpoint where the problem is occurring and fix the issue, by addressing the logic or syntax. Can you identify any cases that would break your solution? If so, talk through those cases and possible solutions to the problems the cases pose with your interviewer.
The best way to prepare for any technical test is to practice, practice, practice!
How can a candidate prepare?
Candidates can prepare themselves by simulating the environment of the live coding test. Find problems online (check out the sites listed above) that you feel comfortable solving. Step away from your computer and do the problem on a piece of paper or on a whiteboard away from your typical coding environment. Follow the four steps provided above, and when you think you have a solution that works, run your solution through whatever platform you got the problem from as a final check to test your work. Take note of any problems in your solution. Did you make a logic or syntax error? If you find you are constantly making the same type of error, that’s an indicator that you need to work on that area more.
The best way to prepare for any technical test is to practice, practice, practice! If you get nervous, remember that every developer, no matter how much experience they have in the field, struggles with technical testing at some point in their career.
By Rakeem, Sally & Paul of the Candidate Engagement Team