Para otros desarrolladores, la respuesta puede ser diferente, pero para mí es “No puedes”. O al menos no puedo. He programado como pasatiempo durante 35 años y lo he hecho profesionalmente durante 15. He trabajado para las principales empresas de tecnología y se me considera un desarrollador senior. Y sin embargo siempre me siento inadecuado. Para mí, eso va con el territorio. Tanto así que si me sintiera adecuado, sería sospechoso.
La programación no tiene fondo. Nunca llega a ese punto dulce donde está seguro de que puede resolver cualquier problema, y definitivamente no llega a un lugar más dulce donde está seguro de que puede resolver cualquier problema con elegancia y eficiencia. La mayoría de los programadores miran hacia atrás al código que escribieron hace un año y piensan: “¡Ugh! Me gustaría tener tiempo para reescribirlo”. Hay excepciones, pero esos genios son raros.
Lo que ha cambiado respecto a mí desde que era más joven es esto: (1) He aceptado el hecho de que estaré poniéndome al día en toda mi carrera. Parte de lo que disfruto de la programación es que se enfoca en mis áreas de estupidez y me ayuda a mejorarlas; (2) He aceptado el hecho de que siempre habrá mejores programadores que yo, y si alguna vez soy tan bueno como ellos , todavía habrá programadores mejores que yo. En lugar de competir con ellos, trato de aprender de ellos; y (3) me he dado cuenta de que casi todos los programadores que conozco también están poniéndose al día y parados en los hombros de los mejores programadores.
Si odias ponerse al día y detestas no ser el mejor, la programación es la carrera equivocada para ti. Si disfrutas luchando, siendo desafiado, sintiéndote estúpido y superando gradualmente tu estupidez, puedes tener los ingredientes de un gran programador.
- ¿Por qué siento tanta envidia de la esposa de mi ex novio?
- ¿Cómo se ponen emocionalmente unidos los hombres?
- ¿Qué puedo hacer por un día que me haga sentir que acabo de tomar un retiro de una semana?
- ¿Cómo se siente pensar con “una mente clara”?
- ¿Por qué no me siento confiado frente a la gente?
También he tenido que aprender la tenacidad. Primero aprendí la programación imperativa, y luego la programación orientada a objetos. Programación funcional lastima mi cerebro. Pero yo quería aprenderlo. Ahora, es una parte fundamental de mi trabajo, pero me tomó cerca de ocho años de lucha para sentirme cómodo con él. Algunos programadores lo recogieron mucho más rápido. Para mí, fue un trabajo largo y duro.
Hubo muchas veces que me detuve por completo con el sentimiento de “simplemente no puedo entenderlo”. No se sentía como un obstáculo temporal. Se sentía como una imposibilidad. Aprender mónadas (o lo que sea) me pareció imposible como volverme invisible o hacer crecer un tercer brazo. Mi cerebro me gritó: “¿Por qué molestarme? Es una pérdida de tiempo. Has alcanzado tu capacidad. La programación funcional no es para ti”.
Pero he aprendido a empujar más allá de eso. Ahora, casi ignoro “¿Por qué molestarme?” O, mejor dicho, lo traduzco a “Estoy sobrecargado. Necesito tomar un descanso por una semana, un mes o un año, y luego intentarlo de nuevo”. Lo que aprendí es que después de un descanso, cuando vuelvo al tema, tengo que retroceder (a veces volver a empezar) pero inevitablemente me alejo más que la última vez. A veces es solo un par de pasos más, pero siempre es progreso.
Mientras tanto, todavía podía programar. Había solo ciertos aspectos de la programación que estaban fuera de mi alcance. Todavía hay La programación funcional ya no es una de ellas, así que he pasado a otros desafíos.
Un consejo más: hay dos tipos diferentes de compañías tecnológicas, a las que llamaré Tipo A y Tipo B. La primera es altamente competitiva. A los empleados allí no les gusta ayudarse unos a otros, y hay una actitud de hundirse o nadar. Son el tipo de lugares donde los programadores se meten en discusiones masivas entre sí y no se les da mucha importancia a las habilidades sociales.
Las empresas de tipo B son relajadas y colaborativas. No hay vergüenza en estos lugares cuando admites ignorancia, y si le pides a otro programador que te ayude, estará feliz de hacerlo.
No voy a decir que un tipo de compañía es mejor que el otro. Es cuestión de gustos. Algunas personas prosperan en entornos super competitivos. Algunos no lo hacen Mi consejo es (a) darse cuenta de que existen ambos tipos (no suponga que todas las empresas de tecnología son como las que usted ha trabajado) y (b) esforzarse por trabajar en el tipo que mejor se adapte a su personalidad.
Oh, lo siento, un último consejo: trata de encontrar un mentor. Esto podría ser algún tipo de situación oficial, en la que le paga a alguien para que lo guíe. O simplemente podría involucrar a alguien más experimentado (a quien no le molesta que lo haga) en el trabajo. La programación es un campo en el que la tutoría realmente ayuda. Por supuesto, el mentor tiene que ser tanto una persona con conocimientos como un buen comunicador, pero si puedes encontrar a alguien así, ¡atesoralo!
¡Y devolver! Cuando tenga la oportunidad, sirva de mentor a alguien más, alguien menor para usted. ¿Tienes algún amigo que no pueda programar en absoluto pero a quien le gustaría aprender? Recuerda, ¡la mejor manera de aprender es enseñar!