01 February 2012 ~ 0 Comments

Do you need Internet to work as a developer? I think so (but…)

I had a debate the other day with a friend of mine. To give the debate some context, I am a web developer. He’s a .NET developer working on nuclear weapon simulators, and as such, works in a controlled environment where Internet is not readily available: he needs to get up, walk past some offices to go to the one room where there is a PC connected to the Internet (all the other workstations are on a separate network).

Anyway, he was arguing that since it was rather painful to go on the Internet at his workplace, he learned to deploy strategies to solve problems without attempting to find answers or background information online. Only as a last resort (such as when a bug arises and after a few hours of hair-pulling, he still doesn’t know why it happens) does he go on the Internet, Google his problem and usually find an answer on Stack Overflow.

It’s interesting because as far as work is concerned, I find the Internet to be a double edged sword: it can be easier to get work done (finding resources and answers to problems is easy online), but it also has 2 major problems:

  1. The Internet is a giant distraction trap Everyone is familiar with this one. You search the answer of a problem, you find something, and then something else that is related and then something else… In the end, you spend an hour reading about stuff that, sure, might get you educated about something, but is also time you didn’t use to get things done. In other words, you (please cover the ears of children around you) procrastinated.
  2. The Internet can promote lazy habits of thinking The second problem with Internet is that it can become a routine to google for anything as soon as you don’t have an immediate answer. You don’t remember about this shortcut in your favorite text editor? Google. You encounter an error you’ve never seen before? Google. etc etc In the end, you spend a whole lot of time on the Internet looking for answers for stuff so that you don’t try hard to understand the problems you’re facing. I know this is something I’m struggling with. Instead of being really serious about learning Javascript and regular expressions among other things, I go for the ‘do it first, learn as you go’ attitude. I do something, if I’m struggling I can always Google it.

So, if we want to be getting things done and still perfecting our craft, what can we do?

  1. Schedule in-depth learning I think it’s important to regularly schedule time to learn new stuff in depth. So that means not only being reactive by fixing problems, but also pro-active by actively reading about core stuff. Not blogs or twitter updates, but good meaty books that give you enough background information. It’s about time I really seriously learn Javascript and CSS intricacies :-)
  2. Learn how to use the Internet There’s a goldmine out there. However, not everyone, especially in non english speaking countries, knows how to search on the Internet. So first, developers need to learn how to read and write english really well, to know how to search well on Google. A staggering number of developers still have no idea that Stack Overflow exists and ask questions in old-school forums. It was good in 2002, but in 2012, it can be done better. So you have to know about new resources, which implies you at least keep yourself up to date by following RSS feeds of good blogs or twitter trendsetters. Do you know about Quora? Hacker News? Reddit? (all these might seem obvious to Americans, not so for others). If you don’t, do yourself a favor and go check these websites now.
  3. Experiment with self-discipline I don’t have a definitive answer for this one, but it might be good to have a rule about looking on Internet for a work-related problem. For example, always spend X minutes first to understand and go to the root of the problem (for example, asking the 5 Whys). Only when you are still stuck can you go on the Internet to find stuff. If you directly search an answer for your immediate problem, you might find it, sure. But often times the problem is a symptom of something that runs deeper, and it’s worth stepping back from the problem and ask yourself: “OK, what am I really trying to do here? and why doesn’t it work?”

So, in the end, I do think Internet is a great blessing for software developers (and many other professions, I’m sure). But, you need to have enough self-discipline to decide at some point to stop learning and start doing.

Congrats! You made it until the end. You can follow me on Twitter.

Leave a Reply