This is a list of resources I keep sharing with people that I find incredibly useful when it comes to building software.
Applicable to day-to-day writing and maintaining software systems
- Rule of Three - The wrong abstraction is much worse than code duplication
- Do The Simplest Thing that could Possibly Work - Stop trying to find the general solution and solve the problem as simply as possible
- YAGNI - you ain't gonna need it. Code for the problem you know you have right now, not the problem you think you'll have in the future
- Fire and Motion - If you're stuck, just start coding something, even if you're not sure it's the right thing to code
Books that every professional programmer should read at least once
We're social creatures and working with other people is a challenge. Here's how to make it easier
Higher level things to think about and use to form a philosophy of software engineering
- Hammock Driven Development - Thinking is a large part of software engineering. Touches on the concept of the background mind (what Jung would call the unconscious) and how to make use of it
- Boundaries - Abstractions, interfaces, proccessing and how they all fit in together
- Simple Made Easy - Easy and Simple are two differenent concepts - strive to reduce complexity
- Things You Should Never Do pt. 1 - Don't rewrite a system that works, even if it's a big mess