The Anders Norås Guide to Weird Computer Science

Published 08 September 08 03:30 AM | andersnoras 

Last weekend I met with Johannes for a couple of beers at Mono. As always, our discussions got quite esoteric and one of the things we talked about was weird computer science books. If you’re anything like me, you steer away from the mass produced “Teach yourself something in 24 hours” titles and head for the ones that really stand out. In the wake of our discussion I figured I’d write up the “Anders Norås Guide to Weird Computer Science Books” so here goes.

Max Objektorienterar

First off is the Swedish classic “Max Objectorienterar”. This is a children’s book about young Max who explores the wonderful world of object oriented programming. The book has wonderful illustrations by Eva Eriksson depicting childish UML diagrams.

MaxObjektorienterar

There is also an English translation of the book available, but this one is not as good as the original Swedish title because the names of OO concepts don’t resemble English names in the same way they do in Swedish. “Titta Arve” has the double meaning of “Look Arve (name)” and “Look, inheritance”.

(Yes. I know this is not a real book, but it is still better than most teach yourself OO titles.)

The Little Schemer

The Little Schemer by Daniel P. Friedman and Matthias Felleisen is by all means a serious computer science title, but the style of writing and the illustrations in the book are very different from what you’re used to.

Little Schemer

I first got introduced to this wonderful book when my ex-girlfriend studied informatics for humanists at the University of Oslo. At this course they wrote little Scheme programs to learn how to think logically - something my ex really could get better at. Just like Scheme, the book is a little challenging at first, but once you get used to it you’ll be reading the lambda expressions like your ABC. Here is an example taken from the book to give you a feel of what this is about:


Are you in the mood for caviar?                  Then we must go looking for it.

What is (looking a lat)                          #t, 
where a is caviar is obviously in lat.
and
lat is (6 2 4 caviar 5 7 3)

(looking a lat)                                  #f
where a is caviar
and
lat is (6 2 grits caviar 5 7 3)

Where you expecting something different?         Yes, caviar is still in lat.

True enough, but what is the first number        6.
in the lat?

And what is the sixth element of the lat?        7.

And what is the seventh element?                 3.

So looking clearly can't find caviar.            True enough.
because the third element is grits, which
doesn't even resemble caviar.

Here is looking                                  We did not expect you to know this.
(define looking)
(lambda (a lat)
(keep-looking a (pick 1 lat) lat)))

Write keep looking.

Strange isn’t it? The Little Schemer is the follow up to The Little Lisper. There are also a few other interesting titles in the series, all written in the same quirky style. Here is an excerpt from “A Little Java, A Few Patterns”:


Let's define more Seasioning                     We can have lots of Seasonings
class Thyme extends Seasoning {} class Sage extends Seasoning {}

A Little Java

Quirky recursiveness topped off with lots of cute drawing of elephants and mice, or dancing coffee cups if you’re more into Java than functional programming, explaining the fundamentals of programming makes a perfect combination.

Mr. Bunny’s Big Cup O’Java

“Let me guess,” said Mr. Bunny. “This time it’s Java.”

“How did you know?” asked Farmer Jake. He wondered with a flush of embarrassment if all his predicaments were so predictable.

“Are you going to tell me Java is a new way of controlling my pixels?” asked the farmer, proudly remembering his last adventure with the bright little bunny.

Farmer Jake could still say “pixel”!

“Oh, Java is designed to control much more than your pixels.” said Mr. Bunny. “Java is a new way to control that big fertilizer company in Redwash County.”

Farmer Jake nodded thoughtfully.

“Jake makes a simple promise to the programming community.” continued the rabbit.

“That we’ll be free at last?” asked Farmer Jake.

“That you’ll never run out of work.” said Mr. Bunny. “With Java, programs can be written once, and can break on almost any platform.”

Mr. Bunny quickly sketched a diagram in the dirt.

“Wow,” said Farmer Jake. “Is it really that easy?”

“Sure”, said Mr. Bunny with a wink. “Now let’s sin a little song.”

