Errol Hassall

View Original

Why asking questions is the key to learning to program

I failed the first programming subject I did at university. I’d never known failure, in high school I was lucky to be good at maths and science. The only subject I struggled with was English, but I could do enough to pass. Then when it came to university I was too proud to admit how much I didn’t know. I failed miserably, I was asked to attend this special class for people who didn’t know how to program, as the class was about algorithms and didn’t teach the fundamentals. I attended one class, and the tutor would pick people out at random to answer questions in front of the group. This terrified me and so I never went back to the class again. No wonder I failed, but I didn’t give up. I attended Swinburne university instead, in the following year, they did a fantastic job at teaching the fundamentals. Coupled with my love of learning I ended up with a highly successful career by all accounts. 


Learning to learn isn’t just about accumulating knowledge. I accumulated the knowledge in my first subject, it wasn’t enough but I learnt quite a bit. However, because I loved programming, despite being awful at it, I eventually picked up enough to pass subjects. I’m not saying I did well in university, I managed credits and passes, but I didn’t care. I did enough to pass but kept my energy for learning other things. I distinctly remember spending a few weeks between term breaks to solve project Euler problems. These are mathematical problems you solve using programming. I sucked, it took me hours to get the first one and then days for the second. Yet after a few weeks, I’d solved 8 or so. The feeling of struggling, testing, and learning a bit more, then solving the problem was fascinating. To take a concept you have some interest in, in my case mathematics and to learn to solve it with a computer was quite cool. I haven’t attempted even question 10 of project Euler and for what it’s worth there are hundreds of questions that get progressively harder. What I do now, is research and discover what I’m interested in. I don’t force myself to learn something I don’t care much about, instead, I focus on what plagues my mind at the time.


I take these thoughts that rattle around my mind and find answers to the questions I propose. “How does one write a build pipeline on GitHub actions?”.  “How might I be more productive in the workplace?”. “What percentage of different types of testing should I be aiming for in a frontend codebase?”. These questions appear out of thin air or might be distinctly related to something I’ve been working on. These questions, these constant streams of questions my mind has. These questions that keep me awake until well past my bedtime are what push me to become better. I simply can’t rest until I answer a question and it has resulted in the accumulation of vast amounts of knowledge. Some of it is meaningless but most of it is not. It might not appear useful at the time or even months later but it will.


The continuous question-asking is and always will be my greatest asset. It’s what has gotten me as far as I have today. I started my career unable to code, unable to pass a subject on the matter, and unable to do the basics. However, I asked question after question and I enjoyed the process. I strive to improve each day, to not rest on good, but to push for great. To strive for better is half the way there. The workplace is full of people clocking in and clocking out. There is nothing wrong with that, not in the slightest. If you want to get as far as you can no matter your innate skill or your lack of natural talent. No one is born to program, you must learn it and you will start from a place of nothing. You must learn, you must ask questions and you must be curious. Curiosity might have killed the cat, but it will create a truly special career if you let it.