Hacker News new | ask | show | jobs
by tomxor 3034 days ago
> After finishing his first two Android apps

I think this guy's definition of project based learning is "large finished project".

My idea of project based learning (which as a self learner I use quite a lot), is very _very_ small examples, try to make those examples work in the most unpolished way from a user perspective (focus on the core functionality) and explore the different ways in which they can work as a way to explore the topic or idea that you are interested in. _not_ "try to make some end product based on this idea", that's a whole different venture.

In his example of making a chat app to learn about networking:

> Over the next three weeks, Bob spends a lot of time building the GUI for the app, which he already knows how to do, and only a couple hours implementing the client protocol.

If he wanted to learn about MVCs and GUIs this is indeed a good project. If he really wanted to learn about networking from the perspective of chat, he should have either avoided the GUI and come up with the simplest possible CLI based interface... or avoid the interface all together and just experiment with the core networking code and send hardcoded strings or pipe in some text without a nice CLI. I mean this smartphone chat app is really a strawman IMO.

Disclaimer: I've read nothing about project based learning, I only recognise it as a concept that has emerged in my own personal learning strategies as I am sure it has in many others.

1 comments

> Disclaimer: I've read nothing about project based learning, I only recognise it as a concept that has emerged in my own personal learning strategies as I am sure it has in many others.

You may not have read anything about it, but you've nailed it.

If it's project-based learning, the learning has to take precedence over the project.

This is why I had side projects when I was a software engineer.

Most day job projects have to work, with minimal (technical, schedule, etc.) risk, and minimal development time and other costs. For a low-innovation project, this generally means using familiar tools. For an innovative project there's still plenty of skill development, but often in circumscribed areas. (This is true for journeyman to master engineers. When you're early in your career, you get learning opportunities for free out of any halfway-decent environment.)

A side project can take an arbitrary amount longer, or fail, without letting your team or organization down. (Or, a side-project with a team can be a designed as a learning experience, if that's a shared team goal. This is gigging with your band, not building with your crew.) This creates the space for prioritizing new concepts and skills, and practice on weaker skills.