a river of information

Too much information

There’s never been a better time to become a developer. There’s never been a worse time to become a developer. Both these statements are true.

Today, you can find so many well-written tutorials, explainers and posts about all facets of developing that it’s impossible to read them all, let alone retain all that knowledge. It’s the case of drinking from a firehose.

Pre-Internet, knowledge was less available, which actually made it easier to learn and master a given language and its syntax. I can remember buying exactly one Visual Basic 4 book and living with that book for months until I knew it backwards and forwards.

Today, by the time I’ve learned one big thing - say CSS Flexbox - along will come an entirely new body of knowledge, like CSS Layout that will have to be studied and mastered.

We need a better approach

The core problem isn’t that there are too many topics to master, but that our methods for mastering those topics are so poor. Compare how we learned in college to how professional developers pick up a new skill.

In college, the professor would assign you 4-6 books to read, but selectively. The information was discussed, mulled over, associated with other information. Each book’s contents would be read, re-read, marked up, underlined, and notes made and taken. Then those notes would be summarized, colorized, and marked up until you had an entire semester’s worth of knowledge down to a few pages with just enough information to link or associate one bit of information with the next.

When you’re a working developer, you consume a hundred times more information each and every day – but 99% of the time, you read a post, passively. Most developers don’t have the time to take notes, let alone revisit those notes repeatedly so the information become knowledge and that knowledge is associated with other knowledge in long term memory.

I won’t even start on the attention killing, interrupt driven world of notifications, Slack messages, and even emails most developers on a team live in, and the effects of the constant barrage of interruptions that destroy concentration.

I wish there was a single answer. The only solution to this problem I know of is:

  • keep a running list of high quality posts and tutorials in your system.

  • periodically revisit each post and tutorial on a regular schedule so that the knowledge becomes familiar and associated with other knowledge.

  • take the time to actually work through each tutorial you accepted into your “inner circle of knowledge”.
  • Take notes, and review those notes, and take notes on those notes.

  • Treat technical knowledge the same way you would treat stuff that you eat: each piece has a definite shelf life. Don’t consume outdated information. Let’s say you want to learn React, or Vue. Don’t touch a tutorial or post older than a year - it’s almost certainly out of date.
  • Try and be systematic in acquiring new knowledge, and making sure you are acquiring current knowledge.

It is possible to keep up with the never-ending river of technical news that as a developer you stand in. But take the time to put into place a system that works for you to actually learn and master all that information, don’t let it just wash by you.