I have been developing software for a long time. And over those years, I have come up with an approach to programming and some basic principles.
These are now part of my “gut feeling” when I’m developing something new. But in the coming posts I am going to try to isolate, examine and document them.
I’m calling this series “Peter’s programming principles”. There are a couple of things to say about this:
- I could not resist the alliteration!
- I’m not sure when exactly “programming” became “software development”, when “programmers” became “software engineers”, and when “programs” became applications/apps. But I think the old names were just as good.
The principles are all high-level. They are about an approach. If I talk about a specific technology then it will only be to explain the principle.
The principles I am going to describe are:
- Simplicity
- Elegance
- Shibumi
- Sleep on it
- Difficult things first
- Layering
- Event-Driven
- Data-Driven