First, what is the 80/20 Principle?
The 80/20 Principle or otherwise known as Pareto Principle, is an observation (not rule) that out of 100% of the output, 80% of it can be attributed to just 20% of the input. In other words, for a given result, it asserts that 80% of that result usually comes from ~20% of the input.
This principle originated by Vilfredo Pareto in Italy in the early 20th century. He noticed that 80% of his peas came from a 20% subset of his pea pods. Pareto, an economist, then extrapolated this idea to prove that 80% of Italy's wealth came from just 20% of its residents.
Specific to tech, Microsoft made a list of the top 20% of bugs being reported by their users and speculated that it would alleviate nearly 80% of related crashes and bugs (source).
This rule has even been observed in nature from bird watchers, observing that the 80% of the bird sightings belonged to just 20% of the known species in the area (source).
There's not much scientific explanation for this ratio, however, the anecdotal evidence throughout history is compelling, at the very least.
How does the 80/20 Principle apply to self-learning?
Like much of the evidence for 80/20, mine is also anecdotal. I'm a self-taught software engineer and I've been working professionally for nearly nine years.
Through my education in the University of Hard Knocks, I've noticed the 80/20 rule playing out when I learn new frameworks, languages, or systems. I have always looked for patterns, or common denominators when looking at documentation or syntax.
For example, when looking at new languages, I first try to understand:
- The type system
- Control structure syntax
- Packages / Library ecosystem.
Sure, there are plenty of other vertices that come into play when learning a new language, but in my opinion, having a solid grasp of these topics will get me 80% of the way there.
"What 20% will give me 80% of the way there?"
Example: Applying the 80/20 Principle to Laravel (or anything else)
While the 80/20 Principle has been used in everything from macroeconomics, sales, factory quality control, and countless others, for this exercise I'll break down the 80/20 of learning Laravel.
The broad stroke topics that will give you 80% of the tools to be effective when working with Laravel are:
Although, the Laravel documentation covers hundreds of framework features, knowledge of those three domains will cover a vast majority of use cases.
Routing will allow you understand how to structure your application, how to work with controllers, and how to control the flow of the user experience.
Eloquent will teach you how to interact with the database, query records, and manipulate the results.
Blade will show you how to manage templates and serve assets effectively to the user through views.
Just those three topics are the 80/20 of learning Laravel.
80/20 is not just an observation, it's a lifeline.
And here lies the takeaway. 80/20 Principle, but more importantly, the ability to self-learn new ideas quickly will be the new currency. The 80/20 Principle is just one tool in the larger self-learning tool box, and it's an approach that could be the difference maker in your career.
Some of us are put in great working environments with plenty of support and room to grow and blossom as a developer. However, some of us are not. In a sink or swim scenario, this principle can be your ace up your sleeve.
Whether it's learning a new language, managing a company, tending a pea garden, identifying the 20% can make all the difference.