Barbarian Meets Coding
barbarianmeetscoding

WebDev, UX & a Pinch of Fantasy

4 minutes readwizardsusevim

Wizards Use Vim! My New Book

I. must. write.

:D

As you may know I’ve been tinkering a lot with vim lately and after having spent some time experimenting with vim in-depth and writing some articles I thought…

Hmm… Wouldn’t it be super cool to write a book on Vim set in the same fantasy world than the JavaScript-mancy series? It could be something like a prequel that would expand on the background of the JavaScript-mancy universum. It could even reveal the story of some of the characters people has already learned to love (or hate) in the previous books. It would be a great warmup to come back to the JavaScript-mancy series with renewed energy. Awesome!

And so that little embryo of an idea sparked what is now ~120 pages of Wizards Use Vim. The book as of right now is a series of drafts from previous articles and an introduction that is slightly polished and improved. My current plan is to have a complete final draft of all the chapters as soon as possible and then start the tough part of editing them from the beginning.

Behold the first three drafts for the front cover!

Wizards Use Vim Cover Art Draft 1 Wizards Use Vim Cover Art Draft 2 Draft 3 Wizards Use Vim Cover

For this new book I thought I’d do something slightly different with the art and actually draw the cover by hand on an iPad. I’m not super good at drawing but we’ll see where determination and iteration gets me. That’s definitely an area that I want to improve this year so killing two birds with one stone here. I’m also planning to add more art within the book itself as a visual aid to help learn vim:

Concept art to use throughout the book as supporting material for the text

I’m experimenting with different types of calligraphy. This one looks better. More scroll-of-arcane-magic looking:

Concept art to use throughout the book as supporting material for the text

I’m super excited about this project. The book, as I picture it in my mind, will be a shorter book than the earlier books in the JavaScript-mancy series. An introduction to vim targeted at any software developer interested in improving their text editing prowess and being more productive (inside or outside of vim, as in, it will have a chapter devoted to vim in VSCode and it will encourage you to adopt as much or less vim as you want in your current workflow).

If that sounds like you then you can get an early access to Wizards Use Vim with this free coupons (Free Coupons! Free Coupons!!). I’ve setup 100 coupons first come, first serve but if you really, really want to be an early reader of the book and provide some feedback just ping me on Twitter (my DMs are open). As I go writing the book you’ll receive automatic updates and if you have any thoughts or feedback that you’d like to share with me. Please do! Let’s make this book even more awesome.

Oh! I had an idea that you may find fun. At the beginning of each chapter I typically have a quote that relates to the content of the chapter, delivered by people from the world of JavaScript-mancy, and which sometime expands on the lore of this universe. For instance:

// (On polymorphism and duck typing)

If it flights like a dragon,
breathes fire like a dragon,
eats peasants like a dragon,
then, my friend,
that is a dragon.

        - KinnLar Sane,
        Dragon Hunter, 8th Age

Or

// (On ES6 classes)

Classes are useful in that they
let us represent the world around us
in a simplified abstract manner,
reducing an infinite complex world
to the problem at hand.

Writing summoning spells
for your all-mighty army?
You probably don't need to model
your creatures digestive tract


        - RaezIm Rurat
        Oracle of Kwarok

Or

// (on traits which are a constrained way to compose objects in JS)

Humans are flawed.
Take that into consideration
when designing a tool.

Within your tool, create a path
to guide your user to success.
Her failure is your failure.

        - Iamnos Ydad
        Spellsmith, 1st Age

Or

// (on meta-programming)

Shaping the world
is a noble pursuit,

Shaping the shaping,
Crafting the crafting,
is the mark of masters

        - Sylo Peskimn
        Master Artificer

If you’re into this sort of thing. I’m happy to take your submissions and if they fit, I’ll immortalize you in the book for ever and ever.

There’s more in the works (or at least in the works within my head)!

  • I want the print version of this book to be beautiful, so we’ll see how I manage that. The current version is in leanpub but I don’t think that will give me control enough to produce what I’m imagining in my head.
  • There will be a highly interactive version of the book online that you’ll be able to browse and play with. As in using vim in the browser. It will be awesome.
  • I’m planning to write a game to help you learn vim. The main character will be this dude (a much younger version of someone within the series. Guess who):

But of course as things usually goes we’ll see how far my enthusiasm and determination get me and how much of this gets done :D.

I leave you with a small part of the introduction:

This is a weird programming book. On one hand it is a awesome book on the superb vim text editor. On the other a spell book of sorts set in a world of fantasy where some people can wield JavaScript to affect the world around them. To essentially program the world and bend it to their will.

Welcome to the world of JavaScript-mancy, may you enjoy your stay, learn and have a lot of fun.

P.S. For those of you happy to join this journey. The most convenient way to read the book at this point is online. I’ll be updating the book on a daily basis and having to download new versions all the time can be a pain in back. The pdf does provide a nicer reading experience so choose your own tradeoff. Both can be downloaded from the leanpub library once you get the book. Enjoy!


Jaime González García

Written by Jaime González García , dad, husband, software engineer, ux designer, amateur pixel artist, tinkerer and master of the arcane arts. You can also find him on Twitter jabbering about random stuff.Jaime González García