Quirky computing books
github.com
github.com
My dad purchased it for me when I was nine. He didn't know how to program, but he took a stab in the dark. I diligently read through the whole book and worked through all of the lessons. It's written in a conversational, narrative style about a college course where the students produce a piece of software for a china shop.
I think you'd be hard-pressed to actually derive much value from this book unless you're keen to learn an antiquated version of Visual Basic and have the patience for a book targeted at absolute beginners, but it's definitely quirky. And for me, holds a lot of sentimental value.
[0] https://www.amazon.com/Learn-Program-Visual-Basic-6/dp/19027...
- The Plenitude - Rich Gold
Not a computing book with code but it taught me a lot about what can be done with computers, and that they are marvelous machines.
- Architecture of Symbolic Computers - Kogge
An ode to what could have been if RISC and x86 hadn't steamrolled the landscape.
- Thinking Forth - Leo Brodie
Forth is wild, this book is wild, it's really a different world. After multiple attempts over 25 years, I'm giving it another go this year and this time it is actually clicking.
- Malicious Cryptography: Exposing Cryptovirology - Adam Young, Moti Yung
This is way out of my league in terms of cryptography, but this fascinated me early in my career, and led me to implement one or the other algorithm. Very prescient in many ways.
- Patterns of Software - Richard Gabriel
Not directly about computing, but I got a lot of deep insights from this book. It also brought me to the next book:
- Notes on the synthesis of form - Christopher Alexander
This is not a computing book per se, but it goes to the core of system architecture. Even in its original field, this book is kind of wild.
- All Mathematica Guidebooks - Michael Trott
Mathematica is wild, these books are wild, they are old but still oh so inspiring.
> Mathematica is wild, these books are wild, they are old but still oh so inspiring.
Great recommendation. Are these so old? I skimmed through [1] and they seem still on print and relevant?
What is other inspiring Mathematica literature? I have been considering Mathematica to cover some of the gaps Julia (and R or Python have). Particularly in the symbolics camp [2].
It's also nice Mathematica is free on Raspberry Pi, but it might be too slow to be of any practical use.
[1] http://www.mathematicaguidebooks.org
[2] https://www.12000.org/my_notes/CAS_integration_tests/reports...
Power Programming Mathematica: The Kernel.
It's (legally) free, you can find PDFs.
Bonus: I love weird books covers. This one is charming. Am I the only one that notices that the barbell is bending upwards?
The Architecture of Symbolic Computers by Kogge looks very interesting; covering Function-based computing and Logic-based computing.
"the epic of the computer revolution, the bible of the hacker dream. [Nelson] was stubborn enough to publish it when no one else seemed to think it was a good idea." https://en.wikipedia.org/wiki/Computer_Lib/Dream_Machines
Certainly quirky, it was also one of the best attempts to capture why the Mac was different, why UX mattered, and codified for a young me a certain way of thinking about apps just as much as the Hacker Dictionary did for an earlier era.
The personality of its editor, Arthur Naiman, also shone through. I was sad to see when looking him up that he died in 2019. Short obituary here: https://www.legacy.com/us/obituaries/sfgate/name/arthur-naim...
But if it’s the same manual I had for that same printer, it was hysterical. For example at one point they showed how to generate arbitrary graphics for the 7 (I think) pin head by encoding as binary. Then just before the next section the manual said something like “now before you run off to forge a copy of the Mona Lisa…”
https://books.google.com/books/about/Illustrating_BASIC.html...
It's entirely hand-lettered. The author's afterword remarks that an attentive reader will notice the shakier lettering toward the end of the book.
He wrote a couple other books on programming (I think he did Illustrating Pascal). It's a quirky approach, but very friendly and unintimidating compared to vanilla textbooks.
https://archive.org/details/cambridge-university-press-illus...
One of my favorite books ever.
I think it's in storage just now :-/
This was one of the required books in Leslie Kaelbling's intro AI or robotics courses.
The preview on Amazon might cut a little too early before (IIRC) some seemingly complex behavior emerging from very simple mechanics really clicks.
We'd been learning Prolog in class for the past two weeks but I'm terrible at learning from lectures, so eventually I decided it'd be a better use of my time to locate a book I could teach myself from rather than doodling in class.
IIRC it hadn't been checked out since the 80's: it was a slim volume on Prolog with an Alice in Wonderland theme. I can't remember the title or anything, but it was an enjoyable read, and effective: I still hadn't written any Prolog at the time of the exam—which I remember was 4 days out at the time I picked up the book— but I understood it well enough by then to solve all the problems without flaw including some extra credit challenge problem :)
Has anyone else come across this book?
[0]http://libgen.is/search.php?&req=Prolog&phrase=1&view=simple...
But I did come across this gem which I'm browsing now lol: "Prolog Versus You: An Introduction to Logic Programming"
The book revolves around teaching prolog by showing you how to make text adventure games. It is pretty neat.
Computers in Education: Prolog as a Cognitive Tool
page 368 has a few stuff around "Alice in Wonderland"
It is not the one I used though: the entire book was Alice in Wonderland themed.
The one in the library was ~200 pages, solely on prolog, Alice in Wonderland not only on the cover art, but constantly used throughout the writing itself.
I've searched and searched and can't find any Prolog book that matches this description. Hopefully you're able to find or remember it.
Woody introduced a series of characters, each with their own personality & level of familiarity with Windows itself, then used them in asides to explain things. The great thing about those books (and something I seldom see anymore) is that they were really great about riding the line between 'the power button is the button you press to turn the computer on' and 'the A20 gate defines when low memory etc. etc. etc.'
Having the characters gave a great way to get super-deep into minutiae but let the reader know they could skip if it didn't interest them, plus their interactions with each other were really fun.
Also, and I'm sure most people know him already, I always really loved how David Pogue would put weird little stories or dialog in the examples he'd give when demonstrating a program. Like I think Macs for Dummies had a bit where his Word examples had a really flowery story about a guy riding a rollercoaster or something. Really influenced me, whenever I create a demo UI or example page I try not to use boring "This is example text" or "Lorem ipsum."
Let's Talk Lisp, by Laurent Siklóssy
Robots On Your Doorstep, by Nels Winkless and Iben Browning
The user guide is written as a conversation between the "author" and a cartoon picture of a key (button) with a face, arms and legs. The key represents the impatient and inquisitive user who can't wait to start using the device. It's worth remembering that most users where unfamiliar with computer jargon:
<author> Don't worry: correcting is easy but first you must learn about COMMANDS.
<cartoon key> Sounds a bit military!
---
<Section title> Carriage-returns
<cartoon key> Train going backwards?
<author> No!
---
Microwriter New user's guide [PDF, 18mb] https://www.microsoft.com/buxtoncollection/a/pdf/Microwriter...
Aside: Bill Buxton, the computer scientist and designer, had this to say of the guide: "I think that the New User’s Guide is one of the best examples of technical writing that I have ever seen in a user’s manual. I love the parallel use of different representations to get the message across. I really appreciated it when I was learning, and think that the manual is worth studying for its approach."
I remember specifically learning about flip-flops from the book, and wondering what sort of crazy magical physics made it work. It took me 20 years to finally learn it simply has to do with the timing of the electrical signal as it propagates around the gates [3].
Re-reading it again now, it's actually a surprisingly thorough overview of the history and fundamentals of computer science. I had forgotten.
1. http://www.larrygonick.com/titles/science/the-cartoon-guide-...
2. https://archive.org/details/TheCartoonGuideToComputerScience
I'll add that really ALL of his 'Cartoon' books are worth a read.
Definitely, or at least every one of them I've seen.
at least read the excellent anti-preface by Ritchie. It's hilarious.
Among his admonitions for writing user manuals is this:
Read. Books on overall style are a matter of personal taste. Our own favourite is Strunk (1959). As examples of good writing on technical matters, we especially like the works of D. E. Knuth and of M. V. Wilkes, and also the book "Software Tools" (Kernighan and Plauger, 1976). Perhaps the most pleasant of all writing on technical matters is in the field of gardening, not computing; read "The Small Garden" by Lucas Phillips (1952) and not only your turnips but also you writing will improve.
For example: Scheme 9 from Empty Space (http://t3x.org/s9book/), LISP from Nothing (http://t3x.org/lfn/), but also Write Your Own Compiler (http://t3x.org/t3x/book.html).
Entertaining and informative. Highly recommended.
Just because there is more unnecessary cruft and complexity in today's systems and tools does not mean the fundamentals/techniques are invalidated.
I still see it recommended as a practical book however and indeed the book bills itself as "the second book you need on C", the book that will cover topics that other C books don't explain or explain poorly. But it's much too outdated to serve that purpose. In practice it means chapters discussing differences between K&R C and ANSI C and deep-dives into details of SunOS and MS-DOS compilers.
Some of the material has become misleading because the C language has evolved. For example, there's a lot of discussion about pointers and arrays, as can be expected. But there's no mention of strict aliasing and pointer provenance (these rules existed in C89, but compilers at the time didn't exploit them yet for optimization). And of course no variable-length arrays (introduced in C99). So you're not going to learn what you need to know in today's world.
The book also has almost no discussion about safety. The Morris worm is mentioned, but just as a piece of historical trivia. Browsing it now, I don't even find any discussion about buffer overflows.
I've been feeling nostalgic lately and playing around with Turbo C in DOSBox, so I'll definitely check it out.
[0] https://archive.org/details/1.-expert-c-programming-deep-c-s...
It’s such a fun and quirky book on so many levels and I really believe it was a major factor in setting the tone of the entire Perl community.
https://users.ece.cmu.edu/~koopman/stack_computers/index.htm...
(The book is free to download by the author.)
Fairly fresh into comp arch, this book really highlighted for me the interaction of HW and SW, and how from a minimal arch we can build and improve it. I'm still sad that stack modern architectures didn't take off as Koopman envisioned it.
"Elementary Basic, as chronicled by John H. Watson" (1982)
https://archive.org/details/elementarybasica00ledg/mode/2up
https://archive.org/details/elementarybasica0000unse/mode/2u...
(They're amongst the archive.org books that need to be "borrowed", unfortunately. First few pages including the index can be browsed freely though.)
Might qualify as quirky.
Felt like I was really learning some important arcane knowledge reading this and testing out the commands in grade school.
At the time of purchase, the computer shop owner suggested I was wasting my time because computers would be programming themselves in ten years, or something like that.
https://archive.org/details/connectionmachin00hill
Describes the motivations for and design of a massively parallel computer with many (millions? 64k?) of very simple processing nodes that serve as both memory and CPU. Shows how you can have "active data structures" where each item of data is in a different CPU (or clusters of nearby CPUs) and literally migrates between CPUs as computation proceeds. I think it gives an example of the parallel bitonic sort algorithm being executed in this way. A relatively thin book and relatively easy to read for a programmer.
You can also read Hillis's thesis:
https://dspace.mit.edu/bitstream/handle/1721.1/14719/1852428...
I don't know if Carlton Egremont III is a real person, but this book, at the time, tweaked all the noses.
Does this ring a bell for anyone? Maayybe this book? https://www.amazon.com/gp/product/0262510693/
(Search engines have become awful for a quirky search like this.)
It looked like they hadn’t bought any new programming books in a while either; there didn’t seem to be any newer than about 2010. They also had a book on programming with Python on Symbian (Nokia’s pre-iPhone/Android smartphone OS)!
Which I hope someone will restart eventually :D
I remember going through the first 6 chapters and often going on the CommonLisp channel on free node to ask questions and eventually found out it was either wrong or misleading in many of the fundamentals. I tried to keep going through it but eventually gave up and picked the much better practical common lisp.
Great language, toxic community.
The Little Schemer series
Land of Lisp
Why’s Poignant Guide to Ruby
While it is written in an adolescent confrontational style that doesn’t help the author’s cause, it is otherwise a very thorough introduction to Lisp macro programming. The last chapter is about writing a Forth compiler in Lisp. Great stuff.
Programming Pearls - by Jon L. Bentley (1986) ISBN:9780201103311
It's an amazing collection of... small stories (the chapters were originally published as ACM articles I believe). Nowadays they read like a crossover between Codegolf and Martin Fowler's collected articles, but I still like to pull by paper copy out every 10 years or so and reread it.
(There was also a second volume, and I believe a "re-edition" published in year 2000, but I'd go for the original for its specific charm).
https://ai.googleblog.com/2006/06/extra-extra-read-all-about...
But if the idea is both quirky and rare/obscure, I can understand why¬_why.
Find it here: https://eighty-twenty.org/2022/06/23/henderson-functional-op...
* Confessions of a Used Program Salesman: Institutionalizing Software Reuse by Will Tracz.
* The Elements of Networking Style: And Other Essays & Animadversions on the Art of Intercomputer Networking by Mike Padlipsky.
seconding this recommendation from the OP. I sold my copy ~20 years ago but remember it as quite good.
There were 5 books in the box, a complete guide to RDBMS and SQL and so on. There I learned about normalization.
I love random books about obscure or niche technical subjects, but I usually only find them accidentally.
I have 1785 favorited submissions over the 5 years since I found the feature; I really need to capture all of them and their links, would be a shame to lose all of that information if HN goes away.