Some Thoughts Project-based Learning of Programming
02-13-2026
I recently decided to take a small hiatus from Boot.Dev. I feel like it's gotten to a point where I'm just following along, but the level of complexity of the guided projects is surpassing my own level of what I can understand deeply enough. I also took some rest from the "semi-passive" exercises I've been doing. And, to my own surprise, felt inspired to do a small personal project that I had in mind for some time before. And even more to my surprise, I ended up doing it with zero AI guidance and only some googling. Of course, it came out not very "professional", zero Functional-Programming style, not even OOP; it's full-on spaghetti-code and very specific to my use-case, not very abstracted or scalable either.
But who cares?
It works, and it's mine. I got to figure it out along the way and learn and practice a bunch of things that they rarely teach you in tutorials or courses because everything has to be so abstract and aplicable to any use case that it leaves very little for the practical applications.
That's what it's all about, isn't it?
No amount of complex guided projects can beat the satisfaction of getting a small spaghetti-code riddled script to do the thing that you set out to do if it's an actually useful and meaningful program.
So I might say I'm adding a couple rules to my pedagogical methodology:
- Screw complexity, scalability, abstraction. Do the thing that works FOR YOU.
- Don't think about creating programs that you will ship out and be useful for everyone while you are learning. Create things that are meaningful, whatever it is, doesn't even need to be something that makes your life easier in a pragmatic sense, but if it's interesting and solves a problem, it's good.
- Practice. Practice. Practice.
That said, each mode of learning has it's use, guided learning is great for learning at a high level what the language is capable of; I've also talked about semi-passive learning where you copy pre-made scripts and focus more on the mechanical practice and analyzing than on problem-solving.
Each complements the others. But yeah, project-based is probably the most powerful of all in terms of learning to combine the things you learn in the other two modes in meaningful ways, and learning to think in systems.
And what was that personal project, anyway?
Glad you asked. Nothing flashy, but it's actually relevant to this blog. I wrote a script that automates a few repetitive tasks that I had to do manually each time I add a new entry to the blog. So it adds a few things like the date and the link to the previous entry; it also opens the previous and adds a link to the latest; adds a new line in the blog index and updates the "latest update" line in the main home page.
Like I said, it's tailored to my specific use-case and depends on the specific format I have here, but anyway.. I'm vaguely thinking about expanding the project and turning it into a proto-CMS where I can write the text in markdown and then automatically fit it into the pre-made html template, add images and what-not. That would be awesome. I'll let you know if it works out.