Wednesday, April 30, 2008

Why Johnny Coder Doesn't Read

I ran across a blog post today about how most software developers don't read. This is noteworthy because the technology for writing software innovates at a very high rate. How can today's coders keep up if they don't read about new technology? The article conflicts itself about whether or not developers learn about new technology online instead of through books. The major reason given as to why coders don't read books is the lack of quality in the content of the books being published. The author then gives some recommendations for books that he believes coders should read.

I totally agree on the quality issue. Most books on writing software simply stink. They are all about screen shots and "click here, type this" descriptions from the lowest paid geek that the publishing house can find. There are some good books out there written by quality writers but they are in the minority.

Quality isn't the only reason why coders don't read books. Economics is another. The fast pace of innovation dramatically reduces the shelf life of most books on programming that are specific to a particular technology. Microsoft produces a major release of .NET about once every year. Sun Microsystems releases a major release of Java about every two years. The corresponding after market books go for $50 to $75 (USD) a pop. Add to that the fact that the project you are working on most probably won't be able to upgrade to the new version and you quickly find yourself coming to the conclusion that purchasing these books don't have a good ROI.

Another reason why programming books aren't being read by coders is learning modality. Everyone has different experiences which affect how they learn. So, everyone learns differently. What order that facts are presented in a teaching environment affects learning efficacy on a per student basis. Books can't change the order that facts are presented but web sites can because the reader interacts with the content in his or her navigation choices. Obviously, the traditional classroom setting is also sufficiently interactive enough such that a good teacher can get the message across to his motivated students effectively.

I totally agree with the author's book recommendations. Those are some great books to read. You will be a better coder for reading them. In addition to these, permit me to recommend a few more. You may not be a C coder but do read Kernighan and Pike's The Practice of Programming which gives you a great taste for the craft of writing quality code. Most business level development these days is object oriented. If you do anything even similar to object oriented programming, then you owe it to yourself and your employer to read Design Patterns by Gamma, Helm, Johnson, and Vlissides (a.k.a GoF). These two books have a very long shelf life.

Why don't I recommend more books than these? Because, like I said before, people are different. Different strokes for different folks. The book that really does it for me may not work for you. So, get thee to the bookstore (physical or virtual) and leaf through what is available. Look at the writer's style. Pick a topic of interest from the table of contents and read the introductory paragraph. Rinse and repeat until you find the book that you feel is the most lucid and educational for you.

You may be unclear as to what topics that you should be reading about. Well, most modern business application developers should be interested in data access. It is very likely that you will be coding web applications so you should be quite hip to the following standards; HTTP, HTML, SOAP, and CSS. Another interesting platform neutral topic is AOP.

As far as platform specific reading, again, find the right book for you. Looking over my own bookshelf, I can't help but notice the following publishers keep appearing over and over again; O'Reilly, Addison Wesley, Apress, and Prentice Hall Professional. Not a lot here from Wrox or SAMS to be honest. I'm on the fence with IDG, Manning and McGraw Hill. I only have two books from New Riders but they are both good.

Software architects need to go the extra distance to read about competing platforms. Why? How can you make the right choice if you aren't aware of the alternatives? If you don't like to read, then don't become a software architect. Go here for a good list of buzzwords to start your reading list with.

Saturday, April 26, 2008

By Any Other Name

I ran across an opinion piece on CNet calling for the dropping of the term Web 2.0 in favor of something else. The "2.0" thing is really a clever way of saying "the next generation" or "a new way of doing something" and implies innovation. The piece is actually about how small companies re-invent and innovate in the first wave of a new thing while the big companies secretly sit back and learn from these efforts. Then, the big companies come in with deep pockets and take over.

Perhaps it is time to look for something a little more accurate than "web 2.0" but "user generated content" is a little too awkward for marketing buzz. In the interest of full disclosure, I must confess that I also succumbed to this cliché when I named the open source Web 2.0 News Portal project.

What would be a better name? Perhaps we should incorporate the term wiki in it since that term was used to describe one of the first online, collaborative web applications. However, that application really was a precursor to what we now know as "web 2.0" and doesn't really focus on any of the social media aspects of web 2.0

What do you think? What would be a better categorical term for web 2.0?

Wednesday, April 16, 2008

The Human Hive Mind

No, this isn't a blog about the borg. Recently, I ran across an article or two on how products such as delver and twine use social networking APIs and semantic web standards to make search results more intelligent. The idea here is that you pick friends based on what you have in common with them. In which case, it stands to reason that what they think as relevant is a reasonable determinant for what you think is relevant.

This is an offshoot on what is more commonly known as collective intelligence. I first ran across this on the web with the google search engine which capitalizes on the science of predictive markets to provide those miraculously relevant search results at the top of the screen. Books such as the Cluetrain Manifesto and Wikinomics predict and expound on the power and inevitability of collective intelligence and the web, where physical proximity has no affect on cost, as a most excellent way of catalyzing collective intelligence.

April 28 Update: I ran across an article recently called Gin, Television, and Social Surplus that presented a different and interesting take on collective intelligence. The author based this on a speech that he gave at a recent conference on Web 2.0 technology and cultural impact. His upshot it this. One place to go looking for collective intelligence is to siphon off a little bit of the enormous amount of time that people spend watching television.

Sunday, April 6, 2008

Blogging Considered Harmful

As a blogger, I feel compelled to blog about this NY Times front page article on the health perils of blogging. Apparently, some high profile bloggers have recently suffered heart attacks. Without benefit of any kind of scientific or statistical research, the piece attempts to paint a world where bloggers and smokers share the same fate.

I blog as a hobby and not for pay so I am not exactly an expert on this subject. One of the reasons why I do not attempt to blog for pay is precisely what the article addresses. There is little to no money in it. To make a living off of it does require long hours.

It's not unlike the economics of food production. The person who picks the crop and the person who rings up the purchase makes the least amount of money. It's the people in between who stand to earn (or lose) the most for their bottom line. The blogger is like that person working in the fields. It's the content aggregator or publisher who stands to make (or lose) the most amount of cash in that world.

There is a book entitled Wikinomics that I consider as the sequel to The Cluetrain Manifesto. I'm sure that you have heard the phrase "content is king." These books make the case that the new content that is king is user supplied. This world is not about the cult of personality which is why blogging alone is a very hard way to get rich.