How to Test Programmers Coding Ability Before Hiring?Posted by: Beth George | On: 25th Jul, 2019 | Startup
When your startup is hiring the first developers, it can be hard to assess their coding skills. This is especially true when nobody in the current team is qualified to judge their coding skills. This is often the case when people with business or other degrees come up with an idea for a product without having coding experience themselves.
You don’t want to hire a coder with no experience, but you don’t know enough about coding to be sure of whether a coder is good or not. So, what do you do? Fortunately, there are a few ways to tell a decent programmer from a not-so-decent programmer.
Something to Keep in Mind
Keep in mind that, as an early-stage startup, the talent pool that you can draw from may be somewhat limited. You’ll be able to find decent programmers if you offer decent wages, but as a new company with limited funds, advanced coders with lots of experience are probably looking for bigger fish.
Don’t let that get you down, it’s for the best. Top coders charge top dollar, and you don’t want to spend all of your accounts just paying your programmers. It’s best to start with capable but affordable coders and grow your talent as you grow your company.
- Treat It like Any Other Job
So, you don’t know to code. That doesn’t mean that you don’t know what you’re doing. Don’t let the tech freak you out and treat hiring coders like you would treat hiring anyone else. Ask them for basic things like a resume, a portfolio, and references.
Their portfolio won’t be a physical document, it’ll be a website or a series of links to their past work, but that’s okay. Keep in mind, however, that because coders work together, it is easy for a lazy or sub-par coder to try to take credit for a great project that was created primarily by other people. That’s where references come in.
Further, these days most universities require hands-on experience for students to get their degrees. If a coder comes to you with good grades from a good college or university but little experience, ask them what hands-on experience they had in the classroom and how to get in touch with their professors or advisors.
You can also check social media. Browsing pages like Facebook is a little creepy and it’s not likely to yield any valuable information. However, sites like LinkedIn and even Twitter are sites that many professionals – including coders – use as a platform to showcase their work, ideas, and opinions on pertinent issues. We’ll talk more about some coder-specific sites that are similar but potentially more useful.
- Talk to Your CTO
You might not know to code but someone in your startup should know to code. If you don’t have a Chief Technical Officer who can tell a bad coder from a good one, your startup might not be ready to start hiring developers yet.
If you don’t have an experienced CTO, see if you have it in your budget to look for a new CTO as long as you’re looking for developers. If you don’t have it in your budget, do some more networking and see if you can find one who is interested enough in the process to come on as a partner or advisor to help you get started. You can always find experienced technical folks who could act your virtual CTO until you have budgets for a fulltime position.
- Give Them a Test Project
One good way to test a coder is to give them a small test project. This might sound like an opportunity to get some free work, but be careful. Most coders worth paying won’t work for free – even if it is just a test project. Paying the coders for test projects like you would if they were already working for you ensures that you get applicants. It also helps you to see the kind of work that they do at the rate that you plan on paying them.
Good sample test projects should be minimally interactive. This way, they won’t take too long, but they will also give you insight into the coder’s coding ability. Having them “code” a page of text won’t tell you much about their programming process. The project should be something that your organization actually needs so that you have something to show for the money that you spend on the test.
Examples of practical but minimally interactive coding projects include things like website welcome pages, surveys, and contact pages.
- Check for Any Public Projects
One way that some coders get experience is by working on “public projects” like coding for nonprofit groups etc. These groups often credit the coders that work for them for full-disclosure reasons, for grant writing reasons, or as a way of paying it forward to their coders.
Projects like this should be included in documents like the resumé or portfolio that the applicant gives you, but it never hurts to have a deeper look. You can find if they have any opensource projects under their belt. Checks sites like SourceForge for it.
- Look for Contributions in the Coding World
Even coders with little professional experience have ways of leaving their marks on the coding world.
Stack Overflow is a question-and-answer site where coders share ideas and ask for help and support. If your applicant has a profile on the site, give it a scroll. Are they generally answering questions or asking them? When they answer questions, does the community positively respond to the answers that they give?
Medium isn’t just for coders, but it can be informative none the less. This is a site where people can publish articles and read articles written by others. If your applicant has a profile on the site, take a moment to see what they’re reading about and whether they publish. If they publish, see what kind of feedback they get from other members of the community.
Finally, GitHub is a website where coders postcode that they want other coders to be able to use and have access. Sometimes, programmers who code for practice or fun will post their code on this site. Even if you can’t tell much from the entries, you should be able to see whether other users have used the code posted by your applicant and how it worked for them.
While you’re looking at sites like this, keep in mind that all of these sites are elective. There’s no universal programmer’s guild making sure that all professional coders have GitHub portfolios and Medium entries. If your applicant has a profile on any of these sites, that’s great – see what you can learn from it. If your applicant doesn’t have a profile on any of these sites it doesn’t necessarily mean that they aren’t good at what they do or that they aren’t a “real” coder.
- Programming Tests
Finally, there are programming tests available online. Some of them are free, and some of them cost a nominal fee. Some of them are for coders to test their own abilities, and some of them are specifically meant for recruiters to use in the hiring process.
The best programming tests randomly generate unique tests each time so that programmers can study by taking the tests multiple times but they can’t just memorize the answers. A good test should take an hour or so for the applicant to complete.
This kind of information should be available on the site before you generate the test. Choosing a test that takes an hour or more to complete gives you a fair idea of how well the applicant works on the clock.
As is the case with test projects, it’s something of professional courtesy to pay the applicant something for the time that they spend taking the test. This isn’t as obligatory for tests as it is for sample projects because you can’t use test results in the same way that you can use a test project.
You also don’t have to pay them the same hourly rate for their test as you would for their work. Just make sure that you are upfront with the applicants before they begin.
Making the Choice
Whatever method or combination of methods you use, it’s important to keep the right weight on the hiring process. The recruiting process can be tedious and even expensive.
However, it’s not unusual for it to be something of a revolving door in the early stages of a startup. Don’t hire just anyone just so that you can fill positions but don’t hold out for a world-class coder to come in either. If your coders blow you away, do whatever you can to hold on to them.
If your coders don’t impress you, keep looking and know that you can – and should – replace anyone who isn’t carrying their weight.
The kind of coders that you hire – and what you hire them for – should also be dependent on what kind of company you are. If your product is technology hardware or software, you should have the expertise and the budget to hire great coders.
Otherwise, you’re just asking for headaches, blown deadlines, and subpar prototypes. If technology is tangential to the service that you provide, you can do with a minimally responsive webpage – at least, for the time being.