Hi there! The next step in your application process is the online coding challenge. Before you start it, look over the prepwork we've prepared for you. Especially if you're new to coding, this prepwork is meant to introduce you to the programming concepts you'll need to succeed on the challenge.


Read all of this document. But here's the executive summary:

  1. Read the Introduction to Programming.
  2. Do the practice problems. Review the solutions.
  3. When you're well prepared (and not before), start the challenge! We don't give any preference to applicants based on how soon they start the challenge, so take your time to prepare properly!

What is the coding challenge?

We will ask you to solve a short coding challenge composed of four or five coding problems that measure basic programming knowledge. The challenge is timed: you will have up to 45 minutes to complete the challenge.

How difficult is the challenge?

The coding challenge is meant to be accessible to everyone. Many of our applicants have never programmed before. Everyone should review these prepwork materials, which are intended to teach you the fundamental concepts of programming so that you can succeed on the challenge.

How do I setup Ruby?

Please see the setup instructions document.

How do I prepare for the challenge?

You will want to prepare for the coding challenge so that you do your best.

First, you should review our Introduction to Programming. This will cover the fundamental concepts of programming you'll need to know. We recommend that you at least skim them even if you already know how to program:

Second, we provide practice problems. Do these after you have read the three parts of Introduction to Programming:

Doing the practice problems will build your familiarity with Ruby, and give you a good idea what the level of difficulty is on the coding challenge. It is not required, but we strongly suggest that you complete all the practice problems before taking the coding challenge. We want you to be well prepared.

Third, try out the practice coding exercise! This exercise is designed to be similar to the actual coding challenge:

Fourth, optionally sign up for tutoring sessions! App Academy runs a separate code tutoring program and some students have found it helpful to take sessions with us. Our tutors can help you if you get stuck with the prep work. They can also give you mock interviews. We want to stress that tutoring is not required to prepare for the coding challenge.

If you do a mock interview, you'll solve a coding question similar to our interview problems in an environment like your actual interview. Tutors will give you feedback on where you get stuck and what you need to work on.

We estimate that App Academy Tutoring increases an applicant’s chances of acceptance from around 3% to 30% due to their increased coding ability.

Receiving App Academy Tutoring in no way guarantees acceptance into the course; it is a tool to improve your understanding of programming.

What programming language do I write in?

We have designed the challenge to be done in Ruby, which is the language of Rails. The readings and practice problems we've provided are in Ruby.

You may also answer the challenge in Python, Java or JavaScript. We will in no way penalize you for using any of these other languages.

Some languages are not well suited for the coding challenge. If you know another language and would strongly prefer to answer in that, please contact us: admissions@appacademy.io.

How soon should I take the challenge?

Take all the time you need to prepare for the challenge. We want you to do your best. We do not give any preference to applicants based on how soon they take the challenge. Prematurely beginning the challenge before completing the prepwork will hurt your application. Taking your time to prepare thoroughly will help you.

The challenge will take up to 45 minutes. Please have time set aside so that you can complete the challenge unhurried by other commitments.

Can I use Google for answers during the challenge?

Please do not search Google for answers to the problems; it is very easy for us to tell when solutions have been taken from Google. Please do not post the problems to the internet.