Valuable resources and mind-blowing quotes for self education and self enlightenment.
Everything should be top-down, except the first time.
Simple things should be simple, complex things should be possible.
Duplication is far cheaper than a wrong abstraction.
The code you write makes you a programmer. The code you delete makes you a good one.
The code you don't have to write makes you a great one.
Controlling complexity is the essence of programming.
The art of programming is the art of organizing complexity.
Simplicity does not preceed complexity but follows it.
Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it.
So much complexity comes from trying to make one thing do two things.
Simplicity is hard to build, easy to use, and hard to charge for.
Complexity is easy to build, hard to use, and easy to charge for.
Focus is a matter of deciding which things you're not going to do.
Framework is an app with business logic removed and assumptions left.
FP and OOP
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.
It's better to have 100 functions over one data structure than 10 functions over 10 datastructures.
Inheritance locks you into the first shitty design you come up with.
When something isn't first class, you invent all sort of bullshit workarounds.
GoF = no firstclass functions. Templates = no light elements.
Pure, functional languages don't make easy things hard. Other languages just pretend hard things
are easy and blame you when things blow up.
Personally, I'm ready to call it... dynamic typing is wrong.
It is an accident of history that statically-typed languages were so bad in the 90s
that dynamic languages were an improvement, but the answer turns out to be better static typing,
which we increasingly have.
HTML & CSS