Sugerencias para desarrolladores que recién empiezan y que ya leyeron todas las otras sugerencias
La versión original de este post se puede encontrar en Computer Things (inglés).
Alguien me preguntó si tendría algún consejo para personas que recién arrancan programación. Al principio, pensé que era una pregunta tonta. Solo hace 10 años que soy programador, muchos de los lectores de mi newsletter llevan programando más tiempo del que yo llevo vivo!
Pero después fui y busqué algunos “consejos para personas que empiezan a programar”, y pensé que había muchas cosas que faltaban. Así que acá hay 13 consejos para personas que recién arrancan a programar. Algunos de ellos son contradictorios.
La gente no me escucha porque soy un buen programador, me escuchan porque escribo bien. Lo mismo aplica a prácticamente todas las personas que leas. Esto no quiere decir que automáticamente debes rechazar todo, pero significa que debes pensar y evaluar si aplica o no a tu situación. Y tomar el argumento de la “verdad objetiva” con cuidado: prácticamente no hay estudios científicos del software, y lo que hay, es muy inconcluso.
Pero tampoco te preocupes mucho en ser “engañado” o “aprender las cosas incorrectas”. Si te gustan las ideas de alguien, ¡probalo! Mientras no estés saboteando tu trabajo o tus compañeros de trabajo, probablemente funcione, incluso si cuando miras hacia atrás piensas “Debería haberlo hecho diferente…”. ¡De eso se trata aprender!
Lee el libro “Debugging: las 9 reglas”. Conseguilo en una librería, pedile a tu empresa que lo compren, o conseguilo de alguna otra forma que se te ocurra. Es muy fácil de leer, y te enseña algo que muchos libros iniciales de programación ni siquiera cubren.
En algún punto vas a descubrir la Forma Correcta de programar, lo que hace que todo esto tenga sentido, y vas a estar convencido que todo el mundo debería usar ese mismo método para hacer las cosas. Para mi, la forma correcta fue test-driven development, para vos puede llegar a ser programación funcional, lisp, métodos formales, u otro millón de cosas.
No te voy a decir que no te metas de lleno en esta Forma Correcta, porque es prácticamente imposible. Y realmente, se siente increíble haber descubierto esta Forma Correcta, y la vida es muy corta para no sentirte bien. Pero tené en cuenta que al estar deslumbrado, podes llegar a fanatizarte y convertirte en el “Tipo de la forma correcta”. La fase de la luna de miel eventualmente se va a terminar y vas a darte cuenta que programar es frustrante y complicado, no importa si usas esa Forma Correcta o no. A medida que pase el tiempo, vas a identificar más “Formas correctas” y vas a poder aplicar la que corresponda en cada momento.
Cuando te encuentres por primera vez con esta “Forma correcta”, probablemente sea por alguien que se convirtió en el “Tipo de la forma correcta”. No le guardes rencor por esto, y trata de no confundir la técnica real con la forma en que el “Tipo de la forma correcta” la presenta. La mayoría de las ideas necesitan algunas modificaciones de su forma más “pura” para ser implementadas e integrarse bien con otras ideas.
Julia Evans alguna vez dijo “detrás de cada buena práctica, hay una historia de horror”. Si no entendes que es una Buena Práctica, busca la historia de horror que la inspiró. De esta forma vas a entender porque esa práctica tiene sentido. Puede ser algo totalmente irrelevante para vos, así que podés estar tranquilo de hacer algo diferente en tu caso.
Sobre el tip anterior: un montón de “mejores prácticas” son muy dependientes del “camino”, con una mezcla de historia y factores culturales. Hay un montón de cosas que hacemos porque simplemente nuestros mentores las hacían, y ellos las hicieron porque sus mentores las hacían, tal vez para arreglar cosas problemas y situaciones que ya ni siquiera son relevantes. Si algo suena como una Just-so Story, puede ser que lo sea. Usualmente podés buscar hacia atrás el camino completo, si tenés ganas.
Salí a caminar
Casi todas las herramientas que usas tienen una profundidad oculta, desde tu lenguaje de programación favorito, pasando por git y JIRA. No sientas que tenés que convertirte en experto en todo, pero pasa 5 o 10 mins aprendiendo las funcionalidades de cada una.
Habla con personas de otra parte de tu empresa: soporte, negocios, ventas, etc. Si tenés tiempo y confianza con alguien, trata de hacer “shadowing” (trabajar a la par para ver cómo resuelven los temas). ¡Te sorprenderá lo que vas a aprender!
De ser posible, probá con varios tipos de programación al principio de tu carrera. Ojo, esto no significa cambiar de carrera: la mayoría de las compañías hacen muchos diferentes tipos de programación a la vez. Entonces, si tu primer trabajo es una compañía orientada a web, probá algo de frontend, algo de backend y algo de operaciones, bases de datos, y así. Esto te permite aprender, pero sobre todo te permite entender realmente que te gusta. Mi primer trabajo era como desarrollador frontend y era miserable. Después me moví a Backend y fui mucho más feliz, y también ayude a las personas que querían pasar más tiempo haciendo frontend, liberando mi rol.
Probablemente ya escuchaste que el software es un campo que cambia todo el tiempo, y que no deberías casarte con ningún framework, es mucho mejor aprender las cosas fundamentales. Si bien esto es verdadero, no te explican el “porqué”. Por motivos estructurales, la información en el software se propaga muy rápido. Esto se debe a muchos factores (como internet, conferencias open source, etc), pero en general hay una barrera muy baja para compartir ideas en el software. De esta forma forma es muy fácil que muchas personas sepan sobre algún proyecto que se usa en algún lado, incluso si solo una persona lo usa.
La parte mala es que hay muchísimas tecnologías que vas a escuchar nombrar que prácticamente no tienen uso, y nunca tendrán una gran adopción, pero parece que todo el mundo las usa porque las escuchas nombrar todo el tiempo. Es por eso que es importante ser conservador. Si escuchas sobre algo que te emocione, animate a ser un early adopter, pero si quieres esperar un par de años para ver si madura, también está perfecto.
Por último, ninguno de nosotros puede predecir el futuro, como ninguno de nosotros pudo predecir el presente. Intenta hacer lo mejor que puedas, vive tu vida en base a tus valores y disfruta el viaje.
- La versión original de este post se puede encontrar en Computer Things (inglés).
- Autoría por Hillel Wayne, traducción por @peorth80, revisión por @nachichuri.