i have no special talents. i am only passionately curious. |
i'd have written a shorter letter if i'd had more time. |
what i cannot create, i do not understand. |
if it's easy to explain, it might be a good idea. |
study hard what interests you in the most undisciplined, irreverent and original manner possible. |
i'm just trying to program without going crazy. |
the goal is short term velocity without long term paralysis. |
abstraction trades actual complexity for perceived complexity. |
duplication is cheaper than the wrong abstraction. |
no single data layout is efficient for all workloads. |
programmers know the benefits of everything and the cost of nothing. |
simplicity is the ultimate sophistication. |
make the problem easy, then solve the easy problem. |
nullius in verba. |
do what you can, with what you have, where you are. |
one accurate measurement is worth a thousand expert opinions. |
brevity is the soul of wit. |
creativity is the residue of time wasted. |
amateurs talk about tactics. professionals study logistics. |
simplicity requires hard work to achieve and education to appreciate. to make matters worse, complexity sells better. |
some teams have a manager, others have a leader. |
talk is cheap. show me the code. |
when you don't create things, you become defined by your tastes rather than ability. so create. |
the amount of ceremony required is inversely proportional to trust. |
do not abstract before an abstraction is necessary. |
only trust the network at the physical layer that it won't destroy your hardware. |
if you want to do great work, you need freedom first. |
not all broken windows are worth fixing. |
the good stuff is often not what we plan before we start. it's what we find along the way. |
network boundaries are enforced by physics. module boundaries are enforced by discipline. |
a question matters if its answer will impact future action. |
the difference between hope and despair is a good night's sleep. |
brevity is the soul of wit. |
creativity is the residue of time wasted. |
the challenge with teams is avoiding the dilution of responsibility. |
it's hard to drive non-incremental innovation without a benevolent dictator model. |
the difference between under-engineering and over-engineering is that you can fix under-engineering. |
the purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise. |