Recursion is more than repeating a function again and again: it's a process of expansion and reduction. As often, practicing is the best way to grasp this difficult concept. That's why this article propose a short explanation as well as examples and exercises.
Compilation and interpretation can be seen as different concepts, even if they are two similar ways to translate source code, often into machine code. What is machine code? How does a computer execute a program? What's the difference between interpretation and compilation, and why does it matter? What are their benefits and drawbacks?
Type systems are core components of programming languages. However, it's easy to get confused by the rich vocabulary we use to describe them, especially since they seem to have different sense depending of the programming language you speak about. What are the big ideas of a type system? Is there a better type system to rule them all?
Why nobody seems to agree when to apply the Single Responsibility Principle? Why is it often misunderstood? Let's see what are the first principles of the SRP.
Software entropy can easily makes our work, as developers, way more difficult that it has to be. Knowing what is software entropy and how to keep it low is essential for our projects to be maintainable and easily scalable.