Frustration and programming are tightly related. There’s something about trying to make something work, and failing that causes frustration in many people.
Wanting your program to work, doing everything right, yet something doesn’t seem to work the way you expect it to. This seems to be aggravated if you drink coffee right before.
I’ve been trying to learn C and have found it challenging to learn how the memory allocation works. After hours implementing a simple hash table I realized that it doesn’t work for my project. I spent hours debugging it and realized it was a problem in how I understood how C manages memory.
In the Nth hour debugging, you realize maybe you need to restart your project. Try something else. Giving up.
This is what I assume a common experience among developers; although I’m sure it replicates in many other professions. I can imagine too, the frustration of a wood worker trying to saw an expensive piece of wood and accidentally breaking the whole slab.
So what is one to do?
Here are some things I’ve found helpful to remember in times of frustration coding.
- Take a step back and go for a walk: the more you bang your head against the wall the longer it takes
- Look for other solutions to your problem: has anyone else faced the same issue? how did they frame the problem
- It doesn’t mean you’re a bad coder: having challenges is very common when learning something new; it’s expected
- Learning implies friction: learning something new implies you might have a hard time learning it the first time
- Ask others: talk about your problem with other people; see what they think, ask in community forums
Frustration seems to be an integral part of learning. If we’re assumed to be learning for a long time I think it’s important to build a good relationship with it. Not fall into the thinking traps associated with it. See when it happens and understand what are the things that help you work with it.