After completing one project, we’re often in a hurry to start a new one. But why the rush? If you complete a quality project, recycle it: iterate on it and create your own mini-projects along the way.
I do this myself. The process is helping to build my skills and solidify concepts—and it can help you, too. So in this article, I’ll share my process for creating programming projects.
Let’s start with an approach I’ve adopted from the famous basketball coach, John Wooden. It’s called the “whole-part method.”[1]
Coach Wooden used his “whole-part method” when teaching his team a particular basketball play.
First, he’d show the team the entire play from start to finish. Then, he’d break the play down and the team would work on each part.[1] It’s a simple—but extraordinarily successful—learning strategy that you can apply to programming.
It’ll help you nail the core competencies of a concept or technology. It'll also help you to see how these individual parts fit into a broader context.
Here’s how it works. Start with a project that you’ve already completed, much like Coach Wooden showed his team a new basketball play from start to finish. Say you just completed a React project, where a user enters todos. The todos are displayed on your screen. Let’s use this as an example of a base project.
Focus on Each Part
Next, break the project down into smaller projects, just as Coach Wooden’s team would break down and drill each part of a new play.
These are several mini-projects you could create from this React “todo” project:
Notice that each mini-project centers around a core concept of React, like using classes and functions. This is one way to identify mini-projects: identify core concepts and design a small project around them. Alternatively, you can create a project around something specific that you want to get better at.
Drill It and Internalize It
Note that you’re not re-completing the entire project each time. Instead, you’re focusing on one thing. The aim of this practice is to take something that has multiple parts, and break it down and drill each part.
Recall that one mini-project focuses on classes: write some classes in order to get a few user-entered “todos” to show up. Don’t add CSS. Don’t add the functionality to remove a todo. It’s pretty bare-bones, but that’s the point: you’re concentrating solely on writing classes.
Likewise, when you work on the CSS mini-project focus exclusively on CSS. Take one version of the project that you’ve already completed and add CSS to it.
Isolating specific aspects of a project and drilling them is a great way to really understand and internalize core concepts and build skills. It’ll also point out areas of weakness. If you struggle with classes, then you’ve identified an area to work on.
Once you’ve completed a mini-project—and this is the critical point—take time to reflect:
The idea is to look at your work objectively and analyze it: give yourself feedback. If you struggled with a project, then let a few days pass and repeat it. This is also a great opportunity to refer back to your base project and compare.
Put it Back Together
Once you’ve completed your mini-projects, put everything back together again and do the entire project from scratch. You’ll probably be amazed by how smooth the process is by this point. You’ll also have a much clearer understanding of how the individual parts (the mini-projects) fit together as a whole.
Another suggestion for creating projects is to extend an existing one. Whereas the “whole-part” method breaks down and drills concepts that you’re already familiar with, this one has you add something new. The idea is to extend your knowledge.
Say you just completed a backend project. Now extend it by adding middleware, if you've not used middleware before. Then extend it once more by creating a new React app and connecting it to the server. You can extend a project in any number of ways, these are just some examples.
Each time, you’re going beyond the original project requirements by adding something new to it. In doing so, you’re pushing yourself outside of your comfort zone just a bit, which is the intent. That’s how you’ll get better.
Once you start using these approaches, you’ll find yourself creating your own projects from scratch. You’ll take “x” from this mini-project and “y” from another and create a new project. The process will also get you thinking creatively of entirely new projects you can put together, and it’s a lot of fun!
When you find a good project, get the most from it. Hopefully, this article gave you some ideas of how to do that.
Reference:
Nater, Swen. You Haven't Taught Until They Have Learned: John Wooden's Teaching Principles and Practices. Morgantown, Fitness Information Technology, 2006.
Programmer and writer: amymhaddad.com | programmerspyramid.com | I tweet about programming, learning, and productivity @amymhaddad
Originally published on amymhaddad.com.