Desarrollo Web Inteligencia Artificial Programación

Como elegir una ruta de aprendizaje sin perderse en el ruido - de PHP a TypeScript

Cambiar de stack tecnológico siendo desarrollador con experiencia no es una decisión menor. En este post comparto el marco de 4 variables que utilizo para elegir qué tecnología aprender sin reaccionar al hype: experiencia previa, análisis de tendencias, enfoque en fundamentos y curiosidad. Mi caso concreto: la transición de PHP a TypeScript orientada a la integración con inteligencia artificial.

Adrian Vega Adrian Vega
· · 10 min lectura · 81 vistas

Dentro de las decenas de opciones o ramas dentro del desarrollo de software, el tomar una decisión sobre en cual debo enfocarme, casi siempre trae implícitas dudas, incertidumbre, riesgos reales y muchísimo FOMO (fear of missing out / miedo a perderse algo o quedarse fuera).

En mi caso personal, tomo en cuenta 4 variables principales para enfrentar una decisión como esta:

  1. Mi experiencia previa
  2. Análisis de la tendencia
  3. Preguntarme ¿Este conocimiento es fundamental o es solo aplicable a una herramienta?
  4. ¿Qué tecnología me genera curiosidad conocer?


Siguiendo esta metodología me aseguro de que el tiempo invertido y los aprendizajes adquiridos al ser en su mayoría fundamentales, tengan un impacto positivo, aumentando mi perspectiva y el rango de acción en el campo profesional, además de invertir tiempo en algo que realmente me interesa aprender lo cual no es detalle menor.


Contexto


He trabajado en PHP prácticamente toda mi carrera profesional, aunque limitarme a decir que mi experiencia se basa únicamente en PHP probablemente seria esconder las demás tareas que engloban un trabajo en IT, como la gestión de bases de datos, tecnologías front-end, análisis de datos, configuración de servidores, despliegue de aplicaciones, entre otros.


Durante ese tiempo, he visto surgir tecnologías, nuevos frameworks, herramientas, librerías, lenguajes de programación, tecnologías en general… Al escribir esto pareciera que llevo 50 años programando, ni cerca… pero eso nos sirve para remarcar lo rápido que emergen y desaparecen tecnologías. Y con esto me surge una pregunta interesante, ¿Cómo elijo que aprender, a que ola subirme?, para tratar de mitigar los peligros de dedicar tiempo a una tecnología pasajera te compartiré 3 enfoques que tome en cuenta para seleccionar una nueva ruta de aprendizaje.


Buscar los puntos de enlace entre la experiencia previa, el análisis de las tendencias y la curiosidad.


  • La experiencia previa

Me refiero a las bases que se han adquirido tanto en la etapa de estudiante como la experiencia profesional, en específico los que me sirven como puntos de enlace entre las tecnologías en cuestión y a su vez, tener claras la diferencias, para ello sirven mucho las preguntas del tipo:

¿En qué se parece PHP a TypeScript?

¿Qué puedo mantener de mi flujo de trabajo actual y que necesitaría cambiar?

¿Tengo el hardware necesario para hacerlo?

¿Que necesito instalar y que plataformas necesito aprender a manejar?

¿Qué paradigmas son transferibles y cuales son nuevos para mí?


  • Análisis de tendencias

Esto es mera investigación, el requisito en este punto es tomar de referencia fuentes confiables como por ejemplo GitHub o Jetbrains que sabemos que tienen datos verídicos sobre las tendencias de uso en cuanto a los lenguajes de programación, aprovechando de esas fuentes de datos podemos obtener información valiosa sobre cuáles son los lenguajes de programación más utilizados, las proyecciones de esos lenguajes, que se está construyendo sobre ellos.


  • Curiosidad

Desde un punto de vista más psicológico, la curiosidad te ayudara a mantener el impulso, a mantener el interés por el tema que se está estudiando, porque no vamos a negar que toda ruta de aprendizaje en algún momento se vuelve tediosa, pero este sentido de curiosidad hace mas probable que te mantengas apegado o apegada al plan. Elegir desde la curiosidad es tomar en cuenta las inclinaciones personales y no solamente tomar la decisión porque “me conviene”, y eso en las sensaciones personales del día a día se nota mucho.


Teniendo claros los puntos anteriores tengo que preguntarme, cual es la conexión entre ellos, como puedo aprovechar mi experiencia como apalancamiento en el aprendizaje de una nueva tecnología que me llama especialmente la atención conocer y que basado en mi análisis, tenga una base sólida de crecimiento.


Enfocarme en los fundamentos


La pregunta base es: ¿Esto que voy a aprender me servirá únicamente para dominar esta herramienta o este conocimiento se extiende a todo un campo o rama de la tecnología?


Vamos a mencionar un ejemplo para explicar este punto, tomemos el caso del framework de JavaScript, Angular, que tuvo su auge entre el 2012 y el 2016 donde fue visto como una solución excelente que simplificaba la creación de Single Page Applications y fue utilizado para una gran cantidad de proyectos, luego fue perdiendo relevancia poco a poco hasta ser reemplazado en preferencia entre los desarrolladores por React.js, Vue.js, entre otros. Y me pregunto, ¿En qué casos el haber dedicado tiempo a especializarse en Angular fue una pérdida de tiempo? Solo se me ocurre que fuese una perdida de tiempo para alguien que se centró únicamente en la sintaxis específica del framework.


Y ahora me pregunto ¿En qué casos fue provechoso, aunque es un framework descontinuado? Si entendió conceptos como las promises, async / await, reactividad, componentes, etc. Ese conocimiento trasciende el framework en sí y sirve como una base muy sólida para luego utilizar otros frameworks de JavaScript. En ese caso no fue una pérdida de tiempo, porque se adquirió conocimiento transversal.


