Este articulo lo estaba preparando desde comienzos del año, pero no había tenido el tiempo de terminarlo hasta ahora.
Una nueva década han comenzado. Cada nuevo año millones de personas se proponen nuevas metas. Una de mis metas que se repite de año en año es continuar a mejorar desde el punto de vista de programador.
Tener una bola mágica que nos dijera cuál será la próxima tecnología que estará en boga sería de gran utilidad porque nos facilitaría el trabajo acerca de que deberíamos estudiar. Pero por más que he buscado aun no he encontrado ninguna bola mágica.
Mirando en retrospectiva la última década hemos visto como ha aumentado mucho la popularidad de algunos lenguajes y como la de otros ha decrecido. ¿Si las tecnologías y el mercado cambian tan rápido, vale la pena estudiar alguna tecnología en específico?
Supongamos que mañana aparece un nuevo lenguaje de programación llamado “Excelente”, que permite hacer tanto la programación funcional (PF) como la orientada a objetos (POO) y que de repente todas las compañías necesitan migrar sus sistemas a este nuevo lenguaje, por las excelentes características de este en términos de rendimiento, mantenibilidad, etc. Desde un punto de vista práctico todos los programadores en el mercado tendrían cero conocimientos acerca del lenguaje, excepto los que lo crearon. Pero sin embargo los que tengan ya alguna experiencia tanto con POO como con PF, podrán transferir sus conocimientos al nuevo lenguaje, sólo deben aprender la sintaxis y peculiaridades de este. Entonces todas esas horas que gastamos estudiando PHP, Elixir u otro lenguaje, no serán en vano. Es por eso que es importante aprender bien las bases de la programación, mantener una mente abierta y explorar nuevas tecnologías y/o formas de resolver los problemas.
Hoy no podemos decir cuál será el lenguaje/framework más popular de aquí a 5 años, pero lo que si es casi 100% seguro es que no será el/los que son hoy. Como dijera Heráclito: “La única constante es el cambio”.
¿Entonces si no tenemos la bola mágica cómo podemos prepararnos para el futuro como desarrolladores? Yo veo dos vías: Crear nuestro propio lenguaje/framework y mostrarles a los otros desarrolladores cuanto los puede ayudar en su trabajo del día a día, esta vía creo que es un poco complicada, la otra es continuar estudiando. ¿Pero con tantos recursos en Internet, donde encontrar información que nos resulte realmente valiosa? Aquí comparto con ustedes la lista de sitios que personalmente utilizo, no pretende ser una lista exhaustiva, en Internet hay muchos más recursos, pero estos en particular me han resultado muy útiles, y pienso que a usted querido lector también le pueden resultar útiles.
Excelentes cursos de prestigiosas universidades. Este es mi recurso favorito cuando quiero actualizar mis conocimientos acerca de Algoritmos, Estructuras de Datos y otros tópicos de Ciencias de la Computación en general. Todos los cursos se pueden pasar de forma gratuita. Para obtener los certificados si hay que pagar.
Es una alternativa a Coursera. El funcionamiento es muy similar.
Excelente recurso. Lo utilizo principalmente para refrescar mis conocimientos matemáticos. Tiene algunos recursos muy interesantes para comenzar en programación y para los estudiantes desde preescolar hasta el preuniversitario. Es totalmente gratuito.
Este sitio tiene muchísimos cursos en diferentes tecnologías. Una de las funcionalidades que me gusta mucho acerca de este sitio es que organiza el contenido por roles, ejemplos: Rol Desarrollador Node, Rol Desarrollador React, etc. También organiza el contenido por caminos (Paths) Javascript, Java, etc. Te permite comprobar tus conocimientos sobre los tópicos que estás estudiando con la opción Role IQ y en función de tus resultados, te muestra recomendaciones sobre el contenido que deberías estudiar. La opción Premium tiene cursos interactivos, proyectos y prácticas para algunas certificaciones. Este sitio no es gratis.
Anteriormente era Lynda.com, después Linkedin lo compró y lo renombró como Linkedin Learning. Es muy similar a Pluralsight, pero sin los Roles. Este sitio no es gratis, pero si tienes una cuenta de alguna biblioteca pública que ellos autoricen, puedes acceder a todo el catálogo de cursos de manera gratuita.
Ejemplo: Biblioteca de Toronto: https://www.torontopubliclibrary.ca/detail.jsp?Entt=RDMEDB0187&R=EDB0187
Minicursos. Por lo general cada video tutorial dura menos de 10 min. Centrado principalmente en JS pero tiene cursos sobre otros lenguajes también.
Las dos grandes referencias de video tutoriales en el mundo PHP son:
Centrado en el Framework Symfony
Centrado en el Framework Laravel
Ambos sitios ofrecen excelentes tutoriales acerca de los frameworks en que se basan, PHP en general, Testing, POO, Buenas Prácticas, Patrones de Diseños y otros. Estos sitios son pagos.
El inglés es primordial en el mundo de la programación. La mejor literatura, la documentación de muchos frameworks y lenguajes está disponible solamente en inglés. Por lo que es super importante comenzar/continuar a mejorar nuestro inglés. Para el estudio del idioma Ingles también hay un sinfín de recursos en Internet. Personalmente mi preferido es: Duolingo. Es gratis.
Hay varias compañías que destinan fondos para la superación de sus empleados y que pueden financiar muchas de las suscripciones a estos sitios. Si la subscripción anual no cabe en nuestro presupuesto de superación profesional, lo mejor es decidir bien que es lo que se quiere estudiar y hacer un intensivo de 1 – 3 meses en algunos de los sitios que ofrezcan cursos de nuestro interés y después de haberlos completados cancelar la suscripción. Casi todos estos sitios ofrecen una semana o 10 días de ensayo gratuitos.