Homework Assignments

What are homework assignments?

Homework assignments, sometimes also called “take-home tests” or “take-home interviews” typically include a problem definition and instructions for a candidate to complete them in their choice of programming language, with their choice of development and testing frameworks. Typically, a candidate uses their own computer in their own home, uses their editor of choice and has a reasonable deadline with which to complete this assignment.

Online coding challenges should not be confused with homework assignments.

What benefits do homework assignments have?

Candidates can complete them on their own time and with their own tools and environment at their disposal. Candidates can look up references for various things on the Internet.

These can transform a technical interview into a code review session which can be significantly less stressful. Additionally, this frees up onsite interview time for evaluating whether the candidate would be a good fit, culture-wise.

Why are homework assignments bad?

They can be very time-intensive, depending on the nature of the assignment and what the company has in mind. If a candidate is applying at several companies, they only have a finite amount of time to do homework assignments with.

Homework assignments sometimes get conflated with being asked to do work for free. Additionally, there is the problem of introducing participation bias for those who have out-of-work obligations such as caring for a family, etc.

Some companies do not allow candidates to post their solutions to homework problems online.

Some companies believe that candidates cheat, by having others do their assignments for them. While possible, this is easily verified during a simple phone interview.

Lastly, engineers who have a strong GitHub profile already have a demonstrable body of work they can (and should) be able to present for a competency evaluation instead of being asked to waste time completing a homework assignment. Even another company’s homework assignment can (and should) be used as an example of a candidate’s competency.

I’d like more information.

Check out these additional resources for more information.