I've peruse the classics--Structure and Interpretation of Computer Programs, Paradigms of Artificial Intelligence Programming--but I'd akin to emphasize several of the additional esoteric books which affected my thinking.
Zen of Assembly Language
Michael Abrash, 1990
I spent much of the 1980s penning 8-bit device games (which you can read about if you like). Odd as it may appear in retrospect, considering the related power of an 8-bit 6502 operating at sub 2 MHz, I wasn't obsessed alongside optimizing for performance. If anything, I wanted the code to be small, a flank consequence of using a line-based publishing company and penning programs that person would have to painstakingly category in from a mag listing. Pages of DATA 0AFF6CA900004021... ugh.
Right whenever that duration of my existence came to a close, alongside came Zen of Assembly Language, by an author I had never heard of, which dissected, explained, and extended the self-taught tricks from my years as a solitary gathering hacker. Even although Abrash was focused on the 8086 and not the 6502, it felt akin the publish was written personally to me.
This is additionally among the most bizarrely delayed specialized publish releases I can recall. The bulk of the publish was concerning detailed optimization for the 8088 and 8086, yet it was published whenever the 80486 was showing up in high-end desktop PCs.
Scientific Forth
Julian Noble, 1992
Fractals, Visualization, and J
Clifford Reiter, 2000
These two books are concerning entirely distinct subjects. One is concerning clean specialized computation. The another is concerning generating images. Each uses a different, wildly non-mainstream tongue for the included code.
And yet these two books prosecute the identical broad approach, one I desire were additional commonly used. Superficially, the authors have written introductions to particular programming languages (which is why the tongue name is in the title). But in actuality it's additional that all author has an area of profound ability and has established a tongue that enables experimenting alongside and penning code to resolve problems in that field. As such, there aren't forced examples and toy problems, but serious, non-trivial programs that display a tongue in genuine use. Dr. Noble demonstrates how he uses Forth for hardcore matrix activity and, whenever he realizes that RPN notation isn't ideal in all circumstances, develops a translator from infix expressions to Forth. Clifford Reiter jumps into depiction handling algorithms, affirmative veers into lighter importance diversions alongside titles akin "R/S Analysis, the Hurst Exponent, and Sunspots."
Both books are fantastic alternatives to the customary "Learning Programing Language of the Month" texts. Sadly, Julian Noble died in 2007.
Programmers At Work
Susan Lammers, 1986
I used to soak up printed interviews alongside programmers and equivalent designers (and typically equivalent designers were programmers as well). I was enthralled by Levy's Hackers, additional the equivalent betterment division than the rest. Programmers At Work was in the identical vein: philosophies, ideas, and experiences immediately from an odd mix of celebrated and quirky programmers. But the publish wasn't chiefly concerning tech. It was concerning creativity. Most of the group interviewed didn't have degrees in device science. There wasn't an accent on math, proving programs correct, lambda calculus--just group coming up alongside ideas and implementing them. And the equivalent association was there: Jaron Lanier talking concerning the psychedelic Moon Dust for the Commodore 64, Bill Budge's bold (and motionless unfulfilled) scheme to build a "Construction Set Construction Set."
Lammers's publish was the example I used whenever I put together Halcyon Days. I additionally pulled Hackers into the mix by interviewing John Harris concerning his dissatisfaction alongside Levy's display of him. In an odd twist of fate, Programmers at Work and Halcyon Days were packaged together on a sole CD sold through the Dr. Dobb's Journal library. The pairing has been about for ten years and is motionless available, much to my surprise.
Thinking Forth: A Language and Philosophy for Solving Problems
Leo Brodie, 1984
Yes, another publish concerning Forth.
But this one is value study small for the Forth and additional since it's among the few books concerning how to decompose problems and construction code. You'd think this publish was written by Fowler and friends, until you acknowledge it's from the mid-1980s. That Brodie uses "factor" (which originated in the Forth community) alternatively of "refactor" is additionally a giveaway. What's notable current is there's no OOP, no conversation of patterns, no dense terminology. It's a publish concerning understanding what you're trying to achieve, avoiding redundancy, and penning deceased uncomplicated code.
It's value it for the Forth, too, particularly the interspersed bits of knowledge from experts, including Forth creator Chuck Moore.
permalink February 18, 2008