Y ese es el marco mental que puede hacer que el aprendizaje de una misma herramienta sea aprendizaje fundamental que se traslade a otras tecnologías o sea aprendizaje limitado a una sola herramienta.


Pero vamos a hacer un matiz importante, por supuesto que hay conocimiento muy especifico que no se transfiere en si mismo, no podemos pretender que el 100% de la información sea utilizable en un campo y en otro, en ese caso, el beneficio real se centra en el desarrollo cognitivo del hecho mismo de aprender. Y para profundizar en esto utilizare la analogía del estudio de una carrera universitaria.


Si terminas los estudios en una ingeniería de desarrollo de software, y luego quieres estudiar una ingeniería en electrónica, una gran parte del plan de estudio será transferible entre carreras, por lo que ya no tendrás que empezar la carrera de ingeniería electrónica desde cero, si no, ya con una gran parte del camino avanzado.

Algo parecido pasa al centrarte en los fundamentos cuando decides estudiar una nueva tecnología, ya no tienes que empezar de cero la próxima vez.


Análisis de riesgos en el intento de cambiar de stack / tecnología


Se deben de tomar en cuenta cuales son los riesgos reales de una transición como esta, en mi caso específico buscando tecnologías que integren la inteligencia artificial al flujo de trabajo de los usuarios, porque al empezar a usar nuevas tecnologías, son varias cosas las que cambian: El entorno, conceptos, sintaxis, paradigmas, entre otros, dependiendo de que tan radical sea el cambio.

Hay riesgos internos, como el sentirse nuevamente novato, el perder velocidad a la hora de trabajar en un proyecto, falta de comodidad, fricción.


Y otros riesgos externos, como lo son el elegir una tecnología que no esté fuertemente respalda, depender de una empresa que tome decisiones erróneas con respecto a la continuidad de la tecnología. Para ello nos servirá el método de investigación previa antes descrito en este post.


Lo realmente importante de este punto no es tratar de reducir el riesgo a cero, eso es técnicamente imposible, si no, tener claridad de los momentos que pueden hacer ríspido el proceso, para que cuando lleguen - porque van a llegar -, tengamos consciencia que son parte del proceso y que en la mayoría de los casos se solventan gracias a ese nivel de consciencia, avanzando y siguiendo el plan.


Ahora un resumen de como utilice esta metodología en la elección de este Roadmap transicionando de PHP a tecnologías que integren de mejor manera la IA como TypeScript y Python


Mi experiencia previa es principalmente en PHP como lo mencione anteriormente, entre estos lenguajes de programación existen ciertas similitudes como lo son el tipado donde PHP tiene tipado dinámico por defecto — los tipos se verifican en tiempo de ejecución — mientras TypeScript tiene tipado estático — los tipos se verifican en tiempo de compilación, antes de ejecutar una línea de código. La diferencia práctica es que en TypeScript el error aparece en el editor mientras escribís y en PHP aparece cuando el código ya está corriendo, otros puntos de similitud son la utilización de clases, interfaces y contratos, manejo de errores con try catch, eso solo tomando en cuenta PHP, pero también he utilizado Laravel como framework de PHP que integra tecnologías como React, Vue o Livewire que me dieron la noción del trabajo con componentes, reactividad, props, por mencionar algunos conceptos, lo que me permite entender con mayor facilidad conceptos propios de otros frameworks basados en TypeScript como Nextjs.


Analizando la tendencia de uso entre los lenguajes de programación me tope con que TypeScript fue el lenguaje numero 1 utilizado por contribuidores en GitHub según el GitHub Octoverse 2025, y una de las hipotéticas razones por la que esto sucedió fue porque el 94% de los errores de compilación generados por código de LLMs fueron fallos de type-checking, y TypeScript al pasar por un proceso de transpilación (compilación) para convertir los archivos a JavaScript ayuda a detectar esos errores de manera temprana, además de las múltiples librerías de integración de herramientas de IA producidas para el lenguaje en primera instancia.


Preguntándome, ¿qué conceptos fundamentales son transferibles de TypeScript a otros lenguajes de programación? Haciendo una pequeña investigación sobre esto me doy cuenta de que el modelo mental del tipado estático está presente de manera casi idéntica en otros lenguajes como Rust, GO, Kotlin o Swift por mencionar algunos. A su vez el pensamiento en contratos / interfaces antes de implementar funcionalidades (Design by contract) es un principio útil para aprender e implementar en otras tecnologías, también podemos mencionar el modelo asíncrono con async / await, de igual manera presente en los diseños de APIs en Python o microservicios en Go.


Seguir esta metodología de decisión, me permite bajar la incertidumbre, porque me hace consciente de los riesgos reales (o al menos de la mayoría de ellos) y me centra en los fundamentos que amplían el impacto del tiempo y esfuerzo invertidos mas allá de la herramienta especifica o lenguaje de programación especifico que he elegido. Si me preguntases, de todos estos puntos que has detallado anteriormente, cual es el más importante, sin dudas te respondería, céntrate en los fundamentos, eso hace que tu marco mental a la hora de estudiar se expanda y estes más atento a las diferentes conexiones y aplicaciones entre tu experiencia, el nuevo aprendizaje que estas adquiriendo y la curiosidad por descubrir cómo funcionan cosas nuevas.


Gracias por leerme, te invito a compartirnos en la sección de comentarios ¿Cuál de las cuatro variables se te hace más difícil evaluar?

Tags

#Laravel #PHP #React #TypeScript #Vue

Compartir

Comentarios (0)

Inicia sesión para dejar un comentario

Entrar con email

No hay comentarios aún

Sé el primero en comentar