October 2012

You are currently browsing the monthly archive for October 2012.

Being of a mathematical bent, I’ll start this series with my favorite books on algorithms. By this I mean books that describe the underlying concepts and algorithms of programming without regard to any particular language, though they may use a specific language to give examples.

Donald KnuthThe Art of Computer Programming (Volumes 1-4)

TAOCP is considered to be the authoritative computer programming algorithm treatise, even though only 4 of the planned 7 volumes have published and there is doubt whether Knuth (b. 1938) will live long enough to complete his plans. The books are amazing in their breadth and depth of coverage, and are not an easy read, but anything that can be gleaned from this set will be well worthwhile. Dr. Knuth is a fascinating person – he has designed and written a type-setting system and designed a technique for solving mathematical “exact cover” problems, of which Sudoku is probably the most famous example. Please read this true story which shows Dr. Knuth’s programming ability, and by all means Google him, and wander through the links. Fascinating.

Robert Sedgewick – Algorithms

As far as algorithms are concerned, this could be considered TAOCP “lite”, but only by comparison. It too is a heavy tome, weighing in at over 2 pounds (it is also available in Kindle format, however). Another advantage over TAOCP is that the examples are given in a high-level language, as opposed to Knuth’s MIX assembler language. The original Pascal examples have been re-written in Java, so they are also accessible to all you C# people. Note that the algorithms referred to here are those of discrete mathematics: queues, stacks, graphs, trees, etc.

Thomas H. Cormen, et al – Introduction to Algorithms

Suffice it to say that this is the most commonly used college textbook on this topic. One topic covered especially well, and not at all in the other books (but give Knuth some time) is multi-threading.

These are the three most famous books on algorithms, but feel free to give some feedback with your favorites or criticisms of these.

 

I decry the current tendency to seek patents on algorithms. There are better ways to earn a living than to prevent other people from making use of one’s contributions to computer science. – Donald Knuth (19??)

I am starting a series of blogs on what I feel are the “best” programming books I have run across in my career. While the title says “Programming”, I really mean to capture all facets of IT – design, program management, etc. I have been doing this stuff since before most of you were born, but I’ll try to keep my choices to those books that are still in print. (No papayri or chiseled stone tablets.Smile)

I have chosen some arbitrary categories, and will treat each one in a separate post. Please make this truly interactive and chime in with your comments. As well as a learning experience, this is a great way to share with others what has helped you.

To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge. – Dr. Grace Hopper – USN Ret. (Everyone in the IT field should know of this remarkable woman. More on her in a future blog.)

Channel 9 is a Microsoft-sponsored video blog with the latest breaking news on releases, hands-on sessions on new and emerging technologies, and other Microsoft-related news. It can be accessed at:

channel9.msdn.com

I get it streamed via Tivo so I can see it large-screen, and I would be surprised if the newer “smart” TVs didn’t also have this capability built-in. However you get it, it is worth an hour of your time here and there to at least check out the content.

The internet? We are not interested in it.Bill Gates (1993)

As I have mentioned before, training and education are two of my interests. As a manager, I am often asked why the company doesn’t pay for training. In some cases we do; in other cases I refer them to this excerpt from The Clean Coder by R. Martin. This is a wonderful book, and I heartily recommend it to everyone involved with anything to do with programming, and will be quoting from it frequently in these posts.

I have never let my schooling interfere with my education.Mark Twain (18??)