Skip to main content

Introducción

Portada del libro

“Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.” – Linus Torvalds

Acerca de este libro

Un libro de programación sencillo y divertido que nos muestra como programar en JavaScript desde cero.

Mi idea, es empezar desde cero y hacer un viaje juntos desde los abismos profundos de la duda, pasando por el pseudocódigo hasta llegar al maravilloso mundo de las peticiones AJAX. Haremos muchas paradas en el camino, en las que aprenderemos todo lo que necesitas para empezar tu aventura como desarrollador Front-End con sólidas bases en JavaScript.

Un poco de historía

Este libro se publicó originalmente el 8 de Enero de 2017 y prácticamente no ha sido actualizado o ampliado desde entonces. Este libro se centra en ser compatible de forma nativa con el JS disponible en todos los navegadores en aquel momento.

¿Qué necesito saber antes de empezar?

No es necesario que tengas experiencia programando, pero si que es importante que sepas cómo se hacen páginas web estáticas, ya que en la parte III nos centraremos en la manipulación dinámica del DOM y las llamadas AJAX.

No me extenderé mucho acerca de HTML y CSS, por lo que espero que ya tengáis cierto conocimiento adquirido.

Aunque vuestro nivel de conocimientos y experiencia sea relativamente bajo, he procurado evitar que esto sea un freno a tu aprendizaje en JavaScript.

Si tienes experiencia en otros lenguajes de programación, jugarás con ventaja al principio, pero no te confíes…

Si ya has trabajado con JQuery, aprenderás en los últimos capítulos, a hacer lo mismo pero usando solo JavaScript.

¿Qué aprenderemos?

  • A pensar como un programador
  • Pseudocódigo
  • Trabajar fluidamente con funciones
  • Dominar las bases de JavaScript (estructuras del lenguaje)
  • AJAX y sus peticiones
  • Manipulación dinámica del DOM

¿Qué no aprenderemos?

JavaScript es un universo inmenso que va creciendo a pasos agigantados con expansiones. Recuerda que la idea es sentar las bases del lenguaje, por lo que no veremos cosas como:

  • Bases de datos: Ya sean SQL o NoSQL, es algo que no pretendemos tratar en este libro.
  • Paradigmas: POO, Funcional, etc...), hablaremos de pasada de algunos conceptos interesantes de los diversos paradigmas que ofrece JavaScript, pero no iremos más allá.
  • HTML5 APIs: Aunque hablaremos de pasada sobre cosas tan potentes como LocalStorage, queda muy lejos de las bases de JavaScript sobre las que queremos centrarnos.
  • Regex (Expresiones Regulares): Es algo muy útil en el día a día, y será mencionado, pero solo por encima para entender como enfrentarnos a ello como desarrolladores noveles.
  • Patrones de diseño (Decorator, Façade...): Son muchos los patrones que podemos aplicar a JavaScript para que nuestro código adquiera "super poderes", pero esto también queda muy lejos de nuestros objetivos.
  • Testing: Uno de los pilares del buen código, es hacer testing o seguir filosofías como TDD o TBD. Pero para alguien que empieza en este mundillo, creo que sería un freno a tu aprendizaje.
  • Git y Github: Otra de las cosas sin las que uno no puede considerarse un desarrollador de verdad, si no sabe manejarse con fluidez en ello.
  • Frameworks Angular, React, Polymer, Backbone, etc...): La fiebre MV* de JavaScript quedará fuera de este libro por motivos evidentes pero recuerda que aqui utilizaremos el framework de JavaScript más popular y veterano, Vanilla-js.
  • Librerías Jquery, Mathjs, Moment.js...): La idea de este libro es trabajar sobre JavaScript -vieja escuela-, al estilo de Douglas Crockford. Por eso no trabajaremos con JQuery directamente, ni con ninguna otra librería, aunque si recomendaremos otras muchas librerías.
  • ECMAScript 6, ECMAScript 7: Aunque hablaremos de ciertas cosas que ha traído consigo ECMAScript 6, sin embargo nos centraremos en el clásico ECMAScript 5.1 (vigente desde 2011) con una compatibilidad nativa envidiable.
  • Node.js: Me encanta Node.js, por tener todo el potencial de JavaScript, sin las restricciones del navegador... bucear en un mundo asíncrono de posibilidades infinitas donde puedes crear desde servidores Http, hasta cosas tan alucinantes como robots... Node.js da para una colección de libros por si mismo, y por ello queda muy lejos de nuestros objetivos.
  • Gulp, Grunt, Broccoli...: Aunque la automatización y la gestión de tareas es otra de las cosas que más me apasionan, queda también lejos de los objetivos que nos hemos marcado. ¡Lo siento!...

De paso también me gustaría desmitificar algunas cosas:

  • Matemáticas: Programar es hacer magia con máquinas, las matemáticas son opcionales...
  • Matemáticas Avanzadas, Estadística, etc...: Para dominar los conocimientos y las técnicas de JavaScript, solo necesitas... saber sumar, restar, dividir y multiplicar... ¡solo eso!
  • Física nuclear: Un poco de humor.
  • Inteligencia Artificial: Esto queda un poco lejos aún, pero sigue trabajando... ¡Padawan!

Importante

  • Humor: Si no te ríes en algún momento mientras lees este libro.... claramente no es para ti y no he cumplido el reto de intentar enseñarte cosas alucinantes con un poco de humor 😆
  • Adaptable: En principio este libro está disponible en tres formatos básicos pdf, mobi, epub y su código fuente está en Markua. Pero partiendo del repositorio en GitHub puede ser convertido a más formatos.
  • Este libro está vivo: Con el tiempo irá creciendo y mejorándose. Mantente al día desde su página oficial
  • Un mar de recursos: La mayoría de los links del libro, os dirigen a blogs técnicos y a la documentación oficial de Mozilla Developer Network. Si un concepto resulta difícil de entender o deseas profundizar más... estos links pueden ser un buen punto de partida.
  • Facilidades: La mayor parte del código está creado con la nomenclatura en español, para facilitar la comprensión y lectura por parte de nuevos desarrolladores. No obstante, recuerda que esto no está considerado una buena practica en entornos profesionales.
  • ¡A tu ritmo!: A lo largo del libro observaréis que hay numerosos ejemplos explicativos. Sin embargo no encontraréis ejercicios, para así hacer más ágil su lectura y para que os animéis a venir a una de las muchas reuniones de la comunidad (Open Source Weekends, Node Girls Madrid...) y practicar con proyectos de verdad y con el tiempo lleguéis a proponer vuestros propios proyectos dentro de la comunidad.

Convenciones utilizadas en este libro

Ejecuta el código

Todos los ejemplos de código que veras en el libro tienen significado por si mismos y pueden ser ejecutados en la consola del navegador sin problema alguno, es más, os lo recomendamos encarecidamente.

Iconos y simbología utilizados en este libro

Información

Cuando veas este mensaje sabrás que tendras un lugar desde el que ampliar conocimientos y profundizar un poco más en los conceptos del capítulo.

Atención

Cuando veas este mensaje sabrás que debes prestar mucha atención, ya que se trata de un concepto clave para entender el capítulo en el que te encuentras.

Consejo

Cuando veas este mensaje sabrás que se trata de un consejo que puedes seguir o no…

Comunidad

Cuando veas este mensaje sabrás que estamos hablando de cosas relacionadas con la comunidad de desarrolladores.

Web Archive

Cuando veas este mensaje sabrás que los enlaces te llevarán a web.archive.org, la máquina del tiempo de Internet.

Lecturas recomendadas

Cuando veas este mensaje sabrás que ha llegado el momento de preparar un buen café y dedicar un tiempo a leer con calma los links y ver algunos vídeos también.

Cero coste, 0$

Este libro es completamente gratuito, con un doble objetivo, que nadie se quede sin aprender por no tener recursos y además para contribuir de este modo a la comunidad del software libre.

Aunque el libro es gratuito, Leanpub permite comprar este libro al precio que tu consideres. Todos los beneficios generados serán donados íntegramente a Code Club desde la propio plataforma de Leanpub. El autor no percibirá nada de esas donaciones

Feedback

Puedes compartirme tu opinión de diversas formas:

Contribuir

Todo el código fuente esta en este repositorio de GitHub. Este libro es algo vivo y por ello estará evolucionando constantemente.

Recuerda que tu puedes formar parte de todo esto, colaborando.

Existen muchas formas de colaborar:

  • Avisando de los errores y de las posibles erratas que pudieses encontrar en el código
  • Mejorando los ejemplos
  • Traduciendo este libro a otros idiomas para que llegue a más lectores
  • Compartiendo tus sensaciones en twitter con el hashtag #JavascriptInspirate

Encontrarás más información en el archivo contributing.md.

Licencia

ISBN: 978-84-617-7416-6

Licencia_img

Este libro esta licenciado como Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License aunque no necesariamente las imágenes de su interior.

El código incluido en la carpeta /scripts esta licenciado como GNU GPL-3.0