Tener título en sistemas: ¿Titulitis o realidad?
Mi historia real sobre cómo aprendí a programar antes de entrar a la facultad, por qué pausé mi carrera, y cómo la IA cambió todo para los autodidactas como yo.
El debate eterno en la industria. Todos tienen una opinión fuerte sobre si necesitás o no un título en sistemas. Hay quienes juran que sin él no sos developer de verdad, y hay quienes dicen que es una pérdida de tiempo y plata.
Yo estuve en los dos bandos. Empecé la carrera, la cursé, saqué buenas notas, y después la pausé. Hoy tengo una perspectiva que creo que vale la pena compartir.
Esta es mi historia real. Sin filtros.
Cómo empezó todo: mods de CS y servers de WoW
A los 14 años ya estaba codeando. No porque me lo hayan enseñado en ningún lado — aprendí solo, tirando código y rompiendo cosas hasta que funcionaban.
Mi primer “proyecto serio” fue crear mods para Counter-Strike 1.6 usando Allied Modders (AMX Mod). Era una comunidad enorme, con documentación dispersa, foros llenos de threads antiguos, y nadie que te explique las cosas de forma clara. Tenías que buscar, experimentar, romper, y entender por qué algo no andaba.
Después me mudé a World of Warcraft. No solo jugarlo — administraba servers. Me cloné el core de Trinity Core (el emuladoropen source de WoW) y me puse a modificarlo. Creaba bosses con mecánicas simples, misiones custom, eventos en el mundo. Todo en C++.
¿Qué aprendí de eso? Un montón. Aprendí a leer código ajeno, a debuguear problemas que no tenían stack trace, a pensar en flujos lógicos, y a no tenerle miedo aujar cosas grandes y complejas. Aprendí que cuando algo no funciona, probablemente es porque asumiste algo que no era verdad.
El verano antes de la carrera: CS50, C, y la sorpresa
Cuandodecidí que iba a entrar a la carrera de sistemas, me tomé el verano anterior en serio. No quise llegar fresco.
Empecé con CS50 de Harvard — el curso de David Malan que está disponible gratis en edX. Ese curso me metió en cabeza la idea de que programar no era solo escribir código, sino pensar algorímicamente. Resolver problemas. Romperlos en partes pequeñas.
Después seguí con C. Aprendí punteros, manejo de memoria, estructuras de datos básicas. Toda la frustración de los segmentation faults me enseñó más que cualquier slide teórica.
Cuando empezó la facultad, creí que el mayor desafio iba a ser la programación. Había estudiado todo ese verano, ya sabía C, ya entendía conceptos básicos.
Me equivoqué.
El verdadero enemigo: Física, Matemáticas, y Álgebra Lineal
El problema no era programar. El problema eran las cosas que la programación usa como fundamento.
Física. Esa materia que te hace transpirar porque tenés que entender forces, campos, energía — y después traduzcir todo eso a fórmulas que puedan resolverse. No era difícil por ser complicada. Era difícil porque requería pensar de forma abstracta, trabajar con modelos que no podés ver directamente.
Matemáticas. Análisis, sucesiones, integrales. Todo lo que parecía abstracto y disconnected de la realidad tenía sentido cuando lo conectabas con problemas concretos. Pero llevatime.
Álgebra Lineal. Espacios vectoriales, matrices, transformaciones. Esto fue lo que más me surprise —pensé que iba a ser decorativo, y resulta que es el fundamento de todo: machine learning, gráficos, señales, sistemas de ecuaciones complejos. Todo vuelve a los espacios vectoriales.
Curiosamente, me gustaron esas materias. No por ser fáciles, sino porque me desafiaban de una forma que la programación no hacía. La programación era comfortable. Las mates eran hard.
El primer año: cuando entendí que podia aprender de ambos lados
Durante el primer año de la carrera, mientras las materias no eran tan exigentes, seguí estudiando por mi cuenta. No porque la facultad no me sirviera — sino porque quería más.
Me metí en webdev. Empecé con frontend: HTML, CSS, JavaScript. Después pasé a React. Vi tutoriales, leí documentación, armé projectitos simples. El feedback loop era rapidísimo: cambiás algo, ves el resultado, arreglás, repetís.
Después me atreví con backend. Node.js, luego TypeScript. Me construí APIs simples, integré bases de datos, aprendí a hacer auth básico. No era producción-ready, pero era suficiente para entender cómo funcionaban las cosas.
Cuando llegó el verano después de primer año, tomé una decisión: iba a meterle quinta a fondo.
El verano de la inmersión: estructuras de datos, algoritmos, y práctica real
Ese verano no fue de descanso. Fue de trabajo.
Me compré un libro de estructuras de datos — arrays, linked lists, trees, graphs, hashes. Implementé todo desde cero en Go y en C. No solo leer cómo funcionaban, sino escribirlas, entender los trade-offs, ver por qué un BST era mejor para búsqueda pero peor para inserción.
Después me metí con algoritmos. Ordenamiento, búsqueda, grafos, programación dinámica. Resolví docenas de problemas en plataformas como LeetCode y HackerRank. Al principio era lento, frustrante. Después empecé a ver los patterns: dos pointers, sliding window, divide and conquer. El cerebro se reprogramó.
Paralelo a eso, ponía todo en práctica. No quería solo teoria — quería construir cosas.
Armé un proyecto con Next.js y TypeScript. Consumía una API, mostraba datos, tenía pages, routing, styling. Después migré la misma idea a Go: un backend con Gin, endpoints REST, testing básico. Los mismos conceptos, distintos lenguajes, distintas filosofías.
Ese verano conseguí mi primer trabajo.
El primer trabajo: cuando la realidad golpeó distinto
No fue un trabajo de ensueño. Fue un junior dev en una pyme que hacía software interno. Pero fue lo que necesitaba: contexto real.
En el laburo aprendí cosas que la facultad no te enseña directamente:
- Cómo trabajar en equipo con código legacy
- Cómo leer specifications vagas y convertirlas en features concretas
- Cómo debuguear en producción (no en desarrollo, en producción)
- Cómo hablar con stakeholders que no entienden de código
También aprendí algo más profundo: cuando trabajás en algo real, la motivación cambia. Ya no era “quiero aprender esto porque está en el syllabus”. Era “necesito resolver este problema para que el negocio siga funcionando”.
El aprendizaje acelerado.
El momento que lo cambió todo: pausar la carrera
Después de mi segundo año de carrera y ya trabajando, tomé una decisión que me llevó un año tomar.
Iba a pausar la carrera por un año.
No fue una decisión fácil. Estaba tranquilo con las notas, tenía buenas relaciones con profes, estaba en track para ir bien. Pero había algo que me molestaba: sentía que aprendía más encerrado en mi cuarto 4 horas estudiando por mi cuenta que 4 horas con un profesor explicando.
No es que los profes fueran malos. Es que el ritmo de una clase está definido por el promedio del curso. Y yo no era promedio. Quería ir más rápido.
Así que decidí probar: ¿qué tan lejos podía llegar por mi cuenta en un año?
El año de la transformación: DevOps, arquitecturas, y nuevos mundos
Ese año cambió mi vida.
Primero, me перевели al equipo de DevOps. No porque fuera mi objetivo original, sino porque había un hueco y yo tenía ganas de aprender cosas nuevas. Accepté.
Lo que aprendí en ese año:
- AWS: EC2, S3, Lambda, RDS, CloudFront, Route 53. Toda la infraestructura como servicio.
- Kubernetes: pods, services, deployments, ingress, helm charts. La complejidad de orquestar contenedores en producción.
- Terraform: infraestructura como código. Definir cloud resources en archivos que podés versionar y reusar.
- Buenas prácticas: CI/CD pipelines, code reviews, testing, observabilidad, alerting.
- Go a fondo: no solo escribir código, sino escribir código idiomatico. Concurrencia con goroutines y channels. gRPC para comunicación entre servicios. El minimalismo del lenguaje.
- Arquitecturas complejas: microservicios, event-driven systems, CQRS, hexagonal architecture. Patrones que antes solo había leído en blogs y ahora veía implementados en producción.
También empiezo a tomar cursos que siempre había querido hacer:
- Bioinformática: la intersección entre biología y computación. Algoritmos para análisis de ADN, clustering de secuencias, machine learning aplicado a genomics.
- Sistemas embebidos:Arduino, Raspberry Pi, programación en C para microcontroladores. El mundo físico interactuando con código.
- Experimentación con frameworks:Rust para algo de systems programming, Elixir por la curiosidad de la programación funcional, Python para data science.
La irrupción de la IA: cuando todo cambió
En el medio de todo esto, la IA explotó.
Al principio no le di bola. Otra hype más, otra buzzword. Pero cuando empezó a afectar mi día a día laboral, abrí los ojos.
Los primeros flujos fueron simples: embeddings para búsqueda semántica, RAG para chatbots que podían responder preguntas sobre documentación interna, generación de código básico con completions.
Todo era experimental. Funcional, pero experimental.
Después apareció Claude Code.
Claude Code: el cambio de juego
Cuando Anthropic lanzó Claude Code, lo probé por curiosidad. No esperaba mucho — otras veces había usado herramientas de AI para código y eran mediocre.
Pero esto fue distinto.
Claude Code no era un autocomplete dopado. Era un agent que podía razonar sobre código, entender contexto, hacer cambios consistentes, y mantener conversaciones sobre arquitectura y diseño.
En una semana, mi forma de trabajar cambió fundamentalmente.
Ya no era “escribo código y después lo mejoro”. Era “describo lo que quiero y el modelo me ayuda a pensar la solución, implementar el código, y revisar que funcione”.
El bottleneck dejó de ser escribir código. El bottleneck pasó a ser entender problemas y diseñar soluciones.
“Ya no importa cómo lo codeás. Importa cómo lo pensás.”
El mundo ideal para el autodidacta
Hoy, después de todo ese camino, vivo en el mundo que siempre quise.
Puedo soñar una idea un lunes y tener un prototype funcionando el mismo día. Puedo abordar problemas que antes me habrían tomado semanas — ahora me toma horas o días. No porque sea más inteligente, sino porque tengo mejores herramientas y más práctica en pensar problemas.
La IA no reemplazó mi capacidad de aprender. La amplificó.
Puedo investigar cualquier tema nuevo en horas en vez de semanas. Puedo pedirle a un modelo que me explique conceptos complejos y me dé ejemplos concretos. Puedodejarlo hacer el boilerplate while yo me enfoco en lo interesting.
¿Entonces para qué título?
No estoy diciendo que los títulos sean inútiles. Los títulos te dan:
- Fundamentos firmes: estructuras de datos, algorithms, teoría de computación. Cosas que take time para learn por tu cuenta y que son easier cuando tenés un curriculum estructurado.
- Credibilidad: hay lugares que todavía filtran por títulos. No me gusta, pero existe.
- Networking: contactos, acceso a pasantías, oportunidades que no encontrás en Google.
Pero también estoy diciendo que los títulos no son el único camino. Y para muchos, no es el mejor camino.
Lo que me formó no fue la facultad. Fue:
- La curiosidad obsesiva de querer entender cómo funcionan las cosas
- Las horas encerrado aprendiendo cosas nuevas
- La disposición a tomar riesgos (pausar la carrera, cambiar de equipo, aprender cosas fuera de mi comfort zone)
- La motivación intrínseca de resolver problemas interesting
El mensaje para el que está empezando
Si estás leyendo esto y estás deciding si entrar o no a la carrera, o si ya estás adentro y estás pensando en dropout, considera esto:
No hay una respuesta correcta. Hay paths distintos y puntos de partida distintos.
Pero si decides seguir el camino autodidacta — o incluso si decis pausar como yo — tenés que entender algo: la disciplina tiene que venir de vos. Nadie te va a empujar. Nadie te va a decir qué estudiar mañana. Tenés que build tu propio curriculum, set tus propios goals, y mantener la motivación cuando todo se pone difícil.
Y hoy, más que nunca, tenés herramientas que make esto más fácil. LLMs, code editors inteligentes, comunidades online, cursos gratuitos de universidades top. El acceso al conocimiento nunca fue tan democratizado.
La conclusión
Los títulos son útiles. Pero no son necesarios.
Y para el que está dispuesto a aprender toda la vida, a experimentar, a tomar riesgos, y a build cosas — hoy es el mejor momento de la historia para ser autodidacta.
Yo no me arrepiento de haber started la carrera. Me dio fundamentos que uso todos los días.
Pero lo que me hizo developer no fue el diploma. Fue la curiosidad, las horas studyando solo, y la disposición a nunca parar de aprender.
Eso es lo único que realmente importa.
korz.sh — pingedbrain/korz Actualmente explorando el mundo de la IA y automatización