Sunday, March 08, 2009

Programmers' resources

I've recently been doing some Ruby coding and thinking about having a go at Python (VPython looks like fun!). I mentioned PLEAC in passing in my previous post, but another interesting site is Stack Overflow, which cropped up in response to a Ruby question I was googling. The odd thing is that I've never really used Stack Overflow before, despite the fact that it's been created by two guys, both of whose blogs I subscribe to. It has obviously picked up a few of the good points of PerlMonks. If it can build such a strong community, it'll be a great resource.

Friday, March 06, 2009

Programming books

You may think it odd, but I've read a few programming books, in various languages. Okay, I've skipped the reference chapters, and occasionally danced lightly across other bits that I found dull, but I've read the substance of them. The first was K&R, and it was a revelation. I'd done a bit of BASIC and a bit of assembler, but my ideas of programming were largely shaped by FORTRAN, specifically Data General's FORTRAN 5. Dynamic memory allocation was a new, and fascinating, concept.

I read K&R over a weekend. It helped that it was the first (pre-ANSI) edition, and quite short.

There was a time when I tried out a variety of Borland products. Turbo Pascal's manuals included an excellent introduction to OOP. Turbo C++'s documentation was very sparse by comparison. Borland C++'s documentation came on CD, with 10-volume dead-tree edition an option. I was never tempted to try to read it through. Borland C++ was vastly superior to Microsoft's product, but I've long since given up expecting the market to make rational choices. Borland continued to make innovative products. In a rational world Delphi should have wiped out VB. It spawned C++ Builder, which was in a class of its own, and JBuilder, which found itself up against some stiff competition.

But I digress. I read Stroustrup. It was hard work, but I got through it. It certainly didn't grab me in the same way as K&R (and it was a lot longer).

I wanted to like Eckel's Thinking in Java. I really did. To be fair, it's aimed at novice programmers, and covered far too much of the basics, far too thoroughly for my needs. I hadn't the patience to read it.

Next up was Perl. I read the llama, and learned a lot. It's hard to write three interesting chapters about regular expressions, but that book's a good introduction to the language. But it's still just a primer. For a full understanding of the language, you'd have to read the camel. But I couldn't. It's a good reference, but I couldn't find the motivation to read it. At this point, I have to mention Perl Cookbook. I haven't read that from cover to cover either, but it's an invaluable resource when writing Perl. (And while seeking a link for that last sentence I discovered PLEAC - I must investigate that further.)

After Perl, there were two other languages I wanted to explore (three if you count Lisp). Ruby and Python were the major contenders. At the time I was using NetBeans for Java development and NetBeans 6 came along with Ruby support out of the box. So I read The Pickaxe. Wow! This was the book I'd been looking for since K&R.

As with Eckel on Java, I really wanted to like Core Python Programming. The eight reviews on Amazon, all awarding it five stars, seemed almost too good to be true, but I felt if they were all part of a marketing exercise, somebody would have added a bad review. I'm finding it hard work.