Image from http://xkcd.com/386/
Last night I watched a Scott Hanselman talk on productivity from 2012, for the first time. It is a very enjoyable and thought-provoking talk which I would encourage anyone to watch (not just programmers). One of the most striking topics he discusses is that of cutting back on the amount of information we consume. Indeed, the title of the talk is “It’s not what you read, it’s what you ignore”. His message is that too often we become preoccupied with what we should be reading, thinking that we should read this book or that article, that we need to know about some new technology, or global issue. However, in reality we don’t need to know most of the things we think we do.
A great example discussed is the news. Over the past few years I have found myself paying less and less attention to the news, and it was refreshing to hear Hanselman advocate this behaviour. Do we really need to know everything that the news will tell us? Indeed, do we need to know anything the news will tell us? It is true that this argument can be extended to philosophize that we don’t really need to know anything about anything, but surely it would be sensible to largely limit our information consumption to that which will help us to do whatever it is we want to do in life, or to be whatever it is we want to be. If something of real significance is happening in the world, I have no doubt that I will find out about it pretty quickly, even though I don’t pay much attention to news sources. My partner will mention it, as will colleagues, friends, family and radio hosts. And if it is something that I feel I need to know about then maybe I will seek more information.
The truth is that for most people the news, and information sources in general, are just a distraction. Which is fine in small doses. But browsing for information can become an addiction, which leads to wasting time with which we could be doing something more fulfilling, if not necessarily ‘productive’ in the traditional sense. For example, last year I took up Brazilian Jiu-Jitsu. I find it to be a very rewarding activity which not only helps me keep in shape but also in my opinion is a great source of personal development. As a consequence I am trying to spend less time browsing the web and refreshing Facebook and Twitter, and more time studying BJJ. My competence as a software developer is also something which has a positive effect on my life in a number of ways, therefore I want to make sure I spend time maximising my skills and understanding of programming.
Which brings me to our main point of discussion. In the spirit of essentialism, as advocated by Hanselman, how can a programmer minimise his or her sources of information without compromising on career development?
I believe time spent on programming-related activities can be broadly divided into the following categories: learning about a new technology or approach, reading opinion pieces, engaging in discussions, and staying ‘up to date’ with regards to developments in the industry.
Of these categories, I would argue that learning new skills and knowledge is the essence of our development as a programmer (and probably as a person). We tend not to get a great deal of choice when it comes to the technologies and practices we are exposed to at work, and if we do get to choose then our choices are probably not based on what we want to learn about. However if we wish to spend time outside of work doing programming-related stuff, then there is no better choice than learning something specific. That doesn’t mean surfing programming sites and blogs, it means picking a topic, planning how to learn about it, and executing that plan. Sounds easy doesn’t it? But in a world full of distractions this is obviously easier said than done (and is one of the reasons I blog – to help me focus).
A difficulty in learning something new is picking what to learn about. The prevalence of information makes it tempting to never commit to anything, as there is always the chance that we would be better learning about something else, but ultimately we need to take that risk, pick something to learn about, and stick with our decision.
As interesting as it may be to read programming blogs and news sites, this is not going to develop our skills. We may learn what the hot topics are in software, what is due for release, and what people have strong opinions on, but we have no control on the topic of discussion. Again, reading blogs (like this one!) is fine, as we all need a break sometimes, however we shouldn’t kid ourselves that doing so really helps us to become better programmers. We should proactively choose what we want to learn about, and then look for sources of information on that topic. Pick something, Google it and take it from there.
With regards to staying up to date on announcements, releases and general news in the world of programming, my advice would be to pick a source of information or two, and spend just a little time checking on them. As a .NET programmer, my information sources of choice are the .NET Rocks and Hanselminutes podcasts. If something noteworthy is happening in the software industry, then I trust that between them those guys will mention it. The great thing about podcasts is that I can listen to them while I am doing something else, whether it be commuting or working out.
As far as engaging in online discussions goes, this is something I have all but given up on. Unfortunately it seems to be impossible to discuss something in an online forum without the discussion descending into an argument, whatever the topic of discussion. Whatever the psychological reasons are for this (and if you have a theory please let me know), it seems to be a complete waste of time and energy.
The topic of wasting time online and on our devices is of great interest to me, partly because I have often been guilty of this myself, and partly because I see it so often in others. If the issue is also of interest to you, here are some links which will give you further food for thought: