Hey Friend,
I’ve been showing you you a lot of the how, but nothing about why you should care.
How-tos are pointless without a why.
This week I'm going to share a bit about my journey in the hopes that you find something useful.
Early Programming
My first encounter with “programming” was selecting “view source”. I was looking at people’s GeoCities websites and trying to figure out how it all worked.
I’d save .html files to my machine, then change the code and see what happened.
I even came up with a genius idea of renaming all the tags to custom ones that “made more sense”.
My first “real” programming was making Final Fantasy fan sites with PHP. PHP allowed me to keep the header and footer consistent by using PHP Includes.
I started with JavaScript, Ruby and Perl at my first job (front-end web developer).
My initial thoughts were amazement, like I was learning some hidden knowledge.
The Journey
I went deep into (OOP) Object Oriented Programming. I used all the things like Dependency Injection, Encapsulation, Polymorphism by Inheritance. I even implemented Classes with Inheritance in JavaScript before ES6.
I was a big JavaScript fan.
Everything I made was a rats nest.
I learnt about Object Pools because the Garbage Collector was too slow. This was my first hint that something was wrong.
I found myself wondering… “Why am I fighting with the language feature that’s meant to help me?”
Deciding to learn C in 2020 was a big change. That’s when I actually started learning how to program.
Passion
There's nothing quite like this feeling... I'd bash my head against the wall for hours or days. And then when doing something unrelated... Eureka!
Sometimes it happens in sleep, sometimes on a walk, sometimes in the shower.
Anywhere it happens, I rush back to my home or pull out my laptop and start implementing.
Many people think that programming is not creative. I am not sure where they get this idea - but it’s completely false.
The truth is that much of the time I’m engaged in what you’d call “exploratory” programming.
I need to write some stuff to see whether it all fits together and solves what needs solving.
If not, I’ll scrap it or change it and start in another direction.
Being able to program has allowed me to do things that other people need to use a service for.
I can do specific things that are difficult otherwise.
For example, I once scraped the Steam top 200 for 12 months to see if I could identify any trends.
I never ended up using the data, but can you imagine doing that without programming? It would take hours each day as the data captured included things like discounts, tags, all sorts of stuff.
Nowadays we have AI that can create scripts. It's pretty useful, and getting better, but still wrong a lot of the time.
Plus, in the Steam example, I needed to figure out which CSS targets are the right ones for the data.
Lessons Learned Along the Way
People will go to great lengths to justify their beliefs.
In programming culture, this translates to dogmatic views about "unsafe" programming language features.
Some programmers demand that everyone adhere to their "safe" language.
Some demand that everyone must use their madness inducing paradigm.
I'm speaking of Rust and OOP/SOLID.
A little side-note:
I've been studying marketing recently. It seems that people don't make rational choices at all. At least not to do with buying products. It would not surprise me if all choices are irrational and justified to the self afterwards.
Back to programming.
Insurmountable seeming problems are best tackled by first breaking them down. Once problems are small enough to fit in one's head, progress by application of effort will be swift.
I try to apply this lesson learnt from programming to everything in my life.
The Bigger Picture
Programming will be important so long as we use digital technology.
I'm not convinced that advancements in LLMs will make programming obsolete.
Compilers didn't. No-code builders didn't. Visual scripting didn't.
For programming to become obsolete, we’d have to have a superior replacement. What most people are focusing on is "low skill" programming jobs.
Jobs like front-end web development should be on the decline already. So far, people have managed to secure job security through obfuscation and complication.
The web job collapse will come - if it hasn't already started. Look at the layoffs in 2023/2024.
That does not mean programming as a skill will go away any time soon. It means it won’t be so easy to get those $100K 2-year-experience front-end web jobs.
Why It Matters
Programming is my favourite creative outlet.
There is nothing quite like it. Think of some idea, load up my editor, write code until it compiles, observe the result of creation.
Artisanal programming is more important than ever.
Why? The industry is bursting with people using ChatGPT to write their code. They do not understand how to fix the AI's nor their mistakes.
Customers don’t care about how hard we work or what languages we use. But, they do care about their experience.
If the customer has a worse experience because we use AI and don't know how to fix stuff, that's bad for business.
Microsoft recently bragged about reducing their Teams startup time to “only” 9 seconds. Can you believe that?
The largest corporation in the world thinks that is something to be proud of. The bar is on the floor.
If you are on the fence about programming because you think it may be too difficult, consider what I just wrote... The level of incompetence to make a chat application start in 9 seconds is astounding.
If you are already a programmer - what are your reasons for caring? Do you care?
Conclusion
In summary, I care about programming for these reasons:
It gives me a creative outlet (yes, it’s creative)
It allows me to create cool and/or useful things that other people can’t
It helped me to problem solve in other domains
It’s fun (recreational programming is a thing!)
Thank you for your time and engagement.
If you got this far, please share this with someone that will enjoy it.
Share your own reasons for enjoying (or hating) programming in the comment section.
Until next week,
Dylan
I didn't like programming at school because it was taught in such a way to develop a dislike for it.
After many years of trial and error, now I'm getting a taste of programming. It's the creative part that's more cherishable than the analytical part.
The very fact that I have created something fills my heart with joy.