How to Ace our Apprenticeship Take-Home
For the past couple years, we at Codecademy have been bringing in software engineer apprentices to begin their professional careers in development. A few times a year we have apprentices join the team for approximately 15 weeks, where we help them ramp up towards a full-fledged, level-one engineer with the support of an assigned mentor and buddy. Many of our apprentices then transition to full-time software engineers at the end of the program, and we’ve found it to be a great way to bring in more junior-level folks to the company.
Applications for our next round of apprentices are open until May 9 https://www.codecademy.com/about/jobs?gh_jid=4990578002
Our application process for apprentices is meant to be a way to find engineers who will be successful at Codecademy, but the goal is to ensure our candidates are able to do their best work. So we wanted to take some time to help prepare you to ace our apprenticeship take-home.
Taking a quick step back… Once you apply for our apprenticeship, we review your resume and cover letter, looking for candidates who have some coding experience with our technologies (but not necessarily our entire stack), have experience working with a team, and have demonstrated how they are aligned with our mission at Codecademy (improving education accessibility).
So now assuming you’ve made it past the resume review stage, you’ll get an email from our recruiter asking you to complete a take-home assignment. You’ll have the option of completing a backend-focused one or a front-end focused one. Pick whichever one you are strongest at (this doesn’t necessarily determine the work you’ll be doing during the apprenticeship).
And now that you’ve made your decision, we’ve gathered some advice from past apprentices to help you along the journey:
Brush up those skills
- If you’re planning on doing the frontend take-home, you’ll want to make sure you’re comfortable creating a small app in React. Here’s a helpful intro tutorial if you’re not familiar with it.
- If you’re planning on doing the backend take-home, you’ll want to freshen up on reading input from the console. ( This might be helpful for Ruby, and this might be helpful for Node.)
- If you’re not already familiar with writing basic unit tests for your code, try to brush up on that beforehand. (This might be helpful for Ruby, this might be helpful for JavaScript, this and this might be helpful for React)
Plan it out before starting to code
- First thing you’ll want to do after reading the instructions is take a look at our public rubric. This is what we use to grade your take-home, so it’s good to familiarize yourself with what we care about to make sure you prioritize the right things.
- From the start, try to architect your solution in a way that makes it easy to work with so that it can be changed easily. This comes in handy for the delighters you’ll need to complete, as well as for the on-site, where you’ll be asked to add onto your take-home again.
- The assignments can sound very complicated and intimidating, but once you start to think about it, it all comes down to a series of fairly simple steps. Don’t let the assignment scare you!
Get it working and then clean it up
- Get the solution to work first, and don’t worry about code quality! Then make sure you have plenty of time to refactor — think through code organization, variable and method names, code readability, etc. You’ll probably want to divide your time 50–50 between these two processes.
- After you clean your code up, make sure you set aside a few minutes to go through edge cases and make sure the desired features still work.
Manage your time well
- Don’t leave it to until the last minute! Start it as soon as possible. And make sure you read all of the instructions and test your work!
- We completely understand that it may be difficult for people to set aside a ton of time for these take-homes, but make sure you’re submitting a complete, working solution. Many successful candidates have taken longer than 5 hours to really make sure all of the requirements are fulfilled.
We really appreciate you taking the time to complete our take-home, and we wish we could bring you all on as apprentices, but until we have unlimited capacity for new engineers, hopefully this at least helps better prepare you, and you may even learn a thing or two in the process!
Applications for our next round of apprentices are open until May 9 https://www.codecademy.com/about/jobs?gh_jid=4990578002