Categories
Uncategorized

How to Love Coding

Advice for Coders starting out

I’ve been writing code for the past 36 years. That’s a lot of code. Started at 6 years old, writing BASIC on an Apple IIe that my dad brought home. Then graduated to PASCAL, Visual BASIC, MS-DOS Batch and then Borland C and Java, moved to C++, Objective-C some C# and JavaScript, Python obviously, recently TypeScript, all the while learning the secrets of Bash, ZSH and PowerShell and other more obscure languages like Go, Rust and even Elixir, LISP and Lua. I’m probably forgetting many languages and coding “situations” I went through like MSSQL/TSQL/PLSQL and HTML, CSS of their kind and several other task-specific code-ish things. This is just to explain and show to you, junior coder, that coding (for real) is a lifetime pursuit. Just like my journey, you will hear similar things from just about any other lifetime programmer that you know.

See, coding is in my blood. I may claim that I had no choice but to become a coder, seeing as my dad, a control systems engineer by training and programmer by trade, has brought coding home to me, my older sister and younger brother at a very early age. My dad was programming AS-400 IBM mainframes in RPG to build the backend software for banks, insurance and logistics companies. As young kids we learned about algorithms, data structures, databases and user interface – in an unstructured way, an exploratory way, and as apprentices. Back in the 1980s software had very scarce mediums for sharing, so it often was shared in books! Big bulky book full of code. And my dad set us up to copy lines from to book into the computer to build a game or a graphical software. I was amazed and hooked from the very beginning. But that was a very special circumstance. Code and coding have transformed so much I sometimes can’t even recognize it, but for me it will always remain: a thrill of creation and exploration, a dialogue, a way to communicate thoughts.

In this article I would like to dispense some advice on writing code. But not in way of design patterns or efficiency. I’d like to tell you about the personal side of writing code, and what it can do emotionally, about what it means to be a “Coder”. At the same time, it is a very pragmatic guide, just as much as it is personal. As usual, take all of this with plenty a grain of salt.

How to Love Crafting Code

The above introduction goes to show that for me coding is a passion. In fact, I would say coding is my love. I love coding. I do it every day, for years and years and more years, and I hope to be coding for many decades more. When I’m not coding, I think about coding. I would do it every day given the chance. I also love very much the mental struggle and difficult puzzles that coding poses. It might seem unfair. Many tell me that coding comes easy to me but let me say that no code ever came easy to me. I heard a quote from Henry Rollins recently that goes roughly like: “I’m not as talented or smart as others, so I just get up early and stay up late every day”. This is basically it. Coding is hard, always, even to experienced coders. But it’s precisely because it is hard it is appealing to so many people.

A friend recently asked me how long it would take to code something. I answered: “There’s no such thing as ‘Coding time’ per se, it’s just how long you sit in front of a keyboard banging your head against it until the thing is done.” This is the sad truth about coding, is that it’s simply hard and takes a long time to make a really nice thing. We will discuss AI coding shortly, but nothing would replace careful, measured steps, incremental advancement over a long period of time. Demos and one offs, simple one-file programs or scripts, new projects and boilerplates – all are not real examples of what a programmer would do on a daily basis. Coding a robust long-lasting module or package just takes time.

Coding is a craft. Just like woodworking or cooking. It relies heavily on past knowledge, drawing parallels from other projects, habits, rules of thumb with a dash of curiosity and trying something new. See, no code is truly similar to any other, it’s always a continuation of something. Remember the memes about programmers only needing 3 keys on their keyboard? Stack Overflow, Ctrl-C and Ctrl-V. This cannot be more wrong. Every empty file about to be filled with code is like a clear canvas, to which you take a big brush. First you work in broad strokes! Throwing big blotches of paint, just covering empty areas, making a scene, a background, for your finer work later on. After the canvas is full but really doesn’t look like anything, you take the smaller brushes, start filling in the little details, make smaller adjustments. Finally, you test your work. Take a few steps back, stare at it for a bit, raise an eyebrow. Find a bug here and there, just getting a feel of your creation, learning it, seeing it, connecting with it.

Coding is so much like painting, sketching, sculpting, or writing than you’d imagine. That’s why I believe that myself and others are so in love with coding. Not because we like code! In fact, if I’m being honest, I kind of dislike code. Code really is a way to describe your thoughts to the computer, it’s a medium that shouldn’t exist. But coding – oh boy, that is just wonderful. There is joy in coding. That’s why I fail to understand how come everyone is so eager to get rid of it. “No-code Platforms” or “AI will make all programmers obsolete”. That really is beside the point. People love coding because it’s a craft, an art, an expressive medium. This is the reason you will find folks in their 60s and even 70s still coding. It’s just fun!

