My daughter reached a stage where she needs to start thinking about what she wants to do in her life. Her school has a program that focuses on helping students choose a suitable profession. She's a little bit ahead of the proposed activities as she's bent on learning how to code and become a software developer although that may still change. How many of us are working in the profession we thought was right for us when we were 13 years old?
As we were talking about what was required to become a programmer, she asked me one simple question: why do I like coding so much?
It may sound silly but at that very moment, I was not so sure what to answer except because it's cool and I love technology. Obviously, that answer is a bit too simple so, as I write, I'm trying to have a coherent thought process as to why I really love what I do (and oh, believe me, even if I find it hard to describe, I really do).
First, I have to figure out where this coding thing started. Why did I simply start doing it instead of getting into something else like cooking, design or being a car mechanic.
When I was a kid, I loved one thing above all: video games. These were the days when the Commodore 64 briefly dominated the market and many games were produced for it. Expensive games which my parents couldn't afford. But we had one Commodore 64.
So, I simply decided I could create my own games. From the perspective of an 8 years old kid, this plan seems perfect but in reality, I was lacking several skills, one of them being programming (doh!). I picked up a book on Commodore BASIC that came with the computer and started to read it. I'm not sure about how much I understood but I remember clearly inputing this:
10 "WHAT IS YOUR NAME?" 20 INPUT A$ 30 PRINT "HELLO ",A$,"!"
...and my computer said
HELLO, NICO!. That was magic. Pure magic. It also was the moment where, unconsciously, I knew I'd be a coder.
My work is what puts food on the table but let's assume for a moment that money is not an issue. What would I do with all my free time? Just what I am doing today: sit at a computer and code. Actually, that's what I already do during my free time (1, 2, 3).
That doesn't explain why I love it, though. It just shows that I really like what I do.
Those who create stuff are the people I respect the most. Designers, musicians, engineers. Simply because they make new things that didn't exist before they created them. I had a period in my youth when I wanted to be a 3D artist but I can't draw. I wanted to be a musician but I have no gift for it. All the engineering schools I looked at where requiring an insane amount of maths knowledge and I suck badly at maths.
Still, when I was (and still am) behind my screen coding I get this overwhelming feeling of doing some kind of magic. That's my creative outlet right there: I build things and get the instant gratification of seeing them do something right before my eyes. I'm a digital alchemist: I receive matter (data) and I transform it into something else (output). Or that's how I feel, at least.
Being quickly bored with a task is part of who I am. I need an environment that constantly changes. I don't like doing the same thing twice. Programming answers this need. Being a coder is accepting that our universe is in a constant state of change. What you know today won't be wrong tomorrow but it won't be enough.
I've never really respected people who answer the question Why you do it like this? with Because that's how we've always done it. Programming is in direct contradiction with these people. You can't do something because you've always done it a certain way.
Feeling like a complete beginner and being amazed by some new technology, design pattern, framework or language is something I get multiple times a year! Sometimes, multiple times a month. I love the fact that within my domain of choice, I can be a constant learner.
Here is the answer to why I love coding: because I am easily amazed, because I can't imagine stopping learning, because I can build things on my own rather than being a passive user, because it makes me feel good. Whatever it is that you choose to do in your life, whether being a coder, a nurse or a carpenter, I wish you to feel the same way as I do about your job.
qgit -cmpinstead of a long serie of Git commands.