No Time Dad

A blog about web development written by a busy dad

Unbundling for Learning

Unbundling is taking a peice of a larger application and making it its own smaller application.

Entreprenuers do this because there’s existing demand for the smaller peice of the application. It’s also likely that the company behind the larger application isn’t focused on the smaller peice of the application. This provides an opportunity to tap into an existing market without wholly competing with a larger more established company.

I’m not really an entreprenuer though. I’m just a guy who likes to learn new things. But it occurs to me that unbundling can also be used for learning purposes too. That is, building a small peice of a larger application as a way to gain experience with a given technology or framework.

It’s essentially using unbundling as a way to create small projects to work on. Working on more projects in a given language or framework makes you a better developer. You run into unique problems and edge cases that are hard to come across on your own. It’ll push you to think about certain problems differently, as well as coming up with unique solutions for those problems. The end result is more real-world development experience.

Using GitHub as an example, I can see multiple unbundling opportunities. Each of these can be their own small project.

github_header

  1. Issues tracker
  2. App marketplace
  3. Trending repositories display

And it’s up to you to decide how complex or simple you want it to be based on what you’re trying to learn. Adding features and trying to replicate what already exists can help keep you motivated.

Want to learn about authentication? Create registration and login forms for your issue tracker.

Want to learn about foreign keys? Try to design the database models so that an issue belongs to a repository.

Want to learn how to create dynamic buttons? Try to re-create the star button for a repository.

And the list goes on. The point is, unbundling large apps into small projects is really great way to learn new things. It also helps keep motivation high because the project is small and it’s easier to finish smaller projects. Keeping the project small also allows you to quickly pivot to another project that requires a whole new way of thinking.