Barbarian Meets Codingbarbarianmeetscoding

WebDev, UX & a Pinch of Fantasy

SERIES

JavaScript-mancy Mastering the Arcane Art of Writing Awesome JavaScript

A young wizard practices the fine wizardring arts with mixed success throwing fireballs at her master.

A magical and fun blend of JavaScript and Fantasy. Learn to write JavaScript in the company of orcs, wizards, elves and dragons.

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. 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.

Articles in the Series

  1. The Many a One JavaScript Quirks

    This article details the most commonly missunderstood parts of JavaScript, the gotchas, the quirks of this marvelous but sometimes treacherous language.

  2. The Basics Of JavaScript Functions

    Learn more about the most foundational building block in JavaScript, the humble function.

  3. Useful JavaScript Function Patterns - Default Arguments

    Learn different patterns for using default function arguments in JavaScript and ES6, ES2015

  4. More Useful JavaScript Function Patterns - Multiple Arguments

    Learn different patterns for using multiple function arguments in JavaScript and ES6, ES2015

  5. Even More Useful JavaScript Function Patterns - Function Overloading

    Learn different patterns for achieving function overloading in JavaScript and ES6, ES2015

  6. Mastering the Arcane Art of JavaScript-mancy for C# Developers - Chapter 6: Functions in ES2015

    Welcome back! Today we will make a summary of the different ES6/ES2015 features related to functions that we've seen and worked with so far in the series destructuring, default arguments and rest parameters.

  7. Mastering the Arcane Art of JavaScript-Mancy for C# Developers - Chapter 7: Using LINQ in JavaScript

    Did you know that JavaScript arrays support a similar feature to LINQ in C sharp?

  8. Mastering the Arcane Art of JavaScriptmancy for C# Developers - Chapter 8: Enumerables, Iterables, Iterators and Generators

    An in-depth look into JavaScript enumerables and ES6/ES2015 iterables, iterators and generators

  9. The Basic Ingredients of JavaScript-Mancy: An Introduction to JavaScript and ES 6 For C# Developers

    An introduction to JavaScript and ES6/ES2015 for C# developers

  10. I published the First Version of JavaScript-mancy The Book!!!

    An article announcin the publishing on my first book on JavaScript

  11. Mastering the Arcane Art of JavaScript-Mancy for C# Developers: On Summoning Servants and Critters, Or The Basics of Objects in JavaScript

    An in-depth look at object initializers or object literals in JavaScript and ES6/ES2015. With a look into new features like the short-hand syntax.

  12. Mastering The Arcane Art Of JavaScript-mancy for C# Developers: A Guide to Strings, Finding The Right Words and Proper Spell Intonation

    An in-depth look at strings in JavaScript covering also new features in ES6/ES2015 like template string literals

  13. ES6 Destructuring - Mastering The Arcane Art of JavaScriptmancy for C# Developers

    An in-depth view into ES6/ES2015 destructuring syntax

  14. Mastering the Arcane Art Of JavaScript-Mancy for C# Developers: ES6 Arrow Functions

    An in-depth view into ES6/ES2015 arrow functions, how to use them and detailed information about their gotchas

  15. Mastering the Arcane Art of JavaScriptMancy For C# Developers: ES6 Spread Operator

    The ES6 spread operator works sort of in an opposite way to the rest operator. Where the rest operator takes a variable number of arguments and packs them into an array, the spread operator takes and array and expands it into its compounding items. Let's find out how this new ES6 feature can help you write more readable code.

  16. An Introduction to Object Oriented Programming in JavaScript for C# Developers

    An introduction to object oriented programming in JavaScript for C# developers with an introduction to mimicking classes in ES5, ES6 classes and mixins

  17. Summoning Fundamentals: A Three Part Introduction To OOP in JavaScript - Encapsulation

    An in-depth view into how to achieve encapsulation in JavaScript when practicing OOP

  18. Summoning Fundamentals: A Three Part Introduction to OOP in JavaScript - II - Prototypical Inheritance

    An article about how to use prototypical inheritance in JavaScript when working with OOP

  19. Summoning Fundamentals: A Three Part Introduction to OOP in JavaScript for C# Developers - III - Polymorphism

    An article about how to achieve polymorphism in JavaScript through the concept of duck typing

  20. White Tower Summoning: Mimicking C# Classical Inheritance in JavaScript

    In this article we are going to take a deep-dive into how to emulate *classical inheritance* in JavaScript and get to the nearest equivalent to what you are accustomed to in C#. We will focus in the alternatives we had prior to *ES6 classes* so that you can work with *classes* even if you are stuck in *ES5* and so that you can understand the underlying implementation of *ES6 classes* which are just syntactic sugar over the JavaScript *prototypical inheritance* model.

  21. White Tower Summoning Enhanced: The Marvels of ES6 Classes

    In the last article you learned how to implement *classes* in JavaScript without relying in *ES6 classes* which puts you in a prime position to learn *ES6 classes*. *ES6 classes* are great for developers that are coming to JavaScript from a static typed language like C# because they offer a perfect entry point into the language. You can start using *classes* just like you'd do in C#, and little by little learn more about the specific capabilities of JavaScript. Behold! ES6 classes!

  22. Black Tower Summoning: Object Composition With Mixins

    Article about the limitations of classical inheritance and how to overcome them with javascript object composition and mixins

  23. Safer JavaScript Object Composition With Traits and Traits.js

    Experience a safer JavaScript object composition by using traits instead of Mixins via traitsjs

  24. Ultra Flexible JavaScript Object Oriented Programming with Stamps

    Experience an ultra flexible way to do object oriented programming in JavaScript using Stamps

  25. Master The Arcane Art of JavaScript-mancy On Video! Waaaat!?

    A blog post announcing my new video series on JavaScript

  26. JavaScript-mancy Vlog: Learn About JavaScript Function Scoping, Hoisting and How to Win With Let And Const

    Learn more about JavaScript Function Scoping, Hoisting and How to Enable Block Scope with ES6 let and const

  27. JavaScript-mancy Vlog: What is ECMAScript 6?!?

    Ever wondered about ES6? ECMAScript? This video tells you all about it

  28. JavaScript Arrays: The All-in-One Data Structure

    An in-depth look at JavaScript Arrays

  29. A look at ES6 Maps

    An in-depth look at ES6/ES2015 Maps

  30. A look at ES6 Sets

    An in-depth look at ES6/ES2015 Maps

  31. Functional Programming in JavaScript

    An in-depth look at ES6/ES2015 Maps

  32. Dev Talk Monday: Mastering The Arcane Art of JavaScriptmancy at Devsum 2016

  33. I Have a Published A New Book: JavaScript-Mancy Getting Started! Get it now!

    I have published a new book called JavaScript-mancy get started. An awesome introduction to JavaScript where JavaScript meets C# meets fantasy.

  34. A look at object internals and the secret lives of objects

    A look at the metaprogramming capabilities of the Object internals methods like defineProperty and object descriptors

  35. TypeScript: JavaScript + Types = Awesome Developer Productivity

    TypeScript is a superset of JavaScript that adds type annotations and, thus, static typing on top of JavaScript. Learn how TypeScript can improve your developer productivity.

  36. TypeScript: JavaScript + Types = Awesome Developer Productivity - Cool TypeScript Features

    TypeScript is a superset of JavaScript that adds type annotations and, thus, static typing on top of JavaScript. Learn how TypeScript can improve your developer productivity. In this part of the series we setup a simple TypeScript project and test some of the cool features of TypeScript.

  37. TypeScript: JavaScript + Types = Awesome Developer Productivity - Type Annotations

    TypeScript is a superset of JavaScript that adds type annotations and, thus, static typing on top of JavaScript. Learn how TypeScript can improve your developer productivity. In this part of the series we dive into what makes TypeScript special, type annotations.

  38. Rejoice! JavaScript-mancy OOP: Mastering the Arcane Art of Summoning Objects In JavaScript is Complete!

    Announcing the completion of my second book JavaScriptmancy OOP and how it came about.

  39. JavaScript-mancy Pixel Art: How To Make Pixel Art Like In JavaScript-mancy

    Would you like to learn to do pixel art? This video shows how you can make pixel art like in the JavaScript-mancy series.

  40. JavaScript-mancy Vlog: The Basics of Functions in JavaScript

    Where we go through the basics of functions in JavaScript and compare function expressions with function declarations

  41. JavaScript-mancy in the Top 100 Best JavaScript Books of All Time

    Whereby I find out that two JavaScript-mancy books are in the top 100 of JavaScript books of all time