Introduction

When I started highschool, I had never written any code or done any programming. But I took an introductory programming class and nearly failed. At the end of the school year, the teacher gave us our final scorecards along with a sticker if she recommended that we take the next advanced programming class. I did not get a sticker. But I took that next advanced programming class anyway. And slowly, with sufficient practice, I got better.

When I started college, I had never done any computational research. But I joined a computational lab. Through listening in on lab meetings, tinkering with research projects of my own, and attending scientific conferences, I learned what it means to do and how to do computational research. And slowly, with sufficient practice, I got better.

When I started by PhD, I had never worked on a server. I struggled just to open, edit, save, and close files. But I lived for a week without a mouse and struggled immensely to navigate the server by command line. And slowly, with sufficient practice, I got better.

No one is born skilled. And mastry of any skill takes practice. One theory, the 10000 Hour Rule, claims that it takes approximately 10000 hours of deliberate practice to master a skill. So let’s take this 10000 Hour Rule as our premise and quantitatively assess its implications when it comes to being given a head start in life or, alternatively, being forced to play catch up. As a concrete example, I will tell the story of two fictional students, Jeffrey and Kamilla, while keeping track of the hours of deliberate practice each of them puts into mastering the skill of computer programming.

Part I - Jeffrey’s story

Jeffrey is born to an upper-middle class family. Jeffrey’s family has a desktop at home so when Jeffrey was about 6 years old, he started playing games on the computer and, as a consequence, learning to type. When Jeffrey was 10 years old, his parents enrolled him in every summer in month-long classes where he learned introductory programming. Jeffrey went to a private high school where he took programming as his language elective, an option not offered at public schools. Thanks to his family’s connections, Jeffrey was even able to get a summer internship at a tech start-up in this senior year of high-school. Now, Jeffrey is 18 and about to go to college to pursue a degree in computer science.

All in all, let’s say that Jeffrey’s access to the computer gave him 2 hours per weekend of deliberate practice into keyboarding and basic computer knowledge from age 6 to 9 ((9-6 years) * 2 hours per weekend * 4 weekends per month * 12 months per year = 288 hours). His summer classes were 5 hours of deliberate practice every day for a month, every summer from age 10 to 13 ((13-10 years) * 5 hours per day * 30 days per year = 450 hours). His high school programming class gave him another 2 hours (1 hour of classwork and 1 hour of homework) of deliberate practice every week day from age 14 to 17 ((17-14 years) * 2 hours per day * 5 days per week * 4 weeks per month * 10 months per year = 1200 hours). And his summer internship gave him 5 hours per day for 2 months of deliberate practice (5 hours per day * 30 days per month * 2 months = 300 hours). In total, prior to starting his undergraduate degree in computer science, Jeffrey has already amounted approximately 2500 hours of deliberate practice, or 25% of his 10000 hour goal.

Throughout his 4 years in college, Jeffrey takes the typical 3 advanced classes per semester relevant to his computer science degree. He actually has a very relaxed course-load because he AP-ed out of introductory biology, chemistry, physics, and calculus. For each computer science class, per week, Jeffrey spends the required 3 hours in lectures and minimum 6 hours doing homework and projects (4 years * (3 classes * (3+6 hours per class per week)) * 4 weeks per month * 10 months of school per year = 4320 hours). During the semester, he also spends 8 hours per week doing computer science research (4 years * 8 hours per week * 4 weeks per month * 10 months of school per year = 1280 hours). During summers when he no longer has classes, he interns part time 6 hours per day for 2 months doing computer science research (4 years * 6 hours per day * 5 days per week * 4 weeks per month * 2 months per year = 960 hours). When Jeffrey graduates, he is at the 90% mark of his 10000 hour goal. He has essentially mastered computer programming as a skill.

Part II - Kamilla’s story

