Understanding Simplicity

Understanding Simplicity is a new, in-progress series of ebooks/guides with a strong focus on simplicity and clarity. They are longer than blog posts, but still very concise (I'm trying to keep each part under 25 pages).


In the first guide of the series (Functional Core, Imperative Shell), we are going to create an elegant, general-purpose build tool and use it to build an example website.

By going through this process, we are going to explore many important topics like combining imperative and functional programming (i.e. by isolating the imperative parts into the outer shell, and keeping our inner core pure), creating a flexible, storage-agnostic architecture, and writing clean and testable code in general.

We are going to build everything from the scratch, and use external dependencies only where it's really necessary.

In the first part of this guide, we're going to go through all the relevant concepts, and build the outer shell. The second part will be focused on the inner core.

Note: while I'll try to keep things also relatively friendly towards new programmers, some experience with JavaScript and understanding of general programming concepts is required.

For now, early preview is available to supporters of this site, but I'm going to publish on more more platforms (like Leanpub) soon.


Series index: