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.
More lab tutorials:
- The stack I use to run this blog
- 8 good reasons to become a software developer
- SEO for developers writing blogs
- Review of the book The 4-Hour Work Week
- Build a lifestyle business
- Build your own platform
- As an indie maker, what kind of product should you build?
- Create your own job security
- Developers, learn marketing
- The freedom of a product business
- Generating value
- Have a purpose for your business
- The idea is nothing
- The niche
- Remote working for software developers
- Product / market fit
- The best podcasts for frontend developers
- Why should I create an email list?
- Disconnect time from money
- The scarcity principle applied to software products
- The social proof principle
- How I added Dark Mode to my website
- My notes on the Deep Work book
- The pros of using a boring stack
- How to estimate programming time
- On going independent as a developer
- How to learn how to learn
- Why interview questions for programming jobs are so difficult?
- Do I need a degree to be a programmer?
- Everyone can learn programming
- How to be productive
- How to get the real number of pageviews of a static site
- Have you filled a developer bucket today?
- How I record my videos
- All the software projects I made in the past
- Tutorial purgatory from the perspective of a tutorial maker
- Every developer should have a blog. Here’s why, and how to stick with it
- Having a business mindset for developers
- How to write Unmaintainable Code
- What is Imposter Syndrome
- How to work from home without going crazy
- How I prototype a Web Page
- You should be the worst developer in your team
- How to start a blog using Hugo
- Write what you don't know
- How to block distractions using uBlock Origin
- Coding is an art
- I wrote 1 blog post every day for 2 years. Here's 5 things I learned about SEO
- Dealing with the fire
- On being a generalist
- The Developer’s Dilemma
- My plan for being hired as a Go developer. In 2017
- Productivity gains of using a Mac and an iOS device
- How to go from tutorials to your own project
- This is my little Digital Garden
- How to start freelancing as a developer
- Sharing the Journey Towards Building a Software Product Business
- Subfolder vs subdomain
- How I use text expanding to save time
- Software is a superpower
- I love books