Con el comienzo de un año nuevo muchos programadores desean expandir su conocimiento aprendiendo un nuevo lenguaje de programación. A veces es muy difícil decidir entre tantas opciones disponibles. En esta entrada te sugiero 5 alternativas para diferentes perfiles y gustos ¡Comenzamos!
C# para el gamer
Cuando conocí por primera vez el videojuego Stardew Valley, no podía creer que todo ese contenido haya sido creado por una sola persona. Si no has escuchado nunca sobre este juego, te cuento rápidamente su historia: es un videojuego creado en su totalidad por Eric Barone, Eric se graduó en 2011 de la facultad de informática de la Universidad de Washington Tacoma, sin embargo, no le era posible encontrar trabajo así que comenzó a desarrollar un juego para mejorar sus habilidades de programación y poder plasmar su creatividad; en febrero del 2016 salió a la venta el videojuego en Steam. Al día de hoy (abril 2017) ha vendido más de 1 millón de copias, convirtiéndose en uno de los juegos indie más vendidos.
Volviendo al tema, Stardew Valley fue desarrollado en su totalidad con C# en Microsoft XNA, al igual que muchos otros videojuegos independientes. C# es un lenguaje de programación de uso general, orientado a objetos que permite la portabilidad del código fuente gracias a que el compilador genera un byte code previo al código objeto. La similitud de sintaxis con Java lo vuelve muy fácil de dominar por quienes ya sepan programar en este último. El lenguaje también cuenta con muchas API para casi cualquier necesidad. Sin duda, es una buena opción para quien quiera crear su primer videojuego.
Shell scripting para el administrador Linux
Cualquier cosa que puedas hacer desde un ambiente gráfico, la puedes realizar también desde la terminal y es posible que de forma más eficiente. Si deseas administrar algún sistema que trabaje con Linux es de suma importancia que tengas conocimiento de Shell scripting puesto que, de ese modo, puedes realizar prácticamente todo lo que desees sin depender de las configuraciones por defecto que vienen con el ambiente gráfico; incluso, la mayoría de las cosas que Linux es capaz de realizar solamente se pueden hacer desde terminal.
Si deseas aprender Shell scripting, te recomiendo acceder a una serie de entradas muy útiles para comenzar haciendo clic aquí.
Go y Python, para quien trabaje con servidores
Originalmente iba a recomendar únicamente Python, sin embargo, después de leer la información de los lenguajes usados en los sitios web más populares
Ambos lenguajes son muy simples y fáciles de aprender. Python enfatiza su sintaxis en el código legible, mientras que Go apuesta por el código minimalista. Ambos son excelentes opciones para aprender este 2017.
Si te interesa aprender Go, ponemos a tu disposición una una serie de entradas que te enseñarán lo básico del lenguaje haciendo clic aquí.
Corona SDK y Lua, para el programador de aplicaciones móviles
Corona SDK es un kit de desarrollo móvil multiplataforma, no es tan conocido como Android Studio, sin embargo, Corona nos permite crear aplicaciones y juegos hasta 10 veces más rápido (dependiendo totalmente de los requisitos de la aplicación). El lenguaje de programación con el que se trabaja en Corona es Lua, un lenguaje imperativo, estructurado y muy ligero. Una de las cosas a favor de Corona y Lua es la similitud que tiene la forma en que se trabaja con APIs y módulos de lenguajes muy populares como Pygame de Python.
Corona te permite realizar pruebas de aplicaciones en tiempo real lo cual agiliza mucho el desarrollo y, además, evita muchos de los problemas que ocasiona el emulador de otros kits como Android Studio. Puedes descargar Corona SDK y consultar su documentación aquí.
Nota: Lua es utilizado para otros fines entre los que cabe resaltar la creación de archivos de configuración de programas, aplicaciones o videojuegos.
Java, Spring Framework y XML para el que quiere un portafolios más amplio
Uno de los lenguajes más buscados por empresas hoy en día es Java, ya sea por su facilidad para desarrollar aplicaciones de escritorio o porque te permite migrar código a diferentes arquitecturas sin tantos problemas, la oferta a programadores de Java es bastante grande. Si lo que te interesa es tener un portafolio que te abra puertas a muchos trabajos, no dudes en aprender Java este año.
Uno de los framework más útiles de Java es Spring, el cual, de forma resumida y sin muchos conceptos complicados, te permite realizar inyecciones de dependencias. Las inyecciones de dependencias te permiten instanciar e inicializar objetos como más te convenga con información de archivos XML, esto es muy útil cuando un objeto puede trabajar de forma distinta en diferentes partes del código pero resultaría contraproducente modificarlo directamente una y otra vez, en su lugar solamente se realizan esos cambios en el XML y si se desean descartar simplemente se quita el framework sin mayor complicación.
XML por su parte es un meta-lenguaje que nos permite definir lenguajes de marcas de forma legible, es ampliamente utilizado en la industria para muchas tareas, entre ellas una de las más comunes es la redacción de reglas que seguirá un programa para realizar alguna tarea (como lo hace Spring con Java).
Extra: C o C++ para el uso general
Aunque son los lenguajes con los que la mayoría de las personas comienzan a programar, después de algunas experiencias personales, me di cuenta que no todos saben usarlos. Algunas personas los comienzan a aprender pero los dejan a mitad del camino por algún motivo. Aprender cualquiera de ellos te puede servir mucho en tu vida profesional puesto que ambos lenguajes son rápidos en ejecución, te permiten tener control sobre las tareas que realizas, son escalables y su documentación es muy grande; lo anterior se traduce en una alta probabilidad de encontrar ofertas de trabajo en las que busquen programadores con conocimientos sobre C o C++.
Espero que estas recomendaciones te hayan interesado. Me gustaría escuchar tus comentarios y sugerencias ¡Hasta la próxima! See ya!