Reflexiones a la mitad de mi tercer año

A medida que más y más personas entran en el amplio campo de la programación, me hace querer sentarme y reflexionar sobre lo que he aprendido al entrar en mi tercer año de codificación casi todos los días. Ya sea por un proyecto escolar o por mi propio interés, el acto de codificar se ha convertido realmente en una parte fundamental de mi vida, y aunque he tenido mis altibajos, hasta el día de hoy me encanta cada parte.


No tenía ni idea de qué esperar cuando empecé este viaje hace poco más de dos años. Tomaba lo que aprendía en mis clases introductorias y construía cosas que pensaba que serían geniales. Cuando aprendí las sentencias if/else y las entradas en Python, construí una caja registradora que sólo permitía comprar fresas, naranjas y manzanas. Revolucionario, lo sé – guarda tu financiación de la Serie A para otro momento, por favor.

A través de este acto de aprendizaje por proyectos, fui capaz de profundizar realmente en conceptos extremadamente simples que fortalecieron mi base hasta su máximo potencial. Sin embargo, hay algunas cosas que desearía haber entendido completamente cuando empecé. Tal vez si hubiera escuchado más cuando estaba en esta etapa, habría tenido más sentido para mí. Tal vez sólo necesitaba aprender con el tiempo.


En cualquier caso, aquí están algunas de las lecciones que he sacado de más de dos años de codificación.


1. La depuración es un arte, no una habilidad

Tener un código que parece perfecto pero que no funciona correctamente es más común que tenerlo correctamente. Realmente creo que la depuración es un filtro más grande de la programación que el aprendizaje de la codificación en sí. De hecho, aprender a codificar en cierto sentido es aprender a depurar.

La depuración es un arte. Si estás mimado (como yo) y usas principalmente Python, a menudo es extremadamente fácil encontrar las soluciones a tus problemas. Si usas un lenguaje de bajo nivel, como C++ o C, las cosas se ponen mucho más difíciles y necesitas un ojo agudo para encontrar los errores.

Cuando eres nuevo en la programación en general, las cosas que son realmente triviales son a menudo más difíciles al empezar. Sin embargo, con el tiempo llega la familiaridad y el reconocimiento de patrones. Por ejemplo, no necesito contar el número de paréntesis si hay muchos al lado. Con el tiempo he desarrollado una sólida intuición para saber en qué función/método estoy, teniendo en cuenta cuántos hay después de donde estoy escribiendo.

Incluso entonces, si cuento mal y se produce un error, todo lo que necesito saber es en qué línea y puedo resolverlo a partir de ahí. Aunque el número de paréntesis no parece un error común, te sorprenderías.

Con el tiempo, tu intuición se hará mucho más fuerte. Cuantos más errores experimentes, mejor te volverás. Todavía recuerdo el miedo que me daba cada vez que se lanzaba un error. Ahora, cuando veo uno, no me inmuto porque es más probable que se pierda un punto y coma que cualquier otra cosa. Tú también lo conseguirás.

2. Siempre buscarás las mismas cosas una y otra vez.

Todavía estoy luchando con esta, principalmente porque es la que más alimenta mi síndrome del impostor. No importa cuántas veces utilice ciertos paquetes o manipule ciertos tipos de datos, siempre buscaré el mismo puñado de cosas. Ciertas técnicas están arraigadas en mí; otras, sin embargo, mi mente nunca lo permitirá. No sé por qué, pero he llegado a aceptarlo.

Menciono esto porque sé que tú también te enfrentarás a esto una y otra vez. No eres peor programador porque necesites buscar algo regularmente y no puedas resolver un problema como los hackers de la película. Ojalá fuera tan fácil. Sin embargo, no lo es y eso está bien. Por favor, si no aprendes nada de este artículo, al menos recuérdate a ti mismo que esta representación es la encarnación de Hollywood: poco realista pero que al menos parece genial.

Al menos yo me parezco a los hackers de la película cuando busco algo porque eso está arraigado en mí, y eso me basta.

3. Solo se puede aprender hasta cierto punto. Elige lo que amas y hazlo de todo corazón.

Esto es más bien una lección para casi todo en la vida, pero se aplica igualmente cuando se trata de la programación. De hecho, cuando la gente me dice que tengo muchas opciones porque sé programar, me estremezco por dentro. A menudo se asume que no hay diferencia en las habilidades necesarias para cada trabajo, cuando en realidad hay especializaciones como en casi cualquier otro campo.

