El mundo de la tecnología y la programación está avanzando extremadamente rápido. Tanto es así, que creemos que podemos estudiar un día y escribir en nuestro CV que ya sabemos un lenguaje de programación o una tecnología.
Creo que hablo por todos cuando digo que, al entrar al mundo de la programación, queríamos aprender muchos lenguajes para poder decirle a algún amigo, conocer la sintaxis de otro lenguaje, o simplemente ponerlo en el CV. Pero, ¿a cuántos lenguajes de programación me convierto en programador? ¿Cuánto necesito aprender para "subir de nivel" y decir que ahora soy intermediate o senior? ¿Si solo sé un lenguaje, soy junior? En esta ocasión vamos a abordar qué tan real es que necesitamos aprender primero las bases de la programación antes que cualquier tecnología o lenguaje específico.
No necesitas saber diez lenguajes, necesitas saber conducir
Ver cursos intensivos de 13 horas de Python o JavaScript para volverte "experto en un día" no te enseña a programar. Es el equivalente a aprender dónde están los botones, el radio y las luces en 10 marcas distintas de autos, pero no saber meter primera, mirar los retrovisores ni frenar.
Programar no es memorizar qué botón presionar en cada lenguaje; programar es saber conducir. Cuando dominas la lógica, el flujo y la resolución de problemas (las bases), puedes subirte a un Mazda, a un Toyota o a una moto —Python, C#, JavaScript— y salir a rodar entendiendo exactamente las reglas de conducción.
Lo que de verdad significa construir software
La programación es, por definición, un proceso de dar instrucciones ordenadas a una máquina para que realice una tarea específica. Si queremos construir un software, debemos empezar por entender el problema.
Supongamos que queremos construir un software para aprender a conducir (no solo a saber dónde están los botones del automóvil). Nuestro problema principal es enseñar a alguien a conducir. Ahora, debemos estructurar nuestra solución. Podríamos dividirla inicialmente así:
- Entender el perfil del alumno y cómo aprende.
- Definir dónde y cómo se almacenará su progreso.
- Diseñar la lógica de las lecciones y el sistema de evaluación.
- Adaptar la experiencia tanto para quien entra 5 minutos desde el teléfono como para quien estudia horas en su computador.
- Generar una certificación válida para la persona que terminó de aprender.
Pero si lo puedes notar, en ningún momento hemos hablado de un lenguaje de programación en específico. Todo ese análisis ocurre en papel y en tu cabeza antes de escribir una sola línea de código. Todo esto —sin haber tocado una sola línea de código— es lo que separa a alguien que memoriza sintaxis de alguien que sabe construir software.
El precio de aprender sin rumbo
Los lenguajes de programación realmente pueden pasar a un segundo plano cuando hablamos de construir un software. Aprender de forma superficial genera lo que se conoce como framework fatigue, responsable de que hasta un 73% de los desarrolladores experimente burnout al saltar de herramienta en herramienta sin un propósito claro.
Peor aún: este vicio se traslada a la industria. Según datos de PMI, el 37% de las organizaciones señala los requerimientos inexactos como la causa principal de que un proyecto de software fracase, no el lenguaje utilizado. No necesitas encargar un avión para cruzar dos calles cuando una bicicleta resuelve el problema de forma óptima.
Empieza por lo que ya sabes hacer
¿Qué deberías aprender entonces al dar tus primeros pasos? Si estás empezando, domina primero la lógica de programación, las estructuras de datos y el análisis de problemas. Esas son tus verdaderas bases de conducción. Te tomará más tiempo y paciencia, pero te ahorrará años de dar vueltas en círculos aprendiendo a encender motores que todavía no sabes manejar.
Así que, antes de que salgas de aquí con la fórmula secreta, empieza por solucionar problemas en cualquier momento (que probablemente ya lo haces). Si se te pierden las llaves de tu casa antes de salir, ¿cómo lo solucionas? Si tienes que preparar tu almuerzo, ¿qué pasos sigues? Si estás enfrentando a un final boss en tu videojuego favorito, ¿cómo crees que lo puedes vencer?
Nuestro cerebro está preparado para resolver problemas e incluso pensar horas en la solución de uno, pero a veces le tenemos tanto miedo a la palabra "algoritmo" que creemos que es aburrido y extremadamente difícil solucionar un problema. Un algoritmo no son líneas escritas sin sentido, ni números y letras matemáticas que te dan un resultado mágico. Un algoritmo es un conjunto de instrucciones ordenadas y sin errores que sirven para resolver un problema. Y si te fijas, tiene una conexión muy fuerte con la definición de programación.
No le tengas miedo a las palabras difíciles que usamos en tecnología. Realmente, la tecnología es más pragmática de lo que crees. Pon tu música favorita, identifica tu problema, busca cómo lo solucionan y crea una serie de pasos para resolverlo tú mismo, y escríbelo en un cuaderno o en tu app de notas. Cuando menos te des cuenta, habrás construido tu algoritmo.
Lo único que te hace falta es una roca sólida para montar tu software. Y es lo que veremos en nuestro próximo artículo.

