JavaScript-mancy
Let JavaScript Be Your Next Adventure!
Are you a C# or Java developer curious about the awesome things happening in the JavaScript world? Would you like to be a part of it? Build super rich web applications, mobile apps, backend services or even robots? Does JavaScript frustrate you? Would you like to master it and never again feel like you cannot make the language do what you want?
Are you a fan of the Fantasy genre? A sucker for wizards, elf-bowmen, powerful sorceresses and evil trolls? Love the works of Brandon Sanderson, G.R.R. Martin or Tolkien? Did you enjoy the Lord of the Rings or Game of Thrones?
Then this is the place for you! The JavaScript-mancy series are a collection of beautifully written JavaScript books that are a blast to read. Learn the basics of JavaScript, OOP, Functional Programming, async, ES6, TypeScript, tooling, testing, Angular 2 and more!
And there's wizards!
Tell me more!!
The JavaScript-mancy series is the lovechild of three of my passions: JavaScript, writing and Fantasy. In the pages of each one of the books of the series you'll find a breadth of JavaScript knowledge, delivered with a humorous and casual style of writing and sprinkled with Fantasy at every turn.
In summary, you'll get:

JavaScript
Learn JavaScript and ESnext like never before. With a great balance between pragmatism and detailed explanations and with an informal and fun writing style that is easy to follow along.
Tons of Samples
With a humongous amount of examples and exercises that illustrate every concept in practice. So you can learn using the best methodology possible: learn by doing.

C# and Java Inspired
Learn JavaScript from a C# perspective built on top of analogies and similarities between the two languages. Perfect if you have a C#, Java or statically typed background.
Epic Fantasy
Every book has a story of epic fantasy interweaved in the code samples. Read the books, complete the exercises, Save the world! :)
Craft Spells!

function obliterate(...victims){
victims.forEach(function(victim){
console.log(`${victim} wiped out of the face of the earth`);
});
console.log('*Everything* has been obliterated, ' +
'oh great master of evil and deceit!');
}
Summon An Army!

let wizard = new Wizard('Randalf, the Red', /* hp */ 10);
wizard.castsSpell(lightningSpell, orc);
// => Randalf, the Red casts lightning spell on orc
// => A bolt of lightning electrocutes orc(-10hp)
let thief = new Thief('Locke Lamora', /* hp */ 100);
thief.steals('orc', /*item*/ 'gold coin');
// => Locke Lamora steals gold coin from orc
Become a Hero!




/*
Mooleen sits in a dark corner of a tavern sipping a jug of the local brew.
She flinches. The local brew must surely have fire wyvern blood in it.
She silently observes the villagers around her.
They seem unhappy and nervous, as if they were expecting something terrible
was about to befall them at any second.
*/
mooleen.says("A month has passed since we dispatched Great");
mooleen.says("You would think they would be happier");
rat.says("Well, people don't like change or surprises");
rat.says("They're expecting that someone worse will take control");
rat.says("Better the devil you know...");
/*
A maid stops by Mooleen's table confused
*/
maid.says("Are you feeling ok sir? Speaking to yourself?");
rat.moves("out of the shadows");
maid.shrikes();
villager.shouts("A demon!!!");
rat.says("Great");
mooleen.says("That's just plain mean");
/*
The villagers quickly surround the dark corner with clubs, bottles and
whichever crude weapon they can muster.
*/
villager.shouts("Kill the demon!!");
mooleen.weaves("teleport('Caves of Infinity')");
/*
Mooleen and rat blink out of existence just as various pointy weapons
blink into existence precisely where they were sitting a second
earlier.
*/
randalf.says("There you are!");
mooleen.says("here I am!");
rat.says("A demon!?");
randalf.exclaims("A demon? Where!!");
bandalf.says("Yes where!")
zandalf.looksWorriedAllAround();
mooleen.says("There's no demon");
randalf.asks("Are you sure?");
randalf.says("We need to be on our toes");
mooleen.asks("You too?");
randalf.says("Yes, it's been a month, they must be about to attack");
mooleen.says("They? Who!");
randalf.says("Could be anyone really... the dark brootherhood, the clan " +
"the silver guild, the red hand... They'll want to control Asturi");
randalf.says("You need to summon an army");
mooleen.says("An army?");
randalf.says("An army indeed, and bigger than the one before...");
mooleen.says("Really? Cause that took a looooong time to summon");
randalf.says("Well, That's because you're a novice");
mooleen.says("That's encouraging");
randalf.says("Oh, don't you worry, we'll take care of your ignorance");
mooleen.says("Ouch");
randalf.says("Let me tell you about OOP in JavaScript");
// ... adventure awaits you!!!
What People Are Saying
Samuel Tremblay
Software Developer at Neosynergix Inc

"I started reading a sample of this book yesterday and I'm in love with your writing style. Even if I've written a lot of Javascript and I already know about javascript scoping and all these hidden behaviors, I will buy your book just to read it like one goes to see a good movie. Good job!"
Andreas Bäcklund
Software Developer and IT Consultant at Active Solution

"I read it and it's awesome! Book tip for those who want to gain/refresh some JS skills :)"
Andreas Wänqvist
Software Developer at Simplygon

"Doesn't matter if you are not in to #csharp or #javascript Just get it! :) Awesome work"
Get the Books!
JavaScript-mancy: Get Started

Learn the basics of JavaScript, the quirks, the awesome features in ES2015 and ESnext. This is a great point to start your journey.
Ebook Paperback Preview "on-the-line"JavaScript-mancy: OOP

Learn Object-Oriented programming in JavaScript. From classical inheritance and stuff you are accustomed to in C# to new cool paradigms that take advantage of JavaScript's dynamic nature.
Ebook Paperback Preview "on-the-line"Who's the author?

Jaime González García (@vintharas)
Full Stack Web Developer, Author and Speaker
Jaime is a full stack web developer and UX designer who thinks it's weird to write about himself in the third person. During the past few years of his career he has been slowly but surely specializing in front-end development and user experience, and somewhere and some time along the way he fell in love with JavaScript. He still enjoys developing in the full stack though, bringing ideas to life, building things from nothingness, beautiful things that are a pleasure and a delight to use.
Jaime works as a Technical Solutions Consultant at Google helping publishers be great. He spends part of his time as a Developer Relations for Angular and Google in the Nordics developer community. He speaks at conferences, writes articles, runs workshops and talks to developers and companies about how they can do cool things with Angular and JavaScript. He also arranges developer community events at the Google Office in Stockholm as a way to support and encourage the thriving local dev ecosystem and put it in contact with other Googlers.
In his spare time he builds his own products and blogs at barbarianmeetscoding.com (long story that one). He loves spending time with his beloved wife Malin and son Teo, drawing, writing, reading fantasy and sci-fi, and lifting heavy weights
Why JavaScript-mancy?
Writing code is one of my favorite past times and so is reading fantasy books. For this project I wanted to mix these two passions of mine and try to make something awesome out of it.
In fantasy we usually have the idea of magic, usually very powerful, very obscure and only at the reach of a few dedicated individuals. There’s also different schools or types of magic, pyromancy deals with fire magic, allomancy relates to magic triggered by metals, necromancy is all about death magic, raising armies of skeletons and zombies, immortality, etc.
I thought that drawing a parallel between magic and what we programmers do daily would be perfect. Because it is obscure to the untrained mind and requires a lot of work and study to get into, and because we have the power to create things out of nothing.
And therefore, JavaScript-mancy, the arcane art of writing awesome JavaScript.