The Anders Norås Guide to Weird Computer Science
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.

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.

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 {}

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.

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

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

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?”.

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.

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?