Maieutics of computers 1/3

How my computer started talking to me oddly…

The good news in Computer Science is that even the most confusing code base is just another combination of the same Booleans. Any program in this world is a bunch of abstractions built on top of zero and one.
This is why we pretend that CS is not a science, and not even about computers.

It’s complexity-management crafts.

OK, it was an exciting introduction, so what?

My hypothesis is that even without knowing computers, we can rediscover them simply by communicating with them. We will let the machine reveal how it works, just as Socrates did with humans using his maieutics method. …

Functional JS From Α to Ω: Filter

The filter function is second in our holy trinity

Richard Waters developed a program that automatically analyzes traditional Fortran programs, viewing them in terms of maps, filters, and accumulations. He found that fully 90% of the code in the Fortran Scientific Subroutine Package fits neatly into this paradigm.

— SICP 1979

We JavaScript coders have the chance to practice a multiparadigm language supporting functional programming.

Do you want to learn that power?

Let’s start with 24 lessons, from Α to Ω, solving our everyday problems.

Lessons Overview:

γ.filter.

I speak regularly about the signatures of functions. Signatures are a one-line statement that denote intention (or name) and the inputs and output of a function, like `double::number -> number`. …

Functional JS From Α to Ω: Map

B. The map function — first in our holy trinity

“Map” is an important construct, not only because it captures a common pattern, but because it establishes a higher level of abstraction in dealing with lists.”

— SICP, 1979

We JavaScript coders have the chance to practice a multi-paradigm language supporting functional programming.

Do you want to learn that power?

Let’s start with 24 lessons, from Α to Ω, solving our everyday problems. Lessons overview: α. forEach, β. map, γ.filter.

Holy Map

Why was one of the greatest historical language of programming humbly named Lisp, for List Processing?

Why do functional programmers make a big deal about a function named `map`?

The answer to those questions is the same, bound to the true nature of informatics. …

Functional JS from Α to Ω: forEach

[Α] Using forEach as a diving board to understand Functional Programming

We control complexity by building abstractions that hide details when appropriate.

– SICP, 1979

We JavaScript coders have the chance to practice a multi-paradigm language supporting functional programming.

Do you want to learn that power?

Let’s start with 24 lessons, from Α to Ω, solving our everyday problems. Lessons overview: α. forEach, β. map, γ.filter.

A Simple List Iteration

Consider the following data: a list of strings.

JavaScript is not strongly typed, so a collection bigger than langs could be buggy. Let’s pretend we care, iterate on it, and check the console to see what we get there.

We learned how to do that since day one of our programming journey. …

Cure Impostor Syndrome with Functional Programming

Journey of a senior developer switching to functional programming

Ten years of web development made me feel like Neo, before he met Morpheus. Something was wrong in this world. I had some clues, but I couldn’t explain exactly what it was.

My everyday language was JavaScript. I eventually decided to become a teacher and explain how to make real-world webapps to beginners and juniors.

I didn’t switch careers because I felt established, in fact, it was the opposite. I wanted to be a teacher so I could upgrade my skills, question them, and cure my own impostor syndrome.

Who, after a degree and ten years of practice in a field, can feel like an impostor; an eternal newbie? …