What is Zen Development?
After 9 years as a web developer and teacher I have developed an approach to coding which I now call Zen Development.
It is an idea of radically simplifying the way you learn and code. To use the simplest tools to do the smallest work necessary to get the most important results.
In simple words: it is easier to build a car rather than an airplane. It is easier to build a bike rather than a car. Don’t build an airplane to go to the grocery store.
The 5 Benefits of Zen Development
- It speeds up your learning and development speed significantly by removing everything unnecessary.
- It allows you to focus on, and gain confidence from what you know rather than being paralyzed by the vastness of all the things you don’t know.
- Zen Development will simplify your decision making and prevent you from getting stuck. Momentum is the most important factor in learning a new skill. The main killer of momentum is decision-making fatigue (in simple words: not knowing what is the better choice will make you choose nothing and go watch Netflix).
- Hands-on experience trumps theory by far. It allows you to retain knowledge for much longer. Investing the same amount of time, you will be a better developer than someone learning the traditional way.
- It will be much easier for you and others to understand and modify your code. Every piece of code that does not have a very clear reason for existence, will confuse you in the future.
The 5 Principles of Zen Development
- Never write code before you have your goal and the logic of your product clearly outlined on a piece of paper.
- If it doesn’t solve real pain, you don’t need it. Never create abstractions and optimizations unless it becomes excruciatingly painful working without. Never think more than one small step ahead. Revise your code only when you reach a significant milestone.
- Necessity is the main driving force. Throw away anything that does not solve an immediate problem, in the simplest and most straightforward manner. Sophistication is not the mark of a good programmer.
- There is never one correct way to do things. It’s like saying “a hammer is the best tool of all”.
- Never learn any theory (or watch tutorials) that you will not implement immediately, or help you understand better something you have already been doing.
To keep learning a new craft, the most important thing is momentum; keep practicing it and making mistakes. Avoid trying striving for perfection, learning unnecessary knowledge, thus getting confused, overwhelmed and feeling bad and stop practicing.
Instead, try to grab onto what you do know, find the simplest way to make it work, and learn in small chunks. This way you will give you small accomplishments that will keep you happy. If you still feel stuck, leave it for a while, do something else that is easier and satisfying, then come back.