¿Sabías que la programación se ha convertido en la profesión mejor remunerada de todo el mundo? Estoy seguro de que ya estabas al tanto de este dato, pero nunca está de más que te lo recuerden y más si aún no te has decidido a dar el paso y aprender qué es programar.
Desde hace muchos años nos tienen acostumbrados (ejem Hollywood ejem) a creer que programar es algo propio de cerebritos que no tienen vida social y en cuyas cabeza no cabe otra cosa que números aleatorios que hacen cosas “mágicas”. ¡Pero no! Nada más lejos de la realidad, la programación es algo así como aprender un nuevo idioma y saber encajar las palabras una detrás de otra, de manera que se formen frases coherentes.
Sin ir más lejos, apuesto lo que quieras a que conoces al menos un par de palabras en cualquier idioma que no sea el español. ¡Seguro que sabes qué es Hello o House!
Mira, te voy a poner un ejemplo para que te hagas una idea:
alert('Mensaje de texto')
alert('Mensaje de texto')
¿Sabrías deducir qué hace la expresión que pone arriba? Seguro que sí, no esperaba menos. Muestra una alerta con el contenido ”Mensaje de texto”. Muy bien, ahora voy a enseñarte un ejemplo un poco más complejo:
var mensaje = 'Mensaje de texto'
alert(mensaje)
var mensaje = 'Mensaje de texto'
alert(mensaje)
Es cierto, aquí hay algo que puede que no entiendas si nunca has tenido contacto con la programación, pero seguro que sabes entender el comportamiento de la expresión anterior sin muchas pistas.
¡Eso es! Primero se crea un mensaje que contiene ”Mensaje de texto”, y luego se crea una alerta que contiene dicho mensaje.
Bien, tras esta brevísima introducción a la programación, voy a contarte cuales son los lenguajes, herramientas, recursos y guías más útiles que te recomiendo para aprender a programar desde cero.
Lenguajes
Un lenguaje de programación (en muy resumidas cuentas) es un conjunto de intrucciones, en este caso con una sintáxis cercana al lenguaje natural humano para facilitar su uso, que permite a una persona realizar acciones y tareas en un ordenador.
Entre todos los lenguajes que existen, los más usados y, por tanto, los que más documentación tienen son:
- JavaScript: El lenguaje de programación de la web por excelencia. Se usa en todos aquellos proyectos que requieran de lógica que se ejecute en el terminal del usuario final, ya sea un navegador web en un ordenador portátil, o una aplicación multiplataforma en un móvil con Android. Las posibilidades son infinitas y JavaScript es el comienzo ideal si quieres aprender a programar.
- Python: ¡Yo comencé a programar en Python! Sí, seguro que has escuchado Python más veces, y te aseguro que no ha sido en vano. Este es el lenguaje revelación del siglo XXI y el que, por el momento, tiene más papeletas de relevar a Java como lenguaje más usado en el mercado. Es también una muy buena opción para aprender los fundamentos de la programación.
- Java: Amado por muchos y odiado por otros tantos… Java es un lenguaje sólido, que puede ser ejecutado en cualquier dispositivo gracias a su compilación JIT, se puede usar para infinidad de fines. Aún así, a muchos nos parece un poco más arcáico que el joven Python. Pero eh, que sigue siendo uno de los lenguajes más usados y demandados en toda la industria, de eso no cabe duda.
Para aclarar posibles dudas, no incluyo HTML ni CSS porque no son lenguajes de programación. HTML es un lenguaje de marcas y CSS es un formato de hojas de estilo. Terminemos con esta guerra de una vez 😌.
Herramientas
Hay ciertas herramientas que considero indispensables para agilizar el proceso de aprendizaje en programación. No van a hacer que sepas programar de la noche a la mañana, pero sí que van a ayudarte a que el camino sea menos cansado.
Esta selección de herramientas es:
- Visual Studio Code: El famosísimo VSCode es el editor de texto preferido de la mayoría de programadores. Fue creado por Microsoft y su código fuente es Open Source. En él se pueden instalar infinidad de extensiones desarrolladas por la comunidad usando su propio marketplace.
- MDN Web Docs: La documentación de la web por excelencia. Está escrita y mantenida por Mozilla y es el primer lugar en el que buscar información sobre HTML, CSS y/o JavaScript. También incluye documentación de protocolos como HTTP.
- GitHub: A medida que se va entrando en el mundo de la programación el control de versiones cobra más importancia cada vez. GitHub es una plataforma de Microsoft que hace uso del sistema de control de versiones git. Aquí se sube el código para desarrollar de manera colaborativa, hacer y deshacer cambios, etc.
- Stack Overflow: La comunidad de programadores más grande de internet. Este portal se usa para copiar y pegar código. ¡Es broma! En Stack Overflow se pueden publicar preguntas relacionadas con el desarrollo de software. Estas preguntas son respondidas por otros miembros de la comunidad y es el lugar al que dirigirse si necesitas ayuda.
Recursos
Considero recursos a aquellos documentos o piezas de documentación que alguien puede mirar puntualmente, y que ayudan a disipar dudas o entender algo. Esto incluye artículos, libros, documentales, blogs, etc.
Mi selección personal de recursos es:
- Clean Code - Robert C. Martin: El libro que me cambió la manera de ver el código. Clean Code te ayuda a comprender por qué ciertas prácticas son tan importantes al desarrollar software, y por qué otras son nocivas para el proyecto, los demás desarrolladores, e incluso para tí. Mantener un código limpio, legible, mantenible y en el que se pueda colaborar es fundamental.
- Full Stack Open: En esta web se encuentra uno de los cursos de desarrollo web full stack más completos que he visto hasta la fecha. Simplemente 10/10.
- DEV.to: El blog de los programadores. En este sitio se publica todo tipo de contenido, desde inquietudes de miembros de la comunidad hasta tutoriales de las tecnologías más extravagantes que existen. Te recomiendo echarle un ojo, no te arrepentirás.
Guías
Las guías sobre programación son armas de doble filo, ya que rara vez tus objetivos coinciden al 100% con los objetivos del autor. Aún así, ciertas guías pueden aportarte más de lo que piensas, sobre todo cuando estás empezando. Este punto es el más subjetivo de todos, y depende completamente de mi opinión personal. Sin embargo no quería dejar de mencionar a ciertos creadores de contenido tech que han sido muy importantes para mi aprendizaje estos últimos años.
La siguiente lista no está ordenada ordinalmente y, por tanto, los primeros no me parecen mejores que los últimos ni viceversa:
- Midudev y sus conocimientos de JavaScript y React
- pildorasinformaticas y su curso de Python
- Dot CSV y su forma de hacer fácil lo complicado
- HolaMundo y su vasta experiencia en este mundillo
- BettaTech y su visión más arquitectónica sobre la programación
- Fireship y sus condensadas explicaciones
- CodingGarden y su amor por JavaScript y el desarrollo web
- FilledStacks y su facilidad para explicar Flutter
Esto es todo por ahora, en este post te he contado todo lo que yo considero útil para que empieces en el mundo de la programación y el viaje se te haga más ameno. De todas maneras, atento/a a mi siguiente post, porque te voy a contar lo que para mí debe tener un desarrollador en su setup de trabajo para disfrutar aún más de lo que hacemos día a día.