Aprender a especializarse significa aprender a perfeccionar tus habilidades. No creo que los generalistas tengan éxito en ningún puesto, especialmente en los tiempos que corren. Especializarse al principio de la carrera es importante. Si decides cambiar de rumbo más adelante, es tu decisión. Sin embargo, cuando empieces, ten un tipo de proyecto en mente y trabaja primero hacia él. Alguien que está aprendiendo a ser un diseñador de UI / UX necesitará aprender diferentes marcos de trabajo que un científico de datos o un ingeniero de software.

Conocer las habilidades necesarias para el camino que quieres seguir te pondrá millas por delante de tus compañeros, ya que todos son principiantes. Así que cuando me preguntan cuál es el mejor lenguaje de programación para principiantes, mi respuesta es siempre “el que más rápido complete tu proyecto”.


4. Si no disfrutas haciéndolo en tu tiempo libre, lo despreciarás en el trabajo.

No puedo enfatizar esto lo suficiente. No puedes ni tendrás éxito en este campo si crees que es un plan para hacerse rico rápidamente. Esto es lo más alejado de la realidad.


Si disfrutas programando en tu tiempo libre, el trabajo será aún más divertido a pesar de los retos a los que te enfrentes. Tendrás que enfrentarte a retos día tras día, y tendrás que averiguar cómo encontrar soluciones elegantes a problemas complejos de forma regular y rápida. Y quiero decir rápido. Hay una razón muy sencilla por la que tanta gente se agota y se pasa a un trabajo de ritmo más lento, y probablemente se deba a que las expectativas del trabajo son muy diferentes del trabajo en sí.


Los mejores programadores que conozco también programan en su tiempo libre. No lo hacen porque sientan la necesidad, sino porque les encanta hacerlo. Para ellos, tienen proyectos de trabajo y proyectos de diversión. Requiere una cantidad diferente de energía mental para ellos. Tal vez sea porque la escala es menor, por lo que hay menos presión sobre ellos, pero creo que también da rienda suelta a su lado más creativo. Este hábito no sólo perfecciona sus habilidades, sino que también les da una sensación de libertad creativa.

5. Codificar no es una habilidad. Es una carrera

Después de dos años de programación, pensé que podía leer el código fuente por diversión. Aunque puedo hacerlo, me alegro de no hacerlo. Sólo lo hago en momentos verdaderamente desesperados.

Sólo hay una manera de ser el mejor programador posible, y es programar durante décadas. Probarte a ti mismo para una carrera no es una cuestión de habilidad, es una cuestión de pasión y motivación interna. Los que tienen éxito a largo plazo lo hicieron porque eligieron un campo que realmente les interesaba y en el que querían crecer.

Mira, yo llevo dos años y medio programando y soy un niño en este juego. Si mi edad estuviera determinada por el número de años que llevo programando, todavía no estaría en preescolar. Creo que sí. Sin embargo, eso no viene al caso.

Habla conmigo dentro de diez años y quizá entonces mis consejos sean un poco más válidos. Siempre estoy aprendiendo y desarrollando mis habilidades, sin apenas excepciones. Cuantos más retos, mejor; mi yo futuro me lo agradecerá. Piensa a largo plazo y tendrás un gran éxito.


Reflexiones finales.

En este campo en constante crecimiento, lo único realmente importante es tener la mentalidad de un niño en el día a día. Aprender y crecer constantemente, y eso es lo único que importa. Los errores son normales y todas esas cosas motivadoras. Olvida todas las tonterías sensacionalistas que lees. No vas a conseguir un trabajo en tres o incluso seis meses. Si tienes mucha suerte y todos los contactos del mundo, puede que consigas un trabajo en un año. Sin embargo, si ese es tu caso, ponte en contacto conmigo; me encantaría saber quién eres y a quién conoces.

Sólo hay una forma en la que he encontrado el éxito en este campo y es a través del trabajo constante y la disciplina. Un buen código es un buen código, y eso es todo lo que buscan los solicitantes de empleo. Sigue codificando y te prometo que conseguirás lo que quieres antes de llegar a la escuela media (en años de programación).


Gracias por leer.