Blog

This is Brick by Brick – the BitMethod blog spanning everything from tech to code to business philosophy…not to mention bringing a little Valley culture to Flyover country.

Grab the feed

Authors

Categories

Newsletter

Sign up for our newsletter and stay in the loop.

Join Our Mailing List

Search

Follow Your Own Path

by Neil Roberts in , 7 September 2010

The social groups we create online are made up of people we have chosen to listen to (or follow). This is a behavior that has become popular only recently and people are still getting used to the switch. In particular, we can forget that the people we follow are also being followed by those listening to us. Though there are many social blunders as a result, I’d like to focus on one that’s been showing up more and more frequently among those I’ve chosen to follow: making fun of what’s popular.

Iowa’s State Fair wrapped up a couple of weeks ago. I really enjoy it, but I started to see tweets, blog posts, and lots of Facebook comments about how much people disliked the Fair. One phrase kept on popping up over and over again, which was basically “I’m over it”. The simplistic fun of a butter cow or food-on-a-stick were no longer reasons to attend. It was odd that the criticisms were so similar to each other; almost always the specific “over it” phrase followed by the lameness of the butter cow.

This came at the end of a lot of other repetitive negative commentary on products and services I quite enjoy. It came after Quit Facebook Day, jokes about the KFC Double Down, and the ever-popular “Twitter is where you just talk about what you’re eating.”

It makes sense that the larger and more visible a product or service becomes, the easier it is to spot issues. The web has a pretty big obsession with praising the underdog and criticizing those enjoying success. There’s a great article about how some blogs are writing just to get advertising hits by preying on these attitudes:

“The formula is pretty straightforward: catchy headline, hot topic of the day, add a dash of controversy, stir into a gooey mixture and bake for ten minutes. Even better: take a jab at someone who’s on top: Apple, Facebook, etc. People love to shoot Goliath (or at least shoot in his general direction).”

It’s this kind of article; written not to share an idea, but to draw attention, that can quickly fuel a huge discussion. The target is intentionally large, the audience is aware of or can quickly locate the issue discussed, and we all feel educated enough on the topic that when we speak, our voice will have weight.

Ideas on the internet move quickly and have a long tail. We’re talking to a huge audience and we’re listening to more people now than ever. Because of this, there are often a lot of people all talking about the same thing at the same time. You see an article about The X Types of Twitter Personalities and you think “I have something to say about that as well.” Even though you may have only seen one person mention it, I might have seen twenty of the same articles in the past week.

People have likely chosen to listen to you because they want to hear what you’re thinking. We often feel torn between providing something interesting to these people and not having any of our own content to contribute. As a start, we can try to avoid the large, easy targets and start to provide insights into the topics that are unique to us.

You’re going to have to start over.

I’m part of a generation of programmers that was brought up with the promise of “Write once, run everywhere”. Colleges created computer science programs we assumed would teach us everything we needed to know; that we would never have to learn anything beyond what we got during our time there. We looked at the simple text-based applications of the past as being below us. We had every tool we needed to become the best programmers ever. It’s unfortunate that we view the programmers of the past with such disregard.

Early programmers were brilliant; they had massive technology constraints and had to know the tiniest details of the environments they were coding in. Every day, we use the technologies they created. The programs they wrote are still performing mission-critical operations decades after they were first written. Dreaming in Code, a book about the problems of programming, begins by introducing a real-life example of one of these aging but reliable programs.

In the classes I teach involving web technology, I find myself having to defend some of the features I explain are already part of the technologies they use every day. Students don’t believe me when I explain that GET and POST in HTML forms are meaningful verbs, that caching is done through HTTP headers, or that JavaScript isn’t the only language that allows first-class functions. Most of the time, the way I defend myself is by explaining how old many of these ideas are. JavaScript, for example, borrows ideas from Scheme and Self and the “weird” things we do with JavaScript can be traced all the way back to Lambda calculus (which is really old).

My generation has been very lucky. Computers are fast. The low-level work has been abstracted for us. We have tools that let us know when our program is written incorrectly. People have become used to waiting while our programs pop up little spinners and progress bars. It’s no wonder that if you begin looking for articles about bad programmers, you’ll find that many of them were written around the time my generation was completing its college education.

A few technology companies have started making programmers look bad. Many mobile phone applications expected to react instantaneously when the screen is touched. Users visiting our websites expect to be able to perform many tasks without having to wait for the page to reload every time they click something. But instead of accepting these expectations, we complain about how much more work we need to do in order to make our programs function the way they should have in the first place.

If we’re serious about fixing our attitude, we will start to find that the new tools we have are incredibly similar to the tools that existed years ago that we never bothered to learn about. We never learned manual memory management because computers were powerful enough to do it for us. Then we started using mobile phones and computers weren’t as powerful anymore. We only learned one way of doing programming because we hoped it would become the one true language. Then we realized it was poorly suited to all but the most structured tasks. We never bothered learning about how web servers were designed to work because we thought everything would just be a file being shown on a monitor on a computer desk. Then users expected to be able to interact with a web page, view the data in a native mobile application, or access their data from a different web site.

The changes we are experiencing right now show that the advances in technology aren’t linear. This shift is moving backward and reincorporating the ideas of a generation before us. There will be many more. Some changes will use what we already know in new and interesting ways. Other changes will be totally sideways. If you intend to continue programming for years to come, at some point you’re going to have to start over.

1 comments