My Story as a Teenage Programmer
Posted: 24 Sep 2014
My name is Elliot Levin and this is my story of becoming a teenage programmer.
Looking back through memories of my life so far, if there is one distinction to be made, it is that I enjoyed making things. Even when I was a young child, I took to drawing as an outlet of creativity. Growing up, becoming increasingly capable, I was drawn to other avenues, most notably in my mind is when I learnt how to make games using powerpoint. Even just discovering how to utilise its most basic tools like animations and hyperlinks, had opened an entire realm of possibilities. So naturally when I was first introduced to programming, I became obsessed.
The journey to becoming skilled in the seemingly magical realm of programming was an interesting task for myself at the age of 12 and onwards. With little guidance, I had relied on myself and the internet to learn the necessary skills. Throughout the endeavor, there have been distinguishable phases of this journey so far.
The first and most challenging being learning an entirely foreign way of thinking. It was no longer possible to rely on my parents, teachers and those around me; it had ultimately come down to sheer perseverance and practice. With every project I had started I ran into small logical problems which I initially deemed unsolvable but they were not issues which I could simply search up and solve. In my mind they were too specific and I had not the ability to even ask the right questions. Though with persistent thought, I had often been subject to the epiphany, the 'Aha!' moment where everything just falls into place. Over time these stumping problems become fewer and further between until a point in time, which I cannot distinguish, where my problems no longer stemmed from flawed thinking but from lack of knowledge. And with these problems I was able to utilise tools like Google, Stack Overflow and the world of programmers that had already answered my question long ago.
From this point on I had been able to write programs to fulfil most of my ideas. But sooner rather than later, I came upon another set of questions. These questions stemmed from the desire not only to code, but to code well. Up until this point I had been writing programs that only worked with no thought to future use or maintainability as they were built simply to fulfil a goal. With the desire to build more elaborate applications, came the question, "How can I write maintainable code?". Answering this was a different kind of challenge that I had not previously been faced with. Suddenly logic became decreasingly relevant; there was no longer a correct answer, but instead a range of differing opinions. So how to decipher this mess? For myself there was only one way. Experience. I often attempted to apply various techniques or patterns to my work, for a while doing so religiously where it often created more problems than it solved. Over time, my conclusion was that having a clear specification was perhaps the most important part to building a maintainable application, allowing one to accurately determine the trade-offs and benefits to the various design decisions.
Until this point, my work was often personal. Projects that were not often shared with many others. It was at this point when I wanted to start making things that could be shared with others that could possibly find the work useful. So I began looking into open source software. I became familiar with websites such as GitHub, which had allowed me to openly publish my projects for the community as well as contributing to other projects.
It was about this time that I had began my first paid work as a part time web developer. This was a completely new experience as I could observe and interact with other individuals in the industry. This was an invaluable lesson as I learnt that in business things are often far from ideal. People have to make compromises to fulfil their jobs in a timely manner. Such practices which I considered integral to maintainability were either non existent or even unheard of to other full time programmers. But with that said, there is the positive aspect where people are willing to improve, invest in learning and strive to be better. And for myself, I was learning to adapt, such as with legacy code where best practices are often not applicable.
The journey to where I am now has not come without some negatives. The time consuming nature of my work has often had an impact on other aspects of my life. In the later years of high school, I have been finding it increasingly troublesome to balance my personal work with my schooling, sport and other activities. At this age, I feel as though I have had the most projects and ideas, but I am finding the least amount of time to dedicate myself towards them. It is disappointing how this part of life, perhaps the most educational, has been completely segregated from my schooling and remains completely irrelevant to all my subjects. I did not choose IT as a subject because I was not interested being told how use HTML. It has also been troubling socially, being unable to relate such a large part of my life with any of my friends at school is difficult.
Nevertheless, so far I have few regrets in the position that I am as of today. This gift has allowed me to perceive my world from a perspective which I wish more had the opportunity to share. I also feel privileged to be able to be working in a skilled position at my age. And finally, I wish that a subject which just introduces the basics of programming could be introduced into the education system. I cannot but believe that there are many others out there who would just need a taste to be hooked as I was and as I continue to be.
Thanks for reading.