Blog

Books on web development

Programming principles – 10. First principle – Principle of least knowledge

Video version of this article: https://youtu.be/IIECT7Q5-Gk The principle of least knowledge means that code should know as little as possible about other code. Before we start, a quick note. All the remaining first principles we’ll be talking about from now on (principle of least knowledge, separation of concerns, abstraction, etc.) overlap quite a bit. Even […]

Books on web development

Programming principles – 9. First principle – Principle of least astonishment

Video version of this article: https://youtu.be/hjJkIb1nX6g The principle of least astonishment means that the thing should behave exactly as we expect it to at first glance. This isn’t just a programming principle, it’s the life principle also referred to as KISS (keep it simple stupid). It applies to everything in life, and it applies tremendously […]

Books on web development

Programming principles – 8. First principle – Proof that code works

Video version of this article: https://youtu.be/k8Swf3apDVg We require proof that code works. Why we need proof that code works It follows from our basic requirement that what we produce must work: Without proof that the system works, we do not know whether it works or not. If we do not know whether it works, it […]

Books on web development

Programming principles – 7. Premise – Complexity increases exponentially with scale

Video version of this article: https://youtu.be/taY8q29bUn0 This premise reminds us that complexity increases exponentially with scale. See Programming complexity. As the number of entities in our code increases, the possible number of interactions between them increases exponentially. In other words, any insufficient or imperfect processes during development will have an exponentially negative effect later. Our […]

Books on web development

Programming principles – 5. Premise – We must understand what we’re doing

Video version of this article: https://youtu.be/_SVpX6Q-6zs Our next premise is that we must understand what we’re doing when programming. This is also mentioned in the book The Pragmatic Programmer. It’s the tip “don’t program by coincidence”. Meaning It means that we must program deliberately. We should not be “trying things out” until we get something […]

Books on web development

Programming principles – 4. Premise – Minimal information

Video version of this article: https://youtu.be/PozIEc4IApM Now that we have our requirements, we examine our premises / postulates / assumptions. The first premise is that we can only hold limited information. This is a consequence of us being human and how the brain works. Maybe you’ve heard that we can only remember 7 plus or […]

Books on web development

Programming principles – 3. Requirements of software

Video version of this article: https://youtu.be/tCdNyce-shQ Now we get to the good stuff. We need to start with what it is that we even want in software. Let’s start with the definition. Definition of software “Software” is a combination of two words: Soft Ware Soft means malleable, easy to change etc. In our case, it […]

Books on web development

Programming principles – 2. Audience – Who this series is for

Video version of this article: https://youtu.be/TutgrBoQKSw In this post we’ll talk about: Who this series is for / who will benefit from this series. Table of contents Beginner developers Intermediate developers Advanced developers I would like to address three types of developers. Let’s call them beginner, intermediate and advanced developers. These are not intended as […]

Books on web development

Programming principles – 1. Purpose – What this series is about

Video version of this article: https://youtu.be/7BGVhMDxxA4 What’s this series about? It is about learning and mastering principles in software, from first principles. Table of contents Why do we need programming principles? Traditional way to learn programming principles My problems with the traditional way of learning software principles Learning programming principles from first principles Why do […]

^