Kamilla’s family is not as well off. She does not have a computer at home. When Kamilla is 6, her parents start taking her to the public library once a month where she is able to access a computer. This is the extent of Kamilla’s interaction with computers until she is in middle school. Kamilla goes to public school where she uses a computer once in awhile for English class to type out essays. There is no option for taking programming classes though. When Kamilla is in high school, she works a fast-food job on weekends in order to help her family make ends meet so she is not able to do summer internships and does not have the means to take summer classes. Now, Kamilla is 18 and wants to go to college to pursue a degree in computer science.

At best, Kamilla’s infrequent access to computers gave her maybe an hour per month of deliberate practice into keyboarding and basic computer knowledge from age 6 to 11 ((11-6 years) * 12 hours per year = 60 hours) and another hour per month of deliberate practice, again into keyboarding and basic computer knowledge, in school from age 12 to 18 ((18-12 years) * 12 hours per year = 72 hours). In total, prior to starting her undergraduate degree in computer science, Kamilla has only amounted approximately 132 hours of deliberate practice, or 1% of her 10000 hour goal.

Throughout her 4 years in college, Kamilla pushes herself to take 4 classes per semester relevant to her computer science degree. Her high school did not offer AP courses, so in addition to her computer science classes, she also needs to take introductory biology, chemistry, physics, and calculus so her course-load is quite heavy. Still, for each computer science class, per week, Kamilla spends the required 3 hours in lectures and goes above and beyond to put in more than 10 hours doing homework and projects (4 years * (4 classes * (3+10 hours per class per week)) * 4 weeks per month * 10 months of school per year = 8320 hours). During summers when she no longer has classes, Kamilla has to work odd jobs in order to fund her education but she manages to find 16 hours on the weekend to tinker with various computer science projects (4 years * 16 hours per weekend * 4 weekends per month * 2 months per year = 512 hours). When Kamilla graduates, she is also close to the 90% mark of her 10000 hour goal. Through substantially harder work, she has also essentially mastered computer science as a skill.

Part III - What this means

These numbers provided in these stories are not at all unrealistic and generally inspired by my own observations and experiences throughout highschool, college, and grad school and with my own students. Some students come in with more experience than others. Some of my colleagues had been programming TI-83 calculators since they were in elementary school. They were able to cruise through classes with little hard work because they have already essentially mastered the material. In comparison, others, including myself, came in with less experience and had a lot of catching up to do. But through a lot of hard work, many of them managed to end up in approximately the same place.

But what I find problematic is when our lack of experience is used as an explanation of why we are inherently less skilled. I saw how many of my friends who came in with less experience would get discouraged as others who came in with more experience appeared to just “get” everything. And worse, I saw those who came in with more experience, perhaps unintentionally, suggest that their experience (and priviledge) was a reflection of their inherent superior intellect.

What would’ve happened if Jeffrey and Kamilla ended up in the same computer science class? What would’ve happened if Jeffrey spent every class exclaiming how easy everything was while Kamilla struggled to grasp the basic concepts? Alternatively, what would’ve happened if Jeffrey tutored Kamilla?

What this means for mentors, teachers, and advisors is to remind students and for students to remind ourselves that not everyone starts at the same place with the same backgrounds and experiences. And that’s ok (for now). In the future, I do hope that the playing field will become more leveled as programming classes becomes taught in public schools at younger grades and computers become so affordable that all kids will have easy access. But what this means for students, perhaps unfortunately, is that if you are coming in with less experience, you will have to work harder and put in more hours in order to catch up. What this also means, particularly to prospective mentors is that if a student comes to you with less experience, it doesn’t mean they’re less capable or less competent. They just need more experience. They need more hours of deliberate practice.

Part IV - What happens next

Jeffrey graduates and finds a web development job where he optimizes ad-placements. He uses and refines his skills in computer programming but does not really learn any new skills. Kamilla goes to grad school where she continues to advance her computational expertise and eventually starts a research lab to develop new algorithms in machine learning and artificial intelligence. She is not only learning new things, but she is creating new computational algorithms for others to learn about.

Ok, you can definitely see my academic bias showing through here. But my point is that just because you get a head start, doesn’t mean you will always be ahead. Those who once played catch up, with sufficient hard work and dedication, will someday eek out into the lead.

So let’s keep on keeping on.