Hacker News new | ask | show | jobs
by nickjj 3034 days ago
Project based learning works really well for me and it seems to work well for the 20,000+ people who have taken one of my courses (based on feedback I've gotten over the years).

For example, in 10 hours of time I went from 0 knowledge about Elixir / Phoenix (or functional programming) to having my own Phoenix app up and running with multi-login passwordless token based auth, webpack integration, etc, etc.. I now feel like I have a really good handle on how an Elixir app can be set up with Phoenix and how all of the front end aspects of a web app fall together with it (routes, templates, views, endpoints, plugs, etc.).

I spent the least amount of time possible just looking at Elixir's beginner guide to get a feel for the syntax and then I started my own app and just looked up stuff as I needed it. Nearly all of that time was spent doing "feature based development" on the app.

"I need to add a /faq page, ok, how do I generate a controller and hook up a new route, let me check the docs."

"My app layout is getting a little gnarly, how can I use template includes to split out my navigation, let me check the docs."

This style of learning is how I teach my https://buildasaasappwithflask.com course too. We cover over 50 general web development topics, but topics are went over in the context of building a real world app, implementing features as we go. Then there's self guided homework assignments to implement even more features into the app.

How do you prefer learning?