Thursday, December 21, 2006

A Disillusioned Pragmatic Prgrammer

I finished reading The Pragmatic Programmer a few days ago. There were a lot of good ideas in the book, but mostly it can be summed up with continue learning, do things on purpose, and follow good standards. The good standards of course are object oriented programming, decoupling systems as much as possible, using test driven development, the DRY (don't repeat yourself) principle, etc. All of the good standards already existed outside this book, it just points out that a Pragmatic Programmer will do these. Some other tips that are made are as simple as "learn your editor really well". That makes sense. Anyone who wants to be as efficient as possible should take the time to learn the all the options available in their editing tool and the shortcut keys to be able to get more done at crunch time. It's worth the initial investment for the repeated payoff while using your tools.

However, after having completed the book, I was a bit disappointed in the continued support. There is a website the book says to go here for the code samples and up to date links. There are no code samples or up to date links. There are some bloggers listed, but only 2 of them have even written a post within the past month. The main authors of the book have not posted anything in several months. The website is only copyrighted through 2005. All in all the pragmatic programmer support seems to have dissolved. This is very disappointing. There are several good suggestions from the book that I was hoping to have some kind of follow up with. The book give a list of Knowledge Goals

  • Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut. Additionally, learning many languages is far easier now, thanks to the wealth of freely available software on the Internet.
  • Read a technical book each quarter. Bookstores are full of technical books on interesting topics related to your current project. Once you're in the habit, read a book a month. After you've mastered the technologies you're currently using, branch out and study some that don't relate to your project.
  • Read nontechnical books too. It is important to remember that computers are used by people--people whose needs you are trying to satisfy. Don't forget the human side of the equation.
  • Take classes. Look for interesting courses at your local community college or university, or perhaps at the next trade show that comes to town.
  • Participate in local user groups. Don't just go and listen, but actively participate. Isolation can be deadly to your career, find out what people are working on outside of your company.
  • Experiment with different environments. If you've worked only in Windows, play with Unix at home (the freely available Linux is perfect for this). If you've used only make files and an editor, try an IDE, and vice versa.
  • Stay current. Subscribe to trade magazines and other journals. Choose some that cover technology different from that of your current project.
  • Get wired. Want to know the ins and outs of a new language or other technology? Newsgroups are a great way to find out what experiences other people are having with it, the particular jargon they use, and so on. Surf the Web for papers, commercial sites, and any other sources of information you can find.
I thought that list was awesome. So what are the up to date suggestions for new languages with reasons to learn them? Which books are good? Is there anyone out there that's a windows user talking about his own struggles to do these same things? Nope. That is all completely left out of the website. They also link to a wiki, but the wiki too is in poor shape. I'm not up to fixing the Pragmatic Programmer community. I will however continue to do the things that I have, which are most of the suggestions made in the book. I will continue to document my own struggles.

Now to start my next book and start learning a new language. Tcl anyone? Nah, maybe LISP. Oops, I'm busy learning Java as a new language right now, I guess that will have to do and I'll continue to plug along with it.

1 comment:

myucha said...

I enjoyed reading the Pragmatic Programmer as well - Another great title was "Facts and Fallacies of Software Engineering" by Robert Glass.