App Academy Application Process Part I
The application process for App Academy was incredibly long and arduous, and here’s why: I had no previous coding experience. Zero. Zilch. None.
In my past readings and research with App Academy’s application process, each applicant seemed to be unique in terms of the number of steps, but the general order was usually the same: Coding challenge(s) followed by technical interview(s). For applicants with coding experience, there seemed to be only one coding challenge, followed by two technical interview, one conducted with a hacker on site, and the last with Kush Patel, one of the founders of App Academy. I believe this last step has changed in recent months though, because so far, everyone I’ve asked didn’t have an interview with Kush as their last interview, and I’m sure it has to do with App Academy’s growth and Kush’s now extremely busy schedule.
So given that I had no coding experience, these are the steps I took for my application process: coding challenge I, coding challenge II, Test First Ruby (App Academy’s Link), first technical interview, Project Euler, second technical interview and final non-technical interview. Given that each of these steps had one to two weeks’ worth of prep in between, the entire application process took me about 3 months from start to finish. This doesn’t include the month prior that I had spent teaching myself Ruby using Codecademy. I came into the application process with unrealistic expectations of finishing after a month or so, but given that I wanted to maximize my chances of acceptance, I not only took my time with each step, I made sure I understood the material to the best I could through resources like online blogs and youtube videos. I also utilized Ruby tutors through a/A’s website a couple times and had an a/A graduate tutor me at one point as well.
If you have any reservations about initiating your application process, don’t. Get started right away. They let you move through the application process at your own pace so there’s no reason not to start. There is a reason TO start though, and that is that they’ve started slowly upping their percent of your tuition commitment, so if you begin your application process earlier, I believe (don’t quote me on this one) but you should be grandfathered into which ever rate that you started your application process.
Coding Challenge I
After you initiate your application process, they send you an e-mail with the material to properly prepare you for the first coding challenge, as well as sample problems resembling the problems you’ll see in the first coding challenge. You can find the page with the preparatory material for the first coding challenge here. I did a simple google and you can pretty much find the prep materials for coding challenges I and II.
As App Academy states, the initial coding challenge is meant to be accessible to everyone, especially since many of their applicants have no coding challenge. The prep material for the first coding challenge includes everything you would need to pass the coding challenge, from how to set up your coding environment, to summarized readings on the topics you’ll need to know for the challenge including additional resources that come highly recommended. A lot of this material you should really only spend a day on, and the rest of your time preparing for the coding challenge should be spent on the practice problems that they include for you.
With no previous coding experience, the biggest issue I had with these practice problems was how to approach them. When I first started out, I relied on the solutions A LOT, so don’t be afraid to look at the solutions if you need to, but by the time you’re comfortable with the material, you should be able to solve the problem without the solutions. After awhile, you’ll start to develop your own unique approach to problems, which is one of the greatest things about coding I feel, is that there’s so many approaches to the same problem, and just when you think you have the best solution possible, you find someone or you find a solution that complete dominates yours, then you learn from it! It’s a great way to constantly improve your coding skill. To note, great resources that utilize this awesome aspect of coding include sites like Coderbyte and CodeWars.
To get back on track, the first time around that I worked on the problems, I did a lot of annotating in the solutions (using the comment feature of Ruby), and made sure I understood what each line did. After that, I would go back to the problems and try to re-implement the solution from what I recall of the overall strategical approach and methods used. Once I could do that for every single problem in the problem set, I cleared the problems, and I did it again as best I could without looking at the solutions. And when I got to the point where I was blazing through each problem in 15 minutes or less, I knew I was getting more and more comfortable with the material, not because I understood the concepts intimately, but more due to rote memorization. Once you get to this point, you should be looking for new problems. App Academy also includes “Practice Coding Exercises” that were meant to represent the typical difficulty you’d see in the actual coding challenge. I added these to my practice as well. The thing about this set of problems is that there were no answers included, so when I got to the point where I could solve the problems after 15 minutes or less, I felt I was ready for the first coding challenge.
The first coding challenge was pretty much on the same level as the practice coding exercises, so I was able to complete the problems within the time limit. After I submitted my entry, I waited with baited breath until I found out whether or not I passed.
Coding Challenge II
So… I passed! I took the coding challenge pretty late at night, but was pleasantly surprised to find that I received a response within the next business day. They pretty much responded with “Great, you’re on to the next step, here’s the material.”
The next coding challenge was definitely harder. Before even tackling the problems, I made sure to do the readings to get myself as much up to speed as I could, and once I finished the readings, I utilized the same strategy as I did with working through coding challenge I. A quick disclaimer though, while I did do the readings, I mostly skimmed it. I found that I was wasting a lot of the time reading in a way that wasn’t effective to my learning. After two days or so of reading, I decided just to dive right into the problems, since I learn best by actually DOING.
Once again, I relied heavily on answers initially to help me formulate approaches. For each answer, it wasn’t as important to know which methods they used in detail, but as I said, it was important for me to understand the approach as well as the overall concept of how the solutions worked. After i figured this out, it helped to develop my creativity and critical thinking skills by using any methods that I already knew to solve the problem.
After I solved the problem, I would then reference the solution again to compare. And anywhere that I saw obvious improvements to be made, whether it was coding format, or methods used, I would implement it. In the methods used sense, if I didn’t understand or didn’t know the method, I would dive deeper and understand it. I kept a notebook for awhile of these kinds of methods that I didn’t know initially, but after some time, I felt it wasn’t as helpful as just googling the method and reading more on it through ruby docs or stack overflow (If you don’t use stackoverflow, you’re missing out).
Once I got to the point where I was able to crank through the problem sets within a reasonable amount of time (less than half an hour per problem, preferably 15 minutes), I gave the practice coding challenges a go, and once I was comfortable with those, I tackled the second coding challenge.
Again, the practice coding challenges represented the difficulty of the second coding challenge pretty well. If I recall correctly, I was able to finish each problem within the coding challenge within 15 minutes or less. I remember that the last problem gave me some difficulty, but I had expected it due to noticing the same thing in the first coding challenge. That’s pretty much it for the second coding challenge! Once I finished the challenge, I submitted it and waited for a response.
Test First Ruby by Alex Chaffee
It was at this point that I experience my first hiccup and slight scare in the application process. The e-mail response from the a/A application team basically stated that my coding skills wasn’t up to par (no surprise there given my background) and in order to continue through the application process, I would have to complete every problem in the Test First Ruby problem set except the XML document problem.
Test First Ruby was definitely a refreshing slap to the face, as it made clear what level of knowledge in Ruby I was expected to have by the time I was finished. The set of problems (which I highly recommend doing just because it’s a great set of exercises) introduced new concepts such as libraries, and built on others such as Objects (which is incredibly important ad Ruby is a very object-oriented programming language) and blocks.
I have to say, this period of the application process took me the longest amount of time to finish. From the amount of readings, to the difficulty of the problems, it took me almost a full month to finish (24 days to be exact). And I didn’t submit the problem set until I was confident in it. And to be sure I understood the concepts, and my code looked up to par with what a/A expected, I enlisted the help of tutors.
Ruby Tutoring
I really wanted to excel at coding. I had made the decision to be the best I can be in coding, and in order to do that, I needed a strong foundation. Thus, I looked for tutors and mentors. My first Ruby tutor was actually an a/A graduate the was referred to me by my old roommate. And the final two tutors were a/A tutors. In all cases, I sought to better understand the concept of Object-Oriented Programming (OOP), which was emphasized in the Test First Ruby exercises. I also wanted help with refactoring my code as well as prepping for the interview, and both tutors helped me a ton in both of these areas.
After I got help with refactoring my code as well as clarifying some of the questions I had with the Test First Ruby problems, I submitted my problem set to the a/A admins and waited to hear back.
Read Part II of my App Academy application process here!