According to a 1993 paper written by Anders Ericsson, a Professor at the University of Colorado, called The Role of Deliberate Practice in the Acquisition of Expert Performance, it takes an average of 10,000 hours of practise to become a master in any field. This concept of 10,000 hours highlighted the work of a group of psychologists in Berlin, who had studied the practice habits of violin students in childhood, adolescence and adulthood. All had begun playing at roughly five years of age with similar practice times. However, at age eight, practice times began to diverge. By age 20, the elite performers had averaged more than 10,000 hours of practice each, while the less able performers had only done 4,000 hours of practice.
As a software developer with some years of experience and having worked on various projects, I can honestly say that I have seen myself constantly improve over the years without even noticing that I have improved. It’s like the more I work on several projects, study and learn the more I improve. One of the main challenges facing newbie developers is the unrealistic expectations they place on themselves. The problem of elitism displayed on forums like StackOverflow doesn’t help matters. New developers often get frustrated when they can’t remember a programming concept they just learnt or find it hard to understand a concept initially. These new developers tend to sometimes think they aren’t really good enough for programming when infact they need to keep practising and trust the process.
Trusting the process is important when you first begin to program even after you have gained some years of experience in programming. You must be confident in your practise and training and realise that the more you practise the more subsconsciously your brain gets better at programming. The problem is because we don’t know we are improving we think we are not improving. But experience has taught me that practise, hardwork and love for the craft of programming will always make you a better programmer.
It is true that some people have a natural talent to understand programming faster than others but I can tell you authoritatively based on experience that talent is not enough. You must be willing to put in the grind to improve. Be prepared to reduce how much time you spend on Netflix and video games and make programming your obsession for a period. Build stuff even if no one is going to use it. People think obsession is unhealthy but there can be some healthy obsessions. You must start with an obsession for your craft which will enable you pay your dues. After which you can be at a level where you don’t need to put in too much effort in order to produce results.
When you start learning how to drive, you are very conscious of your feet leaving the clutch, using the gas pedal, changing gears and all that stuff. But after some years of driving you notice you just do these things without even thinking about them. That is you do them with minimal effort. This principle applies to any craft you wish to master including programming.
Therefore, I encourage you to keep pushing. Practise like you have never won and Work like you have never lost.
I leave you with this quote from Steve Jobs…
“Stay HUNGRY. Stay FOOLISH”.