To keep your motivation up and lessen frustration, try batching your work into small tasks with payoffs at the end, even if that results in “wasted” work. For example, instead of trying to build a great app all at once, build a hacky prototype that works, then refactor or rewrite it to get the code clean.
I have a pet hate of working with and even being around people who get angry at computers/code.
Barring exceptional circumstances, computers do exactly what you tell them to do. If your work is not doing what you expect, getting angry or frustrated seems ridiculous. Either you’ve done something wrong, or something you’re using doesn’t work the way you think it works.
All cases involve something you don’t understand, the only solution is to understand more: read the docs, understand the tools you’re working with better, or get inside the code or structure of the thing you’re using that isn’t doing what you expect it to do.
Barring exceptional circumstances, computers do exactly what you tell them to do.
This is true but misleading. Users do not actually tell computers exactly what to do, they rely on agglutinated opaque software from vendors running on lowest-bidder hardware, communicating over unreliable and hostile networks. The consumer experience of computers is fundamentally non-deterministic, and professional experience of determinism is an indication of limited scale.