Incredibly sensible notes on software engineering, applicable to the wider world

François Chollet's "Notes to Myself on Software Engineering" is posed as reminders from Chollet to himself, but they're a really wonderful list of extremely sensible advice on how collaborative projects work, how to be a good collaborator, how to build things for other people to use, and how to collaborate with future engineers and builders who will some day want to hook things up to the thing you're making.

For example: "Code is also a means of communication across a team, a way to describe to others the solution to a problem. Readable code is not a nice-to-have, it is a fundamental part of what writing code is about;" and "Users are focused on their own specific use case, and you must counter this with a holistic and principled vision of the whole project. Often, the right answer is to extend an existing feature."

I'm especially taken with his thoughts on APIs, like "Simple things should be simple, complex things should be possible. Don't increase the cognitive load of common use cases for the sake of niche use cases, even minimally."

Then there's the section on having a good and worthy career in technology: "When making any choice with long-term repercussions, place your values above short-term self-interest and passing emotions — such as greed or fear. Know what your values are, and let them guide you." That is very good advice.

Notes to Myself on Software Engineering [François Chollet/Medium]

(via Four Short Links)