Introduction
I’ve never been more frustrated than when I was programming. I love programming, but it’s so frustrating! I can’t even tell you how many times I’ve given up and gone to bed in tears because there was some problem with my code that was impossible for me to debug. It’s like if you took a tough puzzle and made it impossible to see the rules behind what makes it work. And then you had 20 minutes left on the timer before your computer would start crashing because there were too many problems in your code at once from them trying to run simultaneously instead of sequentially—and none of them were apparent or easy to fix!
I started programming because I wanted to create things.

As a child, I always wanted to be an artist. I loved art, and I was good at it too. But when it came time for me to choose my career path, there were two problems: firstly, being an artist wasn’t exactly a viable job option in South Korea (or anywhere else); secondly, even if I did manage to become one somehow–by moving abroad or something like that–I wouldn’t be able to make any money from it anyway because no one would pay me for my paintings unless they were super famous or something like that.
So instead of pursuing my dream career as a painter, sculptor, or whatever else comes after those two things on Google Image Search results pages (*cough*), I decided on another path: computer science! Nowadays, this may seem like an odd choice, given how much people hate CS majors these days. However, back then (and still today), there weren’t many other options available for someone who wanted both financial stability and creative fulfillment during their professional life span so here we are today talking about how much fun programming is even though no one else seems interested in hearing about our experiences.
But now that I’m trying to program professionally, all my projects turn into frustrating puzzles where the solution is just an arbitrary series of steps you must follow strictly.
But now that I’m trying to program professionally, all my projects turn into frustrating puzzles where the solution is just an arbitrary series of steps you must follow strictly.
It’s not like writing a story; there’s no clear progression or direction. It’s not like writing code; I cannot express what I want in a way that makes sense to the computer because computers don’t think like humans do. The only thing left is solving these puzzles by brute force trial and error until something works (if something does).
If you don’t follow those steps in precisely the correct order, your code doesn’t work.
You can’t just write a chapter and then go back and add details later. You have to write all the details at once. If you change your mind about how something should work, you have to rewrite everything from scratch. It’s like writing a book or making a movie–if you don’t follow those steps in the correct order, your code doesn’t work.
You don’t get to write logic like “if this value is set, then do this, otherwise, do that.”
You don’t get to write logic like “if this value is set, then do this, otherwise, do that.”
Instead, you have to write a lot of code, just a sequence of steps.
Every piece of code has to be a self-contained block with nothing relying on anything else.

Computers are dumb. They can’t do anything unless you tell them to, and they don’t know what to do unless you tell them. Every code you write needs to be self-contained, with no external dependencies on anything else in the system. Suppose your function relies on another function being called first or second. In that case, your program won’t work correctly because computers are dumb (and don’t understand things like functions).
This can sometimes make coding feel very restrictive; there’s no way for me as a programmer to get around having every piece of code be independent of its surroundings!
Even if it’s not wrong, it will crash at runtime, and you’ll have no idea why.
Even if it’s not wrong, it will crash at runtime, and you’ll have no idea why. You have to debug it. You have to figure out what went wrong and then fix it. Then you have to restart the program and test it again. This can take hours of your time, all because someone wrote some code that wasn’t very good in the first place, didn’t test their work thoroughly, or didn’t even write any tests!
Programming is a lot more frustrating than it seems from the outside
As a programmer, you will have to deal with all of the following:
- Frustration. Programming is often very disappointing. You can spend hours figuring out why your code isn’t working and still not finding the bug. Even if you do find it, it’s unlikely that the fix will be as simple as you’d hoped (or even possible).
- Boredom and repetition in tasks that are simple enough for computers to do themselves but require human intervention because they’re poorly designed or miswritten in the first place (or both). This includes writing tests for other people’s code or refactoring legacy code so that new features can be added later without breaking anything else–in short: doing busy work because no one wants to spend time thinking about what needs doing before they get around doing it themselves!
Conclusion
I’m not saying that programming isn’t fun. It is! But I think it seems so appealing and easy because people don’t realize how much work goes into making something look simple.
For more on this topic, see Polytechnic Universities and Institutes of Technology: Preparing Students for High-Demand Careers in Technology and Engineering.
For leadership articles