def programming

Like designers, if you give a programmer a problem with parameters, they’ll apply every bit of genius they have to solve it in the best possible way. If you tell them how to do it, you’ll suffer the wrath of an angry God.

There's nothing more permanent than a temporary hack.

It can be better to copy a little code than to pull in a big library for one function. Dependency hygiene trumps code reuse.

A programmer does not primarily write code; rather, he primarily writes to another programmer about his problem solution. The understanding of this fact is the final step in his maturation as technician.

Telling a programmer there's already a library to do X is like telling a songwriter there's already a song about love.

The best error message is the one that never shows up.

on error

Almost without exception, the best products are developed by teams with desire to solve a problem; not a company's need to fulfil a strategy.

A Fallacy of Software: If it works, and we don't change anything, it will keep working.

(...) Thinking this way will teach you two things about computers: One, there’s no magic, no matter how much it looks like there is. There’s just work to make things look like magic. And two, it’s crazy in there.

Programmers are often angry because they’re often scared.

Well-designed components are easy to replace. Eventually, they will be replaced by ones that are not so easy to replace.

Things that are impossible just take longer.

Always bet on JavaScript.

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.

Good engineers make solutions obsolete. Great engineers make themselves obsolete.

Big data is like teenage sex: everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it...

on data

And the reason these things take a generation is because ultimately we do not change people's minds. We have to wait for the previous generation to retire or die before we can get critical mass on the next idea. So it's like we look around: "Are they gone?"

There is no single development, in either technology or management
technique, which by itself promises even one order-of-magnitude
improvement within a decade in productivity, in reliability, in simplicity.

Treat your code like poetry and take it to the edge of the bare minimum.

The best reaction to "this is confusing, where are the docs" is to rewrite the feature to make it less confusing, not write more docs.

Data dominates. If you’ve chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. 

on data

No code is faster than no code.

When in doubt, leave it out.

Languages that try to disallow idiocy become themselves idiotic.

Security is a state of mind.

Built with using

Source code available @ githubpull requests are more than welcome ;-)