And so Mr. Bunny began to sing, and Farmer Jake sang along, to the tune of “When You Wish Upon a Star.”

If Daniel P. Freidman’s style isn’t quite you’re cup of tea, maybe a big cup of Java is the way to go? “Mr. Bunny’s Big Cup O’Java” by Carlton Egremont is another favorite of mine.

Big Cuppa

You won’t learn a thing about Java programming from reading this book, but you’ll laugh your heart out. The illustrations used through out the book are spot-on satire on the too tired square, triangle and circle ones we see in technical books, documents or articles every day. The examples used to explain the different concepts in the language are hilarious, for instance interfaces are explained through a story of a guy who is the major, the sheriff, a painter and a load of other things at once. Coming to think of it, no other book ever has made the concept of interfaces as roles as clear as “big cuppa” does.

Mr. Bunny’s Guide to ActiveX

Active x

In Visual Basic, you form windows using forms. A form is a window that you form. At first forms are unformed. You must form your forms using the form designer (formerly the former). In the form former, an unformed form forms a uniform formation….

Mr. Bunny’s Guide to ActiveX was the first of the Mr. Bunny series, and it is even more hilarious than the Java title. It is in this book we get introduced to the most basic building block in computer software, which is referenced opening of the “Big cuppa” book (above), the pixel. Just like the other Mr. Bunny book, this is a nonsensical book on ActiveX programming filled to the rim with injokes on the technology. There are jokes on every aspect of Windows programming, and you’ll find answers to questions you never though you’d ask like “How is ActiveX diffrent from ActiveY?”. Egremont even manages to be funny about CLSIDs - pure class!

I am a Bug

I am a bug

Robert Sabourin’s I am a Bug is a picture book illustrated by his 12 year old daughter intended for parents in the software business who want to explain what they do to their kids. The book is focused at the quality assurance aspects of our trade, and it is just as useful when explaining QA to executives as when explaining to children.

Mommy, Why is There a Server in the House?

“When daddy loves mommy very much, he buys her a stay-at-home server.” Speaking of children’s books, we can’t forget Dr. Tom O’Connor’s excellent “Mommy, Why is There a Server in the House?”.

Stay at Home

This book is not a real children’s book, but rather clever marketing for a Microsoft product. If you don’t feel like spending $6 on marketing material, you can always read it online at: http://www.stayathomeserver.com/book.aspx

Why’s (poignant) guide to Ruby

While I felt like I was high on some weird drug many a time whilst writing this guide, there is no book more spaced out than “Why’s (poignant) guide to Ruby.”. This one is just plain and simple ridiculously funny, with the added bonus that you might actually learn a thing or two about Ruby along the way. This book is packed with weird and wonderful drawings, photo montages and cartoons, quirky code samples and lots of humor. This is a must-read for any developer, and whether you actually care about Ruby or not doesn’t really matter.

The.Foxes 6

Treat yourself and go off to read some of these titles. They are much funnier than this sad blog ever will be. Who knows, maybe you’ll learn something as well?

Filed under: ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Lars Wilhelmsen said on September 8, 2008 12:42 PM:

Nice one, Anders!

I will definitely by the first book to my son for Christmas (he's 14 months now and really into computers :-D )

--larsw

# Johannes Brodwall said on September 8, 2008 2:41 PM:

What a blast from the past. Great summary, Anders.

And you notice everything new all the time. What's the third subclass of Food in Sam's objects? :-)

And whatever you do, DO NOT under any circumstances listen to the soundtrack to "Why's Poignant Guide to Ruby".

# John St. Clair said on September 9, 2008 11:43 PM:

Hey Anders,

Great to see you again at MSDN Live. So, to add to your list, check out Nobody Knows Shoes:

http://hackety.org/press/

# andersnoras said on September 14, 2008 2:08 PM:

@John;

Wow. Can't believe that I've missed out on Shoes! Its an instant classic - dare I say the programming book equivalent to James Joyce's Finnegan's Wake?

The Shoes framework looks nice too, need to take it for a spin someday.

Leave a Comment

(required) 
(optional)
(required) 
Enter the code you see below