By Michael Choi, founder of Coding Dojo
I was a partner in the 33rd fastest-growing company in America and the third fastest growing tech company in 2011. Although the company was growing rapidly, I couldn’t find qualified and affordable developers to keep up with its growth. There was a huge gap between what computer science majors were taught in the classroom and their abilities upon graduation. Can anyone learn to program?
In one instance, I hired a “developer” who had just graduated with a masters in computer science. I paid them $120,000 to train them. I struggled to find affordable and effective developers. That’s when I had an epiphany. I decided to start an internal training program to quickly train junior developers and CS grads.
After seeing the success of hundreds of developers, I was compelled to ask myself: “With the correct training, is it even necessary to have prior programming experience?”
I decided to test my idea.
It took me two years for a system to be developed that took someone with very little programming experience and trained them to become a developer in a matter months.
Since 2012, I have been exploring different ways to improve the system and educate those who are passionate about learning code but don’t have a traditional CS education.
How to learn coding: What you need to know, and the lessons I have learned
1. It is impossible to predict whether someone will end up being a great programmer from the beginning.
This is especially true for someone with less than 100 hours of experience in coding and algorithms. This is because many coding schools test applicants for algorithms and use that to determine whether or not they are accepted into the program.
Coding Dojo asks students a few algorithm questions as part of the application process. However, we also take the student’s performance very seriously.
Let me explain.
My career has included training LAMP, MEAN and Python/Django, iOS, Ruby on Rails, to entrepreneurs, successful tech executives, and developers with 10-15 years experience. I also trained CS grads. There were many people who were completely new in programming.
You would expect that developers with 10-15 years experience or CS degrees would do better than those who have never programmed. This is true for the first 6-7 weeks in our bootcamp. The following general pattern is observed.
However, it is not uncommon for students who struggle to learn programming concepts in the beginning of their studies to suddenly grasp concepts and become really good at it. This is a remarkable feat, especially for me when I started teaching.
Students who were not able to write basic algorithms and were in the bottom 10-15% of my class at the beginning, suddenly excelled.
Although I admit it, I was apprehensive when I first began working with these students. I was unsure if I should speak to them to see if they are interested in continuing their education. The risk of failure seemed significant. I am glad that I didn’t ask. Many of the “lower” performers turned out to be some of my top students and have gone on become very successful developers.
After many years of teaching, I have had the opportunity to see how I can help students find their “aha” moments.
The majority of students who have never coded before are doing extremely well in our three-month program. Some even perform as well as experienced developers who came to dojo to learn how to retool their web stack.
Below is a general graph that illustrates some of these concepts.
I am not saying that every coder who is new to programming does better than those who have been around the block for a while.
I am referring to the fact that we sometimes have “outliers”, who often surpass experienced students even though they were initially in 25 percent of the class.
Learn how to code with Coding Dojo Stats
My Coding Dojo class had 20 percent CS grads, experienced developers, and 80 percent students who had little or no programming experience.
As I expected, the bootcamp saw people with dev experience perform well during the first month.