Reducing cognitive load
In Chapter 1, we touched on the importance of reducing cognitive load. As technology and systems evolve, they become more complex. The high degree of complexity means that understanding every part of a system is a significantly larger mental burden. The old days of monolithic applications on the Linux, Apache, MySQL, PHP (LAMP) stack are behind us. Instead, microservices, the cloud, virtual networks, and so on have become part and parcel of the day-to-day operations of a software application.
With modern software architectures, a full stack software engineer no longer needs to understand a server or operating system that application code runs on. The platform takes care of that for them. However, as much as the platform can abstract a lot of the details away, a developer still needs to be able to have awareness and insights into the underlying technologies in so far as they are relevant to their application. Therefore, the platform must strike the balance...