En este artículo te cuento, desde mi punto de vista, cómo se forma un programador, o al menos, cómo debe formarse.
Espero que te sea de ayuda si recién estás comenzando por este camino. También puede ser de utilidad para personal de recursos humanos que quiera comprender un poco cómo es el proceso de formación de los desarrolladores.
Este es un artículo que escribí en 2016 y publiqué en Medium. Por ese entonces, me desempeñaba como líder técnico y líder de proyectos en una compañía de software.
Lo que me hace traerme este artículo a mi blog es el tema que trata y que tiene que ver con muchas preguntas que me llegan a otras entradas, principalmente a la de si es posible aprender a programar después de los 30 años.
Contenido
Cómo se forma un programador
Trabajo a diario con programadores nóveles y soy guía en el proceso de transformación del desarrollador aficionado al profesional.
En el día a día se van dando pasos pequeños en el aprendizaje de conceptos y al pasar el tiempo se ven los avances. Hasta aquí nunca me había detenido a pensar cómo se forma un programador. Haciendo este ejercicio, considero que hay distintas aristas, las cuales explicaré a continuación.
Autoaprendizaje
Creo que toda educación es, en el fondo, autoeducación. Un programador tiene que tener la capacidad para enseñarse algo que no sabe. Hoy en día la fuente de recursos de información es Internet y lo único que se necesita para aprender es tener como mínimo un dominio básico del inglés y algo de voluntad.
Más adelante hablaré de la teoría que un programador necesita conocer para alcanzar su plenitud. Por eso quiero diferenciar la parte autodidacta, que está mucho más vinculada con la investigación de áreas desconocidas que con el estudio de áreas ya conocidas.
Ser autodidacta en programación es poder incorporar un conocimiento (una nueva tecnología, una técnica, un método) de forma autónoma, sin depender de la explicación personalizada de alguien. Siempre vamos a depender de otras personas. Cuando leemos el blog de otro programador estamos recibiendo su explicación, pero es la misma explicación que reciben los demás que leen el mismo blog. No hay nadie traduciéndonos el mensaje, somos nosotros mismos los que tenemos que interpretarlo.
Maestro y aprendiz
La saga de Star Wars cuenta que en el proceso de formación de un caballero Jedi o de sus enemigos, los Sith, siempre debe haber dos: un maestro y un aprendiz. Los conocimientos se pasan de uno a otro.
Extrapolando esto a una galaxia mucho más cercana, como la de la programación, es complicado que cada programador tenga un único maestro o que un maestro tenga un único aprendiz. Pero seguramente muchos en nuestras carreras hemos tenido algunos referentes o mentores que nos han explicado o a quienes hemos copiado.
Esa persona puede ser guía y enseñar el camino, poniendo desafíos en el orden adecuado para incrementar las capacidades del programador de forma progresiva.
Práctica
La práctica consiste en hacer, hacer y hacer. Repetir muchas veces algo que se aprendió es clave para asimilarlo. El objetivo es que cada vez el resultado sea de mayor calidad y más rápido. Además, con el tiempo empieza a abrirse el abanico de lugares conocidos dentro del arco tecnológico y así es como se forma la experiencia.
Para practicar se necesita tiempo. Hay que pasar horas y horas sentado escribiendo código. Leyendo código. Volviendo a escribir código. Leyendo código ajeno, leyendo código propio. Refactorizando código ajeno, refactorizando código propio.
Teoría
Conocer la teoría no alcanza, hay que estudiarla. Analizarla, es decir, separarla en partes y entenderla de forma individual a la vez que integrada. Conocer cada aspecto del lenguaje principal que queremos dominar. Cada concepto genérico de la programación. Todo eso parte del estudio.
La diferencia con la investigación es poca, pero podría decir que investigar parte de no conocer nada acerca de algo y estudiar la teoría es completar los baches que nos faltan con el fin de aprender completamente una tecnología, partiendo del conocimiento básico hacia el dominio absoluto.
Estudiar la teoría es básicamente leer. Leer libros, manuales, documentación. Internet está llena de material para aprender cualquier aspecto tecnológico, así que no hay excusas. Lo único que puede llegar a ser necesario, como ya comenté antes, es tener un conocimiento de inglés técnico para poder ampliar la potencial bibliografía a consumir.
En equipo
Se puede escribir código de forma aislada durante un tiempo, pero en algún momento, el programador necesita desenvolverse en un ámbito junto a otros programadores.
Trabajar en equipo sirve para potenciar las habilidades. Genera aprendizaje al compartir conocimientos de forma directa. Hace que se puedan explicar conceptos cara a cara, que se pueda leer el código que otro escribió y preguntarle qué hizo.
Las reviews de código son instancias de aprendizaje donde los programadores revisan el código escrito por otro, hacen correcciones, observaciones y permiten que ese desarrollador aprenda de sus errores y evolucione.
Por otra parte, trabajar en equipo genera competencia. La sana competencia es buena. Promueve la mejora. Hace que nadie se sienta cómodo quedándose con lo que ya sabe. Obliga a dar un poco más para no ser menos.
Educación formal
La educación formal, representada por clases en escuelas, universidades, institutos y otros similares, son, en mi opinión, un método de aprendizaje no tan bueno.
Los cursos de instituciones privadas suelen ser muy livianos en cuanto a exigencia y poco profundos en cuanto a contenido.
En mi experiencia universitaria, la forma de escribir código nunca fue evaluada de forma exhaustiva. Las instancias de entrega terminan haciendo siempre que se entregue cualquier cosa con tal de que funcione. Todo lo contrario a lo que se necesita a la hora de construir código en el mundo real.
A pesar de que no creo que sea la mejor fuente de formación para un programador, es una de ellas, así que debo considerarla.
Aspectos que tenés que considerar para tu carrera como programador
Estas son las aristas que encuentro en el proceso de formación de un programador. A veces estas se cruzan y mezclan siendo difíciles de diferenciar. Por ejemplo, cuando en la universidad nos obligan a estudiar la teoría.
Así que si estás buscando formarte como desarrollador, considerá cada uno de estos aspectos. Investigá por tu cuenta los temas y practicá. Si es posible, integrate a un equipo de trabajo. Esto puede ser más fácil si conseguís un empleo en la industria del software.
Si podés hacer una carrera vinculada a la programación, mejor, pero tené en cuenta que no te convertirás en un gran programador solo por cursarla y completarla.
Por último, estés en el ámbito que estés, buscá un mentor, una persona que te guíe, especialmente al principio, en el camino de la programación.
Más contenido en Crónicas Freelancer
Espero que este artículo te haya gustado. Si tenés alguna duda o querés hacer algún aporte, dejame un comentario.
Si estás buscando hosting o servicios en la nube para tus apps, te recomiendo Digital Ocean. Seguí este enlace para obtener US$ 200 de crédito para usar en un periodo de 60 días.
Te invito a que me sigas en las redes: LinkedIn, X, GitHub e Instagram. También estoy en CodeWars, plataforma que te recomiendo para practicar ejercicios de programación.
Eso es todo. Muchas gracias por tomarte el tiempo de leerme.
Hasta la próxima.