Si eres un ingeniero de software de 40 años con responsabilidades familiares adicionales, y aún estás programando de forma práctica, ¿en qué enfocarías tu energía en tu aprendizaje: marcos, nuevos lenguajes, algoritmos o habilidades de comunicación, etc.?

Me estoy acercando a los 40, y tengo un niño pequeño. La semana pasada fue horrible en términos de trabajo. Menos mal que mi jefe es muy comprensivo.

Me las arreglé para ponerme en una posición muy curiosa: solo trabajo a tiempo parcial y trabajo desde casa. Fue un movimiento muy consciente, pero también un movimiento con mucha suerte: fui contratado por mi jefe anterior en Big Company para trabajar en su New Startup.

Este preámbulo a tu respuesta es importante porque pones ejemplos de cosas en las que podrías enfocarte, pero no son habilidades reales, y en mi humilde opinión, al final no requieren mucha energía. Los frameworks, lenguajes, algoritmos, toman tiempo, pero no toman energía. Las habilidades que me trajeron aquí en esta posición tan cómoda no son estas habilidades.

Necesitas saber qué código no necesitas escribir . Los desarrolladores jóvenes nunca lo saben, pero tú sí: encuentra la parte del sistema que no es necesaria y nunca la implementas. El código que nunca se escribe no tiene errores, no tiene costos de mantenimiento ni costos de desarrollo. También nunca es atrasado.

Necesita una comprensión justa de las tecnologías que utiliza y las tecnologías que usa el mundo. Los marcos y los idiomas están en esta sección, pero no estudias la API de React, estudias sus aspectos internos, por lo que entiendes por qué resuelve el problema que ellos quieren resolver realmente bien. Esa es la energía bien gastada. También le ayuda a desarrollar una intuición sobre qué código no escribieron y por qué.

Necesitas aprender a dirigir a las personas, incluso si no eres su superior. Liderar significa primero en el campo de batalla, no tiene nada que ver con el rango. Es más que saber qué construir y cómo construirlo, también significa ayudarlos a ver la visión y ayudarlos a ejecutarla. A los 40 años, usted sabe qué hacer para poder cumplir, pero hay muchas maneras de hacerlo, y otras personas necesitan otros tipos de estímulo y otros tipos de ayuda.

Ser un buen líder también significa que no necesita estar físicamente en la oficina para que las cosas funcionen. Puede estar en una obra escolar durante una reunión, y su equipo se encarga de ello. Puede pasar menos tiempo escribiendo y más tiempo revisando el código. Tienes la oportunidad de escribir las cosas realmente complicadas que las personas menos experimentadas tardarían una eternidad en escribir, y escriben los volúmenes carnosos. Te conviertes en el catalizador en lugar del ingrediente. ¿Consíguelo?

Finalmente, debe poder decirle a sus superiores que desea estar en casa. Esto es difícil, varía mucho de una compañía a otra, y no tengo una receta para el éxito. Mi experiencia pasada sugiere que la apertura y el compromiso son clave: debe poder decir que estará con su familia, pero el proyecto es seguro. Después de todo, solo está creando la mitad, la tecnología que eligió le permite Vuela rápido y tu equipo mola.

Debe dedicar su tiempo personal a ser consciente de las nuevas tecnologías que están flotando alrededor, incluida la mentalidad, el apoyo de la comunidad de código abierto y cerrado. Debería rebotar esto en su filtro de experiencia: ¿esto realmente va a resolver un problema o va a ser un destello en la moda del pan?

Luego, debe buscar oportunidades para incorporar nuevas tecnologías de una manera razonable en su concierto actual. Siempre hacer un poco de aprendizaje en el reloj.

Un último consejo: usted gana la mayor cantidad de dinero y tiene la mayor seguridad en el empleo si encuentra el lugar donde las personas no están en una tecnología en particular, pero la demanda sigue ahí. C ++ no está en la mayor demanda, pero el cielo te ayudará si necesitas encontrar un buen desarrollador de C ++ rápidamente. Si ya eres agudo en uno de esos, asegúrate de mantenerte lo suficientemente agudo como para hablar de ello en la entrevista de la pantalla inicial.

Hay un conjunto de habilidades que necesita para cualquier trabajo. Su lista es una excelente enumeración de algunos de los grandes para la programación. Debe comenzar con cualquier área que lo esté frenando o ubicándolo en un nicho que cree que será demasiado limitado en el futuro.

Para muchos programadores, eso significa comenzar por mejorar las “habilidades blandas”. Eso incluye la comunicación en un sentido amplio, pero no pase por alto algunas de las áreas específicas bajo ese paraguas como la negociación. Hay otras habilidades que caen en el límite entre las “habilidades blandas” y las habilidades técnicas, como escribir buenas estimaciones. Asumiré que ya eres bueno para estimar tu propio esfuerzo, pero aprende a comunicarlo lo más claramente posible. ¿Qué incluyen y excluyen tus estimaciones?

Solo me molesto con nuevos algoritmos en estos días ya que necesito conocerlos. Si ya es bueno implementando un nuevo algoritmo a medida que lo encuentra, principalmente lo que necesita saber es qué es y dónde puede consultar los detalles cuando los necesite.

Me gusta aprender nuevos lenguajes y frameworks que no tienen nada que ver con lo que sé actualmente, pero eso me lleva a un segundo plano para empujar los límites de mis habilidades vertical y horizontalmente. Por vertical, me refiero a conocer la cadena de herramientas que usa mi equipo de arriba a abajo. Eso es aprender a instalar y configurar el sistema de integración continua que estamos usando. Significa saber cómo instalar nuestro producto y ejecutarlo como usuario. Es la diferencia que significa que cuando trabajó en algo con otros dos programadores hace un par de años, y uno se mudó a otra compañía y el otro está de vacaciones hoy, aún puede arreglar algo en un área en la que no trabajó.

En cuanto a la horizontalidad, si eres un desarrollador de Windows que usa C # .NET, aprende un poco sobre Linux y Java. Si eres un desarrollador de iOS, aprende Android. Conozca al menos una de las cadenas de herramientas que compite por el nicho en el que trabaja. El motivo es que sus habilidades son relevantes incluso con la nueva cadena de herramientas. Eso lo llevará a nuevos proyectos cuando su empresa necesite realizar cambios en una nueva cadena de herramientas de vez en cuando.