Creo que me he visto en más de una decena de ocasiones aconsejando a gente como empezar en el mundo de la programación, así que esta entrada viene dedicada a todos ellos.
Por supuesto se trata de una guía basada en mi opinión y solo mi opinión.
¿DAW o DAM?
Realmente mi respuesta es bastante clara: DAW.
El mundo web cada vez va tomando más y más fuerza. Ya se pueden desarrollar aplicaciones de escritorio utilizando como base aplicaciones web con tecnologías como electron (un buen ejemplo de este tipo de aplicaciones Visual Studio Code). Y además también se pueden desarrollar aplicaciones móviles con React Native e Ionic.
¿Como empezar?
Fundamentos. Programar siempre va a ser programar, sea cual sea el lenguaje. No vas a perder mucho por empezar por C y luego ir a Java. A mí me gusta mucho enseñar con C y C++. ¿Por qué? Porque se puede uno concentrar en los fundamenos básicos de la programación estructurada y luego en la orientación a objetos.
Pero esto, si no tienes claro lo que quieres hacer, puede resultar bastante desmotivante. Y mucha gente necesita una mayor motivación, la cual consigue pensando en la aplicación directa de las cosas. No puedo culparlos. Así que vamos a centrarnos en las dos tecnologías más usadas: Java y Javascript.
Java
Java es un lenguaje compilado e interpretado desarrollado por Sun Mycrosystems ampliamente utilizado en el mundo web. Mediante la especificación de JavaEE se puede lograr que Java gestione peticiones web y actuar como un lenguaje del servidor. Normalmente se utiliza junto a la tecnología Spring.
Y es realmente potente. Java es un lenguaje muy rapido que no ha parado de mejorar durante todos estos años. Puede que no sea “cool”, que no esté en el top de trending languages, pero es el top 1 en los lenguajes más utilizados y eso no se puede discutir.
Para aprender Java recomiendo utilizar los dos MOOC (Masive Open Online Course) de la universidad de Helsinki. Yo mismo los he utilizado y sé que resultarán muy útiles.
https://mooc.fi/courses/2013/programming-part-1/
https://mooc.fi/courses/2013/programming-part-2/
Eso sí, en perfecto inglés. Es lo que hay y cuanto antes empieces a adaptarte al inglés, mejor. Existen algunos libros muy importantes de Java, yo suelo citar este:
Effective Java, Josucha Bloch, 2nd Edition.
Y como recursos online para consultar:
https://www.tutorialspoint.com/java/
Javascript
Javascript es un lenguaje compilado e interpretado (surprise!), desarrollado por Brendan Eich para ser utilizado en el navegador. Con la aparición de las aplicaciones web dinámicas que hacían uso de Ajax (Gmail), comenzó una tendencia hacia un nuevo tipo de arquitectura.
Javascript es un lenguaje que ha cogido una gran fama en los últimos años. Es el lenguaje más utilizado en Github y además con la fama que han ido adquiriendo las librerías y frameworks, es un gran momento para aprenderlo.
Para ello recomiendo hacer los cursos de freecodecamp.
Para dudas, un libro bastante interesante a consultar es: Eloquent Javascript
¿Qué debo aprender?
En esto si que solemos coincidir todos, para empezar a programar se deben comprender estos conceptos:
- Tipos de datos.
- Entrada / salida de datos.
- Condicionales. (if)
- Bucles. (for, while…)
- Funciones.
- Estructuras de datos básicas (Arrays, Listas).
Esto es lo que daría cualquier persona que empezara a programar. Una vez comprendido y entendido esto, pasaríamos a la programación Orientada a Objetos y a estructuras más avanzadas.
Y ya con eso tenemos las bases para empezar a hacer lo que realmente nos importa: Resolver problemas.
Ya tengo las bases, quiero más.
En un principio iba a extender este tutorial, pero creo que es mejor dejarlo para otra entrada. Por lo pronto diré que al menos es necesario que conozcas como usar SQL, qué es una API Rest y como hacer peticiones HTTP con Javascript.