Hacker News new | ask | show | jobs
by countWSS 880 days ago
Debugging. It takes hours to pinpoint exact cause of anything more complex than a toy program, especially when the bug requires a combination of factors to manifest. In most situations its much harder to debug code that you didn't write, but it appears as if debugging is "easy" because people do it on their own code.

Bonus(appear easy to do, but are actually hard): Micro-optimizations that target a specific platform: a combination of CPU-compiler-OS factors.

Porting software: There are tons of subtle unportable things and assumptions that hide under the surface.

Rewriting X in Y:lots of footgun and like inexact translation in natural languages can cause subtle bugs.

Makefiles and shell scripts: they look so simple, but try debugging a moderately complex makefile or shell scripts. Bash is especially sinister example.

Anything that talks to a closed/blackbox API or close-source library: the dependence on code that you can't debug in general.

Maintaining software in general as it grows in complexity.