How to Love Coding for Work

Ok coding is art and it’s a lot of fun, we get it. But doing it for 9-10 hours of the day for someone else? that’s recipe for “hobby burnout”. You will get sick of doing anything you love doing if you do it too much or for the wrong reasons. So, we must all find a way to still enjoy coding if it’s our job. Insofar as we like getting paid to support our lives and families.

Coding for work doesn’t have to be so bad though. As I stated above, I would be perfectly happy coding 10 hours a day. So, really the problem is in the motivation. If you’re working on a passion project, you’re probably highly motivated. If not for seeing it complete then probably for the skills you’re gaining, the community around it, or maybe it’s impact on others or even yourself. See – all the reasons are there! Treat your work coding time as a chance to enhance your skills, see the impact of your work on others, or find ways to communicate your work. Without you knowing, you’re already doing this. Every hour spent coding you’re getting better, more experienced. This however isn’t a recipe to avoid burnout. Burnout is likely inevitable.

There’s possibly nothing worse than being handed code that someone else wrote and being asked to “make it better” or add a dull feature or refactor it. This regularly happens at work, particularly for juniors. People would likely tell you how it’s actually a good thing: “Learn our codebase through your fingers” they will say. Frankly, I don’t buy that. As I said, I love coding, but I dislike code. In these situations, which you can’t always avoid, I suggest making the most of it. If you take the time to read and understand the code, take an equal amount of time to document it. Make diagrams etc. First, I think your supervisor would instantly have a whole new level of admiration for you (who doesn’t like documentation?), but second, this can factually be good for you. Any ancillary output beside code, for a programmer, is really a rare sight. Programmers like the coding part see, they usually don’t like the extras. If you’re an “extra” kind of coder – that increases your value and makes you a candidate for promotion.

To recap, I’m not suggesting coding for work is going to always (or even sometimes) be as fun and exhilarating as working on your own passion projects. But if you focus on your personal goals – it can just bearable enough to keep you satisfied for a long while. Look for the opportunity to get better and go farther.

How to Love AI Coding

AI coding is a game changer. Personally, I really enjoy it. Many times, I go “oh my this totally just read my mind” and have moments of awe. There are things AI coding or a copilot does absolutely amazingly well. There are also things it does terribly wrong. But for better or worse this is the future. I have no doubt. If you’re not using AI to program in 2024, I’m sorry friend you’re in the wrong field of work.

One thing to get out of the way right away is that using AI assistants for coding really doesn’t take much of anything out of the joy of coding. If anything, I love how the AI does the boring stuff for me, and I can stay in the flow longer. It’s still a paintbrush, but a bigger one that has tiny little paintbrushes on it, so you still make broad strokes, but they also fill in the tiny details at the same time.

The key I found for being successful with AI coding is to deliver your intent. If you’re writing a new function and want that filled in – start with a descriptive comment, if the AI still doesn’t make a good suggestion, start writing the signature of the function using meaningful names. For example,

// This function takes in two numbers and returns the largest
// common denominator.
int largest_common_denominator(

This really should be enough for any AI assistant to complete the rest. Most likely the AI would not even let you finish the comment before it gives a suggestion. Another thing is to get to the point as soon as possible with the least verbiage, for example:

// Calculate the largest common denominator from

At this point the AI will probably already give you a valid suggestion.

One more thing about AI coding. There’s a trending word out there that programmers would be out of a job because of AI coding getting too good. While that might be true someday, this must not deter you from learning how to enjoy coding today. Coding is more than making computers do things, it’s a mental exercise, a puzzle, a craft, an artistic medium of expression. Do it because you love it, or I suggest, in interest of time, you go do something else. There are plenty of professions that AI will not touch any time soon if that’s what you’re worried about. Folks that use AI to write all their software for them and simply copy-and-paste verbatim – are not getting any joy from it. For them, I’m actually very glad that AI can spare their time and misery in writing code. AI coding is much better for a person that enjoys coding, than it is for someone who doesn’t.


Some departing words. Coding is a lot of different things for different people. It’s an art, a craft, a job, a necessary evil, a struggle, a means of providing, a collaboration, a community, a joyful thing. Every coder will tell you another story. But at the basis of all you will find that insofar as coding is an intermediary between machines and humans, it’s always about humans. If machines knew how to program themselves to do exactly what we humans need without any interface – then coding won’t exist. Some people believe in that future. I don’t.

Love coding, and it will love you back.