A creative craft.
This is what coding is.
I studied in a technical high school where we studied programming and computers, then got into Computer Engineering but even from the get go it was clear that what they were teaching at the university was not programming but rather all sorts of engineering topics with some computer-related topics mixed in.
In a very dry manner, we were left to learn the actual programming during lab hours.
What was missing was the craft part.
People go home at night and continue working in their spare time.
This is what gave the start to the free software movement, for example, today given for granted with open source, GitHub, npm… An admirable phenomenon.
For many people programming is best done at night. Why so? I don’t know. I would say that it’s the case for me, too.
I think this is because we have no other thing to worry about. No trips to the grocery store or to the post office.
It’s easier to get in the zone, that wonderful place where all the code you need to write is perfectly organized in your head and you work like a 100x engineer because you are, at that specific point in time.
Some people are more morning types, and mornings work great for coding too.
We can force ourselves to write code at every time of the day, but when we do that at our best time, we can be so much more efficient.
Offices make it hard to focus, but we need to, because we don’t have to follow a script. We have to come up with creative ways to solve problems. I haven’t seen any other job where you walk into an office and people are wearing headphones to stay more focused. It’s very intense.
I sometimes think that the fact programming is often associated with getting paid for our programming abilities, and getting a job as a programmer, is kinda adding a gray shade over things.
If programming was considered like painting or knitting, that would have a whole another feeling. Something we all do after dinner to have fun.
This is why I love platforms like Glitch and Codepen that make code very cool. Especially to kids and newcomers in general.
This is why YouTube channels like the Coding Train are so wonderful. They make things fun.
For example I cringe when I hear that on jobs a programmer’s productivity is based on the number of lines of code they write. Really?
And pressure posed by deadlines is really adding anxiety when maybe there’s already lots of it.
I am not saying you should not get a job as a programmer, that would be stupid on my part. We have to pay the bills, right? A programming career is an awesome way to raise your income level in less developed places too, working remotely.
But if the only time you do program is for your job, you are not seeing programming as that wonderful craft it is, but rather as a means to an end. Which is fine, we have a finite amount of hours in a day and you can perfectly be an awesome professional in your day job. Plenty of people do that. I would say there’s a 50⁄50 division here.
In my career I hated having to track time while programming. It’s a really dumb practice that has an instant gray cubicle feeling. Sometimes I might have a bug that is very hard to solve but I can fix it in 10 seconds thanks to my experience. I might have less experience and spend 4 hours on it, do I need to be paid more for this?
Programming is also about caring about a thing. I might have a bug that’s rather easy but while I’m fixing that I start improving the code and eliminating some technical debt.
This needs to be in line with the business goal of providing more value to customers and as a side effect more money to the business.
To me programming is like playing LEGO bricks. Any kind of programming, really. I bought an Arduino kit some time ago and making that thing work is really nice, especially because it’s an actual physical device and not just things that run in a screen. I am planning to do more of that, not to do anything specific, but just to tinker around.
The entrepreneur’s feeling of “this does not make money” might prevent the inner child to play. Let’s not do that.
Let’s keep the inner child happy.