And so You Don’t Like Coding Anymore
It’s 3.00 AM. I can’t sleep.
Today has been a very uncomfortable day. I woke up at noon (this may partly explain why I can’t sleep). A combination of quarantine habits and lack of self-discipline really fucked my schedule up.
I went to bed at 2.00 AM. I started overthinking as usual. I was thinking about my bills. I was thinking about my problems at work. I was thinking about quitting. I was thinking about whether to keep working on my startup project. But most of all, I came to a realization: I don’t like coding. Not anymore.
When the lockdown began in my country, 2 and a half months ago, I decided to develop a mobile app to ease the boredom at home with gamification techniques. It involved simple “missions” to complete at home, like workouts, self-reflection exercises, cooking challenges. It would have been a very simple app to develop. I wanted to complete it in one weekend.
I was really motivated. I really thought that I could help a lot of people. Not I would help them psychologically, but I would also indirectly ease the spreading of the pandemic. Using my app, people would have been less likely to illegally break the quarantine rules.
I began working. The first 2 or 3 hours were easy. I had a skeleton for my app. I called it LevelApp. Pretty horrible name.
Then it became difficult. Not because coding was complex per se, but because I was getting bored. I didn’t realize it easily. I thought it was mere procrastination. I thought it was the so-called Resistance, as in Steven Pressfield’s The War of Art. I didn’t know yet that I fucking hated it.
So the weekend project became a 1-week project, then a 2-weeks project, a 1-month project, and a 2-months project.
Don’t get me wrong. I was making progress. In fact, I was making progress until last Friday. But I was so damn slow.
Everything was an excuse not to code. I started reading more. A LOT more. I think I’ve read something like 15 books during this quarantine. And I have a full-time job.
Fast-forward to 30 minutes ago. I got up from bed because of my overthinking. I thought: shit, I can’t sleep, I need to get up and do something. But I just realized that I hate coding! You know what? I will just finish that damned app tonight, I will work all night, and then I won’t code anymore (except for support on the app and stuff). I will quit my job if necessary.
So I opened my Trello board. I started Sublime. I looked at my code. It’s been a week since the last time I touched it. What the fuck was I supposed to do? Where the fuck did I left?
The Resistance kicked in. I started procrastinating, even if I was full of energy as the night owl I am. Then I seriously started thinking about why I hate coding.
Coding didn’t bring me in the flow state. I won’t explain what the flow state is because I assume that you already know, since about 30% of all blog posts mention it. So if by chance this happens to be your first encounter with this concept, probably you haven’t read more than 2 blog posts before, in that case Google is your friend.
That said, I thought about something that did bring me in the flow state in the past.
Writing.
I’ve always loved writing, even if my writing sucks. And I’ve always (thought I) loved coding. But I’ve always prioritized the latter.
So I said, fuck it, fuck this shitty app, I will create a Medium account right now, and I will write my first blog post after more than 5 years. What do I write about? I can write about Artificial Intelligence, the future, politics, existentialism, personal growth, career, psychology, … coding, and a bunch of other things I could pretend to know a lot about. But then I thought, fuck it, I will write a post about why I hate coding and what advice I could give to a person who thinks they hate coding. And I will use the word fuck more than necessary.
I Want to Convince You That You Hate Coding As Well
Now, you may be thinking, nice story, but is there a point I am trying to make?
Yes, I now want to convince you that you hate coding as well, in a way that shifts your thinking framework about coding so that you can avoid unnecessary mistakes.
If you are reading this, it’s probably because you think you don’t like coding like you used to do, and somehow want to convince yourself otherwise.
You don’t really want to admit that you hate something that you have done for a while, something that probably defines you. You don’t want to admit that you may need to change your job in order to be happy. I’ve been there. I was there one hour ago. I was young and naive.
Let me tell you something.
Everybody fucking hates coding ❤️
You never liked coding. Come on, tell me that there was, at any point in your life, a coding session of at least 2 hours, in which there wasn’t a single split second in which you wished to die.
But… but… I like it
No you don’t. You don’t like coding. You like other experiences that come with coding. And you mistake the enjoyment of these experiences for the enjoyment of coding.
The Coder’s High
One of these experiences is the coder’s high (I coined this term, or probably not, Google it if you want, I’m too lazy to do it myself). Basically it’s that sensation that you achieve when you see something great that you made.
Think about it. The act of coding itself is just too stressful. 90% of coding time actually isn’t programming, it’s debugging. And if you tell me that you like debugging, I’m afraid of you and I gently ask you to stay away from me and my loved ones.
But once you fix the bug, once you see that “compiled with 0 errors” message, once you close the 139 Chrome tabs (137 Stack Overflow), once you delete the commented lines of code that every best practice requires you to avoid in the first place but fuck it, in that moment, you experience the first glimpse of that high.
And you crave it for more, instantly. You run the code again, already knowing that it will work, but you only do it because you want to experience that high one more time.
You run it again, and again, and again, without any reason, just because you like to see it work. You like to see your beautiful creature alive and experience that high it gives you. Sometimes, even when you are not in a coding session, you run a successful code just because you love your child so much. You feel that high over and over again, before realizing that you should get to the next task, finding yourself in another debugging loop and wanting to die again. The previous successful version of the code, the once beautiful child, isn’t so beautiful anymore, and doesn’t give you any high. You need to finish the next task before experiencing it again.
But the coder’s high has a dark side. It doesn’t last forever. I didn’t use the word high randomly. The coder’s high is a drug. And what happens when you use drugs? Exactly, you become dependent and you build a tolerance.
You need more and more fixes that give you smaller and smaller highs. You artificially increase the number of fixes by reducing the complexity and scope of your tasks. For example, the task “seed the database” would be too complex and the high would be too far away, it’s better to choose a task like “seed a table of the database”, that is easier and thus would give you that high sooner.
Does it mean that every coder is destined to lose the high at some time? Is a coder’s life truly that depressing? Not really. Luckily, the coder’s high is just the shadow of a bigger, deeper kind of high.
The Thinker’s High
I mentioned having a job a few times before, without revealing which one. I just hinted that it has something to do with coding.
I’m a researcher in the field of AI.
It’s interesting that, as a researcher, I do code, but only as a fraction of my work time.
Coding is just a means to an end. Coding is a very fast way to solve a problem. Actually, it’s the fastest way to prototype a project in most cases.
When you say that you like coding, I doubt that you like try-catch statements, restful API calls, unit tests, or arrays. You like having a problem in mind and solving it with the means at hand. The choice of either a SQL database or a No-SQL one comes from an analysis of the problem, not from your fetish for SQL queries or denormalized JSON objects (yes, people do have preferences, but that’s another subject. Experienced coders mostly don’t make choices based on preferences).
Since coding is the fastest and cheapest way to prototype, it’s also the fastest and cheapest way most people have to solve problems. So you can mistakenly think that you like coding, but you actually like solving problems.
Think about it. What fraction of your coding time is also spent solving a problem? The answer is all of it. What fraction of your non-coding time is also spent solving a problem? Probably not that much.
Before coding existed, solving problems was a much harder task, at least for common people. It was harder to do it in your mom’s basement. There was just a scarcity of means. Nowadays, all you need is a computer, and you can start solving problems.
When I made this reasoning for myself before, everything made sense. Even if I don’t like coding, I still have the same dreams as before. I still want to be a startupper like many dreamy coders. But now I want to do it as a problem solver, not as a coder. I ask myself more questions like “how do I get more clients?” rather than “which IDE should I use?”.
That is the thinker’s high. You get the coder’s high when you complete a task. You get the thinker’s high when you solve a problem. And trust me, the latter is much more powerful and lasting.
Maybe the Problem Is the Problem
If you think that you hate coding, you are right, because everybody does. But if you actually can’t get yourself to code, it means that you don’t like the problem you are trying to solve.
Back to LevelApp. After almost 80 days, I think that, as an idea, it sucks ass.
Probably I’m wrong. Probably the idea is very good and I’m just experiencing a lot of Resistance. Probably it’s a lack of feedback.
Maybe I just think that the very idea of developing an app is bad. The app market is so saturated, that a new app isn’t likely to do any good.
I have always been passionate about AI. I dream to build an AGI. But lately I had to train a neural network to recognize shoes.
Fucking shoes.
Needless to say, AI and I didn’t get along lately. But still, the problem isn’t that I don’t like AI. The problem is that I don’t like shoes.
Right now, I like to solve problems at high levels of abstraction. I like to make schemes, I like to brainstorm ideas, I like to visualize scenarios. The actual translation into code is less likely to excite me.
In conclusion, think about the problems you are trying to solve with coding. Maybe they are… the actual problem. Find a good problem to solve. But let me tell you a secret: it doesn’t have to necessarily involve code. Even though it probably will, because most modern problems can be solved with code.
So until I find another serious problem to solve, with or without coding, I’ll probably stick to writing. Maybe this first post is total garbage and it’s retarded, but I will tell you one thing: I’m hearing birds chirping, I’m not even a little tired, and I wrote this without a single pause in a full state of flow. I haven’t felt this kind of high in a while.






