Monday, March 4, 2013

An MVP Comic Book About Gary Bernhardt's Approach To Unix

Update: I took this product off the market for now, because I'm going to be making some edits and corrections.


Gary Bernhardt's an amazing programmer. His Destroy All Software screencasts teach his approach to writing software, which is powerful, fluid, and unique. It is an amazing thing. Whenever I find out that a programmer I respect is not familiar with Destroy All Software, I lose a little respect for them. I'm sorry to say it, but it's true.

Yet many programmers simply don't like screencasts, and would prefer to learn from a book, as opposed to a video series. And I must admit that I think screencasts do have downsides sometimes. You can't search a screencast, you can't copy and paste its code, and you can't consume it at the speed of your own thought.

And recently I realized that if I was going to truly learn to code like Gary Bernhardt, I would need to go back, watch a lot of his videos again, and take extensive notes. For me, it wasn't enough just to watch them. So I decided to solve both problems at once, by taking extensive notes and turning them into a book.

I began this process, and discovered that I had underestimated the value and information density of Destroy All Software. I divided up the videos by topic. There are currently 88. I got far more than a book's worth of notes out of just the first 17 I reviewed, which were (at that time) all of the videos on bash, vim, and git.

So I decided to create a book just from my notes about the videos on bash.

I also decided, for reasons that I cannot explain or indeed even remember, that the best way to present this material would be as a comic book. I used to be able to draw pretty well. But I haven't kept that skill going, and writing and researching the book took a long time, so I had to settle for a very limited implementation. Here's a couple sample images:





I had a script in Markdown. Not a script in the programming sense, but in the sense that movies, plays, and comic books have scripts. Its text was longer than the text of my first book, Rails As She Is Spoke. Rather than go through this script and create hundreds of pages of original art to complete a bona fide, true comic book, I instead wrote a few quick, custom templating scripts (in the programming sense) to automatically turn my Markdown files into ultra-minimal "comic book pages" like the sample images above. There is a little more original art in the book than that, but only a little.



It turns out that making a very detailed comic book about code is a lot of work. Still, I think I can technically say that I have created a very minimum-viable-product version of a comic book, which means that this is not only the first ever book about Gary Bernhardt's approach to writing software, it is also the first ever comic book about Gary Bernhardt's approach to writing software.

Just in case other comic books about Gary Bernhardt's approach to writing software exist which I somehow failed to notice, however, I decided to further guarantee my book's uniqueness with several original features. For example, I am very confident that this is the only comic book about Gary Bernhardt's approach to writing software which features Alan Turing beating the crap out of a small woodland animal with a big blue dildo.



At the same time, I am not above trotting out a few cherished, crowd-pleasing clich├ęs now and then. Nostalgic Ruby programmers will be glad to hear that this is not the only comic book about programming which features cartoon foxes shouting "chunky bacon."



And I certainly believe that technical detail belongs in technical books, so this is also a book full of detail on Unix, including how to use it, essential utilities, core principles, syntax, gotchas, and more. Yet the worst thing about working with Unix (and Unix-like systems such as Linux, FreeBSD, and OS X) is that there is so much obscurity overlaying so much power, so I made very very sure to prioritize information you can use, and to clarify the living fuck out of the confusion hellstorm that is Unix documentation.

Therefore, I think I can say, with total confidence and accuracy, that my new book is the best comic book about Gary Bernhardt's approach to writing software that has ever been written. Not only that, if you have your own comic book about Gary Bernhardt's approach to writing software and you want to throw down, I think I am ready to pwn you.

If you buy my new comic book, and you subscribe to Destroy All Software, I think it will be an amazing study guide which will help you level up your Unix skills like a motherfucker. Alternatively, if you buy my new comic book, but you haven't subscribed to Destroy All Software yet, I think you will find it a very compelling gateway drug, and I even think you may thank me for opening your eyes.

However, although you can probably tell I think very highly of Destroy All Software, this is much more than just a comic book adaptation of somebody else's work. First, it's not actually associated with Gary Bernhardt in any way, shape, or form. You should look at it like a work of literary criticism or outside analysis. I am definitely not going to claim Mr. Bernhardt endorses my misuse of Mr. Turing's standing as a historical figure, for example.

(And by the way, if Destroy All Software picks up new subscribers as a result of this blog post and my new book, which I hope it does, I will not make any money from that. There's no affiliate program going on, unfortunately.)

Second, my book really just uses Mr. Bernhardt's work as a launching point. I feel Destroy All Software provides good answers on how to use Unix, but also, and much more importantly, that it asks great questions. There are a lot of places in the book where my answers differ but I still agree the questions are worth asking. I wanted to not just learn how to use Unix the way Mr. Bernhardt does in his videos, but also use that knowledge to enhance my own style, in keeping with my own philosophy.

So my book addresses areas where I respectfully disagree with Mr. Bernhardt. I show you how to create and use numerous original bash hacks of my own. I go deep into the history of Unix, trace the evolution of a complex lineage of inter-related tools and languages, use scholarship from the world of spoken languages to demystify obscure Unix commands, and even explain how the poetry of Robert Frost provides the best way to understand forking processes. I also build, and guide you through, a narrative and map-based structure for understanding Unix skills, inspired by the memory palaces of classical Greek and Latin philosophy, which even today, thousands of years later, represent some of the most potent mnemonic and pedagogical techniques ever devised. It's beginner-friendly, but even if you've been using Unix a long time, I think you'll get a lot out of this book.

Legend Of The Burned Hart Style: The Tower Of 34 Daemons is 128 pages long. It costs $37. The art is half-assed, but entertaining, because I focused my energy on the writing and the research, and I think you will find both to be excellent. Satisfaction guaranteed, and by "guaranteed," I do mean guaranteed. I have no problem with you requesting a refund for literally any reason, including for example "I stubbed my toe."



As I hope is obvious from the sales pitch "level up your Unix skills like a motherfucker," this comic book is, in many places, NSFW. In fact, thanks to my fictionalized version of Mr. Turing, and his giant dildo, I think it's the most NSFW product I've ever created.



Nobody has seen this book yet, not even Mr. Bernhardt himself, so here's what people have said about my previous products:



I'm now having companies compete to have me rather than me competing for jobs. That's a huge difference in the finding-a-job experience, and it's because I watched your video like 7 times and kept referring to it.



Giles - had to shoot you an email because your resume video helped me in a big, big way. I recently landed a dream Ruby job (with an amazing startup) as a direct result of what you taught me in your video.