C.S. on the cheap
The famous book publisher Hayward Cirker, the founder of Dover Publications built a fortune on finding obscure books that had either gone out of print or escaped publication altogether, and printing them himself. Among his many successes you’ll find amazing books on mathematics and physics including The Theory of Relativity, The Thirteen Books of the Elements and Number Theory.
Since I was a kid I’ve read, and loved, the Dover series on mathematics. Very often (although not always) the books were written in a gentle way, guiding the reader through an understanding of the basic principles and then building on them throughout the book.
Now imagine a series of computer science books along this vein.1
Reprints
Due to the difference in the publishing model of computer science texts it’s unlikely that there are many good books out there that not only follow a Dover-esque model, but that have also gone out of print. However, that’s not to say that there are not amazing books to be had given the existing material. Imagine this book:
The fantasy book “Augment” might include:2
- The essay “As We May Think” Vannevar Bush
- The essay “What Makes a Life Significant” by William James
- The essay “Augmenting Human Intellect: A Conceptual Framework” by Douglas Engelbart
- The essay “Engelbart’s Violin” by Stanislav Datskovskiy
Now, I have no idea if a book like this could ever see publication due to the rights involved, but I hope that the intent is clear. Another:
Might conceivably including:
- The essay “The Early History of Smalltalk” by Alan Kay, reformatted and cleaned up
- The essay “Design Principles Behind Smalltalk” by Dan Ingalls
- A literate version of a minimal Smalltalk parser and interpreter written in JavaScript
I would buy these books in a heartbeat.
Concepts
Additionally, I would love to see a series of new books geared toward solidifying a base level of knowledge and building toward more complex topics. For example:
And of course:
Or what about:
I’d like to read:
And also:
The possibilities are endless.
Existing books
There are books that right now fit into this model, including, but not limited to:
- Understanding Computation by Tom Stuart 3
- Common Lisp: A Gentle Introduction to Symbolic Computation by David S. Touretzky
- College Publications prints many uniquely focused C.S. texts. I’ve not read any of their offerings, but they look promising
The goal of such a small publisher like the one that I have in my dreams4 is to provide like-quality/accessibility books at a fraction of the price. In summary, the publisher would need to follow the following track:
- Accessible, yet comprehensive books on focused CS topics
- Low prices
- A mix of new material and out of print material
- Quality authors
- Timeless topics (i.e. no AJAX, no webdev)
- Leveraging online and EBook technology to the max
Can it be done?
Self-publishing
There is nothing stopping someone from going on to LuLu or Leanpub 5 and publishing these types of books right now. I would love to see them happen whether they come from a publishing house or through self-publishing channels. Just make it so. My money awaits.
:F 6
-
I see 6×9 paperbacks, perfect-bound or saddle-stitched depending on the page count. Full color with syntax highlighting would be ideal, but maybe too costly. ↩
-
As it stands the “Augment” book may be reality. The New Media Reader includes the essays listed above (Engelbart’s is an abridgment I believe) as well as essays and fiction by: Borges, Turing, Licklider, Sutherland, Negroponte, Nelson, Kay, Papert, Winograd and many others. It looks great. I’ve ordered a copy. ↩
-
Disclosure: I’ve not read it, but people whom I respect say that this book fits. ↩
-
This seems like a wonderful plan for a kick-starter, but alas I’m probably not the person to run it. I’d be happy to help though. (hint hint) ↩
-
In fact, I plan to try my hand at Leanpub some time this year. ↩
-
Cover images by aisforangie, 28misguidedsouls, jurek_durczak, crystalwriter and 17483452@N00. ↩
I don’t know how to break this to you but: writing books is hard. I have written computer science books at this level and you’re typically looking at less than 1000 copies if you’re fortunate. If the book is, as you say, “cheap”, you’re looking at no more than a $5 profit. You do the math.
by Foo on Jul 23, 2013 at 16:29:33
@Foo
Writing programming books is hard? Who knew?!
by Fogus on Jul 23, 2013 at 16:35:39
Typically people don’t write books like these for profit, but rather recognition.
With that recognition hopefully follows consulting which then leads to profit! :)
by Jay K. on Jul 23, 2013 at 16:45:13
@Foo
1) He didn’t say write them from scratch, but rather find out of print material and purchase the rights
2) I’m guessing he has a decent idea of how hard it is to write books: http://www.amazon.com/Michael-Fogus/e/B003REAZLU/
by Jason on Jul 23, 2013 at 17:23:26
There’s an actual Dover Publications programming book that I really enjoy: “An Introduction to Functional Programming Through Lambda Calculus” (http://www.amazon.com/gp/product/0486478831). So far it’s been enlightening, and even though it’s a 1989 reprint it doesn’t feel all that aged except for some of the semantics used (e.g. ALL_CAPS variable/function names).
The bibliography at the end is also a nice history lesson and very useful if you want to dig deeper into specific topics/paradigms the book touches on.
by Abe Voelker on Jul 23, 2013 at 17:39:07
Byte magazine has is on archive.org and you can read “Desgin Principals of Smalltalk” there.
by Andrew on Jul 23, 2013 at 18:07:23
Byte magazine is on archive.org and you can read “Desgin Principals of Smalltalk” there.
by Andrew on Jul 23, 2013 at 18:08:18
@Andrew
The books listed do not exist and only serve as an illustration of “flavor.” I’ve read that essay a few times, but never in the original Byte. Thanks.
by fogus on Jul 23, 2013 at 18:40:24
Even cheaper: go to just about any programmer, find the barely-touched copy of “TAoCP” on their bookshelf, and ask to borrow it for a few years. :-)
by Don on Jul 23, 2013 at 19:29:50
Does “Learn You a Haskell for Great Good” hit all the points?
by Justin on Jul 23, 2013 at 19:34:58
I think the someone (looking at you ACM) should publish a collection of the Turing Award papers: some of these are positively amazing (Ken Iverson and John Backus come to mind) and need to be more widely read.
by Tom Emerson on Jul 23, 2013 at 20:47:31
The Backus paper is great and I would pick up a collection of other Turing Award papers. ACM has published some “History of Programming Languages” books I picked up that are very interesting. Vol 1 was published in 1981 and is on Amazon (http://amzn.com/0127450408) and Vol 2, from 1996, is as well (http://amzn.com/0201895021). There’s a Vol 3 but I think it’s just in the Digital Library.
by James Curbo on Jul 24, 2013 at 00:04:39
@Fogus
Interesting idea. I would like to see more generalized computer science books too. Rather than focusing on a language or syntax, focus on an underlying principle. General CS for the win.
by Brett Hardin on Jul 24, 2013 at 06:12:14
Totally agree on the Dover books. Working on my math degree, I would always load up on $5 books that covered WAY more than the textbook. I still refer back to them, but I rarely touch the text I was supposed to be using.
by The One True Josh on Jul 24, 2013 at 11:54:00
Brett: That’s a great idea in principle, but hard to do well, and it tends to be met with complaints. All of the programming languages which are at all popular today are just loaded with incidental complexity. Some computer science authors solve this by inventing their own simple languages (most famously, Knuth did this), and then people complain that it’s not practical enough. Some authors use older, simpler languages (like Algol or Lisp), and again people complain that it’s not practical. Some authors write algorithms in pseudocode, and then people complain that it’s insufficiently rigorous (which it is), or that the minor language details which are ignored are actually significant in practice (which they are). Still other authors seem to try avoiding this problem by not including any source code at all, which has all the problems of pseudocode, plus the problem that the English description is 10 times as long (and 20 times as hard for non-English-speakers to decipher).
Personally, I think the linguistics folks have got it right. Rather than trying to abstract out the language, they recognize that underlying principles only have meaning because of language. When you show a principle, demonstrate it in a few different languages, even though you don’t assume that the reader is fluent in any of them. Demonstrating principles in one language is pointless, since no one language will exhibit everything you wish to show.
by Don on Jul 24, 2013 at 20:19:56
I love the Alex Grey art on Alan Kay’s book. Are you also a Tool fan?
by opyate on Jul 26, 2013 at 16:52:31
@opyate yes
by fogus on Jul 26, 2013 at 21:18:44