Ojo, que no me refiero a JS que te encuentras a diario en el navegador. En este caso conocimientos básicos de programación, librerías como jquery y demás o hacer scripts con funcionalidades limitadas es algo a lo que ya me dedico. Me refiero a sacar partido y aprender a programar JavaScript servidor/cliente para crear aplicaciones independientes.
¿A qué me refiero con Javascript servidor/cliente?
No hay una respuesta corta a esta pregunta, pero voy a intentar aclararlo. Si no sabes por donde van los tiros y aun así sabes programar o tienes lo básico en JavaScript, es porque solo lo has usado para programación web en la parte del cliente.
Si te dijo Node.js es posible que te suene, pero para aclarar, es un entorno de ejecución que permite poner en marcha aplicaciones independientes que funcionan por su cuenta.
Puedes crear desde un script que muestre una página web en un navegador, hasta aplicaciones que se encarguen en la parte del servidor de gestionar bases de datos, recoger información o procesar lo que necesites para devolver (o no) un resultado.
A esto es exactamente a lo que me refiero con aprender este tipo de programación, a crear aplicaciones que se puedan ejecutar en cualquier plataforma, con una funcionalidad específica, y que tengan una parte que se ejecute en el servidor, y otra en el cliente haciendo que se comuniquen entre ellas, por ejemplo para crear un editor online de archivos específicos.
¿Para qué puede servir esto?
En un principio, a mí me servirá para adaptarme a otro lenguaje como principal, ya que hasta ahora el uso de JavaScript que hago es orientado a web siempre como apoyo a otros lenguajes.
Esto me permitirá crear algunos proyectos que tengo en mente y que con este nuevo punto de vista pueden ser mucho mejores y ofrecer unas capacidades que de otra forma ni me podría plantear.
Desde un punto de vista objetivo, JavaScript es uno de los lenguajes de programación que se está extendiendo como la espuma en multitud de empresas y plataformas. Muchas de ellas ya lo usan desde hace tiempo, pero la oferta de trabajo en base a este lenguaje se está haciendo cada vez más demandada, lo que acabará ofreciendo más puestos de trabajo y mejor pagados.
Piensa que JavaScript se puede ejecutar de esta forma en prácticamente cualquier plataforma, incluso en el iOT se le puede sacar mucho partido. En definitiva, que aprender JS te puede abrir puertas en el mundo laboral si quieres seguir esta guía/experiencia.
¿Es difícil aprender JS?
Seamos sinceros, ningún lenguaje de programación se aprende de la noche a la mañana. Además, si te pasa como a mí que eres un programador hecho a tus costumbres y forma de trabajar, te puede resultar incluso más difícil abrir la mente para poder cambiar completamente el código que escribes o la forma de pensarlo.
Por supuesto, en mi experiencia voy a exponer un punto de vista desde el cual ya me dedico bastante tiempo a la programación, y también es verdad que hay veces que mi forma de hacer las cosas no es la mejor, por eso mismo agradezco cualquier comentario.
Aun así, esto será solamente a la hora de entender las posibilidades del código, si te has propuesto aprender JavaScript desde cero seguramente has encontrado el sitio correcto, pues lo que quiero intentar es ignorar cualquier conocimiento previo y empezar desde lo más básico.
¿Por donde empezamos a aprender JavaScript?
Vale, vamos a meternos ya en materia, que está claro que queremos aprender. ¿Empezamos ya a picar código? Nooop! Antes de esto hay que hacer algo de investigación y poner los puntos sobre las íes (aunque no te preocupes que ya me he encargado yo y te lo expongo).
Antes de empezar hay que revisar los frameworks disponibles y elegir uno ¿no crees? Ponernos a escribir código con todas las funciones desde cero sería prácticamente una locura, aunque con el tiempo quizás te apetezca crear apps desde lo más básico.
Aun así, usar un framework es lo más acertado, ya que la adopción de estos hace que programes más deprisa, y que suba tu caché si quieres dedicarte profesionalmente a esto.
Un framework es un conjunto de herramientas de código y utilidades que te quita la mayor parte del trabajo pesado y repetitivo de enmedio. Así, con unas pocas líneas de código y las llamadas correctas, puedes hacer cosas que requerirían muchas más líneas y conocimientos, como tratamiento de strings, conexiones a bases de datos, gestión de componentes, etc.
Vamos a aprender Javascript con React y Meteor
¿Y por qué precisamente estos dos con las docenas de frameworks que hay? Fácil, porque cumplen con los requisitos de lo que llevo en mente desarrollar, y React es prácticamente el que más comunidad tiene.
El “problema” de React (que no tienen otros frameworks que hacen de todo), es que está pensando para crear aplicaciones de cara al cliente, es decir, la parte visual de la aplicación. Esto te fuerza a utilizar algo más si quieres hacer una app que también sea JavaScript en la parte del servidor o backend.
Como tiene buenas críticas, documentación y parece complementarse bien con React, he escogido Meteor para hacer de backend y encargarnos de la parte del servidor. Tiene ciertos tutoriales, y aunque la instalación se hace con sus propios paquetes parece estar bien integrado incluso con mostrar datos en vivo.
Es una elección personal ya que no me quería centrar en un único framework, y por que me dejo Angular para más adelante ya que por lo que he leído tiene un lenguaje un tanto diferente.
Tienes una lista de todos los frameworks aquí por si no te convence mi elección. De todas formas puedes dejarme un comentario con los que tú elegirías y por qué, siempre podemos aprender unos de otros.
Conclusión
Vamos a dejar este primer capítulo aquí, en la elección del framework, ya que ahora toca dar los primeros pasos, preparar las impresiones, y entonces podemos empezar a ver cómo programar sobre estos.
Si estás empezando a la vez que yo y quieres, podemos mantener conversación con las impresiones aquí en los comentarios, aunque mejor sería en el hilo del foro para el curso.
Según vaya encontrando problemas y soluciones a estos (así como para hacer las instalaciones, lo que me parece cada cosa, o incluso si veo que estos frameworks no se ajustan exactamente a una programación cliente/servidor), los iré poniendo y apuntando para que los puedas tener en cuenta.
Igualmente, si tú vas haciendo avances podemos hablarlo y no te olvides de compartir.