Or: How to learn how to learn in five minutes
The way PyCon Canada lightning talk presenter Daniel Moniz (@ParagonRG) gives his presentation, “How to Learn Python in Five Minutes“, you could miss what a great system for learning to program is being outlined.
I stumbled on this video as I was looking around at online programming courses. The title, a bit of “trickery” that Moniz apologizes for, is click-bait for the casual browser. The title should instead be something like “How to learn how to learn in five minutes,” since it’s not about Python per se, and couldn’t cover too much in five minutes anyway, but instead uses the presentation to go over a system for learning that seems really useful.
It’s something Moniz calls the “Three Day Project Paradigm”. I can’t find anything (else) on the web about this. So maybe it’s his paradigm and this is its debut? Anyway, it’s imminently practical. The main thing about it is that when you’re done, you not only have learned in what seems to be an ordered and efficient way, but you’ve got this project, this thing, to show employers, tech talk attendees, your mom. You may use that thing to get a job, as he describes having done, or simply to acquire a new programming language or skill in a way that commits you to the learning.
I know that when I’ve interviewed at tech companies, I’ve sometimes had a project to show, and I can say the amount of gravity these projects have in the process is really useful. You built this product? Show us how it works. I mean, interviewers really want something to dig into, to poke at, a differentiator. I had a little document review tool I built as a Python web app (DiRT); a Kred social application for work; various text and XML processing utilities. When your projects are real and been made public—”shipped”—when they have little logos and cool names and nice-looking UIs, they say a lot about important skills like design, testing, “productization”, follow-through. They show you to be a shipper and not just a tinkerer, and that’s key.
This project paradigm has you working on a thing you really want to exist, that you may make a part of your resume but also use, that will be a part of your technical experience, your toolkit. Collaborative development tools like GitHub make this so easy technically. And of course working on such a project provides the focus and real problems and solutions that help you actually learn—in contrast to so many more passive or casual or disconnected learning environments.
Three Day Project Paradigm Outline
I copied the outline for the 3DPP from the video:
- Need a project idea, e.g., web crawler
- Mess around, learn language
- Complete functionality
- Eliminate bugs (bug-free by EOD)
- Complete docs
- Push to Github or online repo
Three day boot camps in Wilmington
I could imagine a set of Raleigh Iron Yard-style boot camps based around the 3DPP filling this disconnect in these ways:
- Employers could help define real projects based on their real needs–and see those projects worked at in a win-win learning/training/solving situation
- 3DPPs could supplement tech learning and training at local colleges, taking up emerging skills needs in a more agile way than traditional curriculae tend to
- 3DPPs could train existing employees in work environment to upgrade them in their current roles
Example 3 Day Project
As an example of the qualities above, 3DPP facilitators might help the NHC medical center frame a set of needs around mobile apps: A mobile solution for NHRMC employees to schedule rooms for meetings and patient consultations. Students of the boot camp, having already expressed a keen desire to learn Angular JS and Swift, virtualization, would adopt three projects in paired programming teams, apps and components that could be white-labelled for NHRMC but could also be adapted for other more general uses, such as real estate offices, universities.
One team would build the server component in Swift, on Linux, in the cloud
- Another team would build the mobile application itself using Swift + Angular
- A third team would build an analytics package that would integrate and provide dashboards about capacity, utility of rooms, energy costs, etc.
The students would pay for this learning experience, the medical center might also pay, or subsidize; maybe it has its employees in this training/solving. The medical center would indicate its willingness to purchase or hire for solutions to its real problems. The students would be building a real thing—again for their resume at least, if not for profit and employment. The framework of the real-world problem and compelling technological solutions would make the learning efficient, modern, “sticky”.