The Framework is your Learning Framework

The creator of PHP, Rasmus Lerdorf (video below), has an interesting take on development frameworks. “They all suck”, as he says.

I had mixed feelings the first time I watched this video.

In fact, I felt kind of frustrated.

At the time, I was learning CodeIgniter and believed it would be easier to stick to a framework and master it to the point where I could reduce the time I was taking to launch my projects.

That would only be possible if I already knew foundational OOP PHP. I didn’t.

So, my learning experience was akin to hopping into the cockpit of a commercial airliner and trying to learn flying principles and the plane’s details all at once. This was obviously overwhelming.

Since I was already developing a couple of products, it occurred to me that most of the concepts I was putting into practice were present in most frameworks. However, as Lerdorf mentions in the video, they are presented in a way that is general-purpose.

If a developer wants to learn a framework of language X, the first thing they must do is walk the path of learning X by building a personal single-purpose framework. That path is fundamental for understanding the same concepts in an established, mature framework.

There is a joke among PHP developers when someone asks which is their favorite framework. The answer is usually: “My own framework!”

And it should be. Really. It makes sense because it was the learning framework, the trial-and-error framework, the ever-buggy framework, the king of all technical debt frameworks, etc. It may be all that bad, but at the same time, it is the one you learn the most from.

Maybe your favorite framework is your best learning path.