Saturday, July 10, 2010

MovableType and Code Complete

Some objectives

  I've set up this little whiteboard in the back of my room with a list of things I need to do in the near future. On it I have a few things written like:


  • Find a creative writing class
  • Set up movable type blog
  • Write resume
  • Take some time to play with the scheme debugger.
 Today I decided to tackle the second one of those. I felt I should really move to movable type. I setup a hosting account, got a domain name, and installed movable type, but while it was nice, I came to the realization that ultimately for what I want to do blogger should be more than up to the job. The time I could've spent making my Movable Type pretty could have been better spent on other things like reading or programming.

  Maintaining a blog, and a few static pages. Once I get that resume rewritten, I should have it up here. The advice from Andy Lester's "Find the tech job you love" should come in very useful. I'd heartily recommend it to anyone who wants to keep on top of their game even if they're not currently looking.

Code Complete

  Code Complete(by Steve McConnell) is that book I wish I'd read when I started out programming. Steve McConnell(SMC) considers it the first book on code construction, and I think it's only fair to admit that's the case, and it should probably be required reading for any serious programmer.
  The book as a whole is highly pragmatic. SMC avoids religious wars and accepts the validity of certain practices while warning strongly about their associated dangers and risks. He thoroughly references everything, covering it with statistics from past research. His advice is solid and can be applied immediately.

  Some highlights for me:
  • Chapter 9. The Pseudocode Programming Process. This chapter describes a way of writing code by starting out with a general description of what a routine does. From there it is fleshed out into code, and the final result is a well commented routine that makes sense. If you've ever gone back to a piece of code that you wrote a long time ago, trying to figure out what it does, this may well be what you need.
  • Chapter 11. The Power of Variable Names. Unfortunately for myself, I don't take much time to think of variable names. I think of the first thing that kind of describes a variable and have no rules for how I lay them out. At least until now. 
  • Chapter 25. Code-Tuning Strategies. I'm pretty confident with optimization. Chapter 26 (Code-Tuning Techniques) was pretty much all familiar territory. But this chapter really kicked my ass. Until now, I have tended to optimize from the get go, and believed that makes me a superior programmer. An unfortunate attitude which SMC has succeeded in changing my outlook on. To summarize his approach: keep it simple and readable, find the bottlenecks, then fix them. Simple code is going to be easier to maintain in the first place, and optimizing it will certainly be less effort.
  • Chapter 28. Managing Construction. This chapter did a good job of describing how I'd like to see software managers work. 28.6. Managing Your Manager was a good laugh, if unfortunate.
  • Chapter 33. Personal Character. An excellent breakdown of qualities it takes to become a great programmer. I went on to read Djikstra's the humble programmer afterwards. In a field as complex as software development, accepting that complexity, and breaking down complex issues into simpler parts our simple brains can handle is an important task, and the ability to admit our own lacking there is important.
  I don't think it can ever be too late to read this excellent book, and I will be sure to review it from time to time in the future.

Joining the ACM

  I joined the ACM not too long ago and it has certainly been worth it so far. Access to a huge backlog of journal articles and back issues of Communications of the ACM is already great, in addition gaining access to a boatload of books and courses is the topping to the cake. The available book collections contain most of the books I have recently bought, which is making me feel just a bit silly. In fact, I left my copy of Code Complete at work after completing it, but in writing this simple opinion piece, I was simply able to refer to the copy I have access to via online.

No comments: