

How do you deal with frustration during software development - azeirah

I have this so much, whenever I&#x27;m developing something, and I encounter the smallest frustrating issues like typo errors that occur every 10 minutes but take half an hour to debug, or doing any kind of css. It heavily frustrates me, and destroys my motivation so quickly that I want to give up on the project, because there are always more frustrating bugs and problems, it never ends.<p>No matter what I&#x27;m working on, school projects, my own projects, helping others with their projects.<p>Really small things like this make me feel very down and quickly destroy whatever motivation I have. What do you do to deal with this?
======
daly
Ah, the thing they never tell you when you learn to program... computers are
the source of all frustration.

I have spent all day editing a backup copy of a file, wondering why nothing I
changed fixed the bug. I've spent a whole day chasing a missing character.
I've spent a week, under deadline pressure, only to discover a bug in the
compiler. I've lost the source code for a whole project because I nuked the
directory by accident. I have to reboot my MacBook every two weeks because it
starts paging and is so lagged I can out-type it.

I did a self-study and found out that I have a 3% error rate in everything I
do... and found out that 1/2 of those errors are caused by copy/paste (which I
stopped doing). Errors at every level, from typing to syntax to semantics to
design to thinking...and every one of them is a source of frustration.

I have to laugh when I hear people suggest that we require students to learn
to program. Learning to program is the easy part. Dealing with the continuous,
painful, and ever-present frustration is the hard part. All day, every day,
every year of my 44 years of programming have included creating, fixing, and
bleeding over programming and its frustrations.

You ask "What do you do to deal with this?"... I guess it is like trying to be
a really good musician, you just study, work, and bleed at it. Most people
give up on music; most programmers "retire into management". Some of us
program because, like a musician, "it is not what we do, it is who we are". We
program because we must. Frustration just makes that rare success that much
sweeter.

------
Maultasche
I've found that as I've gained more experience, I learn from my previous
mistakes, and over time it slowly improves so that I'm making fewer mistakes
and debugging the mistakes I do make more quickly. I remember that when I
started learning software development, there were a lot of roadblocks to
progress that were caused by my lack of experience. Such roadblocks have
mostly disappeared for me.

My code still has bugs, of course, but I can usually identify and squash them
a lot more easily now. I still encounter the occasional frustrating issue, but
it's a lot better overall.

My mistake rate spikes when I'm learning a new technology or language of
course, but that subsides once I get used to it.

Attention to detail helps a great deal, but I know that this can sometimes get
tiring.

Of course it also helps to work with compiled languages rather than
interpreted languages. :) More of those mistakes get caught by the compiler.

For interpreted languages, I find that linters are good for finding issues and
some IDEs have integrated linting and possible mistakes are highlighted right
there in the editor. I like the WebStorm IDE for Javascript development
(node.js or client side) and it wouldn't surprise me if SublimeText had
something to help spot code issues.

So if you stick with it, it'll likely get better and less frustrating. In the
near term, my suggestion is to use tools that assist you in avoiding simple
mistakes like typos.

Another suggestion would be to walk away from something that is causing you
frustration and come back later. I sometimes find that a particularly
infuriating problem is more easily solved if I take a break from it for a
while.

------
dukedylan
I keep track of all my projects using task management apps like Asana, use Git
to backtrack what I have been doing on each project, and switch projects
really often. This way I can make sure I am organized and can pick up where I
left off and if I am at a roadblock with one project I can blow off steam by
doing something really great on another.

Another helpful thing is to use code linters to prevent simple typos and other
easy-to-miss errors. Atom editor, for example, has tons of linter plug-ins, as
well as other helpful things, to ease creating code.

------
stephengillie
I lost motivation and went back to system administration. It's so much easier
to build Windows VMs.

