Skip to content

Instantly share code, notes, and snippets.

@nkabrown
Last active March 28, 2018 00:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nkabrown/928630380d1121bb1b7c636f88eb6125 to your computer and use it in GitHub Desktop.
Save nkabrown/928630380d1121bb1b7c636f88eb6125 to your computer and use it in GitHub Desktop.
The Pragmatic Programmer § 5 – Your Knowledge Portfolio – learning plateaus & diversification

Learning Plateaus & Diversification

§ 5 — 'Your Knowledge Portfolio'

The authors of The Pragmatic Programmer talk about the importance of diversifying your knowledge base specifically in terms of guaranteeing your long-term success in a field that is always changing. I want to talk about the power diversification has to jump start your understanding even of those areas you already think you know well.

Probably those of you in class are desperately praying for a learning plateau and a chance to catch your breath. But after your program ends and when you are working you are going to experience some learning plateaus. When you feel this way, "I have a body of stuff I know and am competent with but I'm not learning how to do more", then you've hit a learning plateau. It's pretty common.

I've learned that diversifying your knowledge by learning something completely new is a great way to get your learning momentum moving again. And surprisingly learning something new always seems to shed light on the bundle of things I already think I know. You will probably find that there are plenty of connections between your new knowledge and what you already know.

For example I've recently been learning about operating systems, not for work, just for fun. My reading about filesystems surprisingly has shed some light on Git of all things. Turns out Git is an object database where the objects are files in a filesystem. You can check out the .git directory in your project folder and see what I mean.

Here are a few ways you can diversify:

  • Learn a new programming language
  • Embedded Systems project (or Internet of Things)
  • Mobile Development
  • Learning a new framework or library
  • Reading the source code of a framework or library you are already using

So when you hit a learning plateau learn something new and ask yourself the powerful question, How does this relate to what I already know?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment