Hacker News new | ask | show | jobs
by catnaroek 3462 days ago
> Very few problems that we are working on are "difficult" from the technical side of things.

I'd say these problems are technically difficult, just not deep. To clarify the difference:

(0) A difficult problem requires a lot of effort to solve. Example: Finding and fixing use-after-free errors in a buggy C program.

(1) A deep problem requires creativity and insight to solve. Example: Inventing and formalizing Rust's borrow checker rules.

Programmers are naturally attracted to deep problems, but not difficult ones. In fact, reducing difficult problems to deep ones is often considered progress, for good reason. After you come up with the right insight, solving a deep problem can be very easy. But solving a difficult problem will always be hard.