¿Qué tipo de carreras profesionales suelen seguir los programadores?

Desarrollador junior

  • 0-3 años de experiencia (generalmente al salir de la universidad)
  • Puede escribir guiones simples
  • Comprensión preliminar de todo el ciclo de vida de la aplicación.
  • Conocimiento preliminar de bases de datos y servicios de aplicaciones (colas, almacenamiento en caché, etc.)
  • No se siente cómodo en cada parte de una aplicación compleja

Cuando comienzas tu carrera de programación, puede ser desalentador y frustrante. Algunos días se siente fuera de su alcance, inseguro de cómo alguien podría escribir grandes aplicaciones complejas. Y luego, en otros días, te preguntas por qué aún no has sido promovido a Desarrollador Senior. Miras a otros desarrolladores senior y piensas que básicamente haces el mismo trabajo que ellos.

Pero la característica de un desarrollador junior es la falta de experiencia. Incluso los desarrolladores junior más inteligentes y de aprendizaje más rápido no han estado expuestos a suficientes códigos o casos extremos para tener la sabiduría de un desarrollador senior. En términos de programación, una forma de sabiduría se conoce como patrones de diseño de software. Aunque puede leer libros sobre patrones, debe escribir suficiente código incorrecto en su carrera que rompa las cosas y no comprenda verdadera y profundamente el valor de los patrones de software.

  • “Patrones de diseño” de Gamma, et. Alabama.
  • Sobre ser un desarrollador junior

Desarrollador Senior

  • 4-10 + años de experiencia
  • Puede escribir aplicaciones complejas
  • Profundo conocimiento de todo el ciclo de vida de la aplicación.
  • Profundo conocimiento de bases de datos y servicios de aplicaciones (colas, almacenamiento en caché, etc.)
  • Cómodo trabajando en cualquier área de una aplicación

Un desarrollador sénior es el rol típico de las personas que se vuelven realmente buenas en la construcción de aplicaciones completas a escala. Gran parte de la carrera de un programador se puede pasar como desarrollador senior. De hecho, si odias hacer administración y te encanta codificar, puedes ser un desarrollador senior para toda tu carrera. He contratado a muchos desarrolladores senior de todas las edades, pero este es también el papel con el que es más difícil competir a medida que envejeces.

Este papel también puede ser un punto de partida para otro peldaño en la escalera. Una vez que comprenda la tecnología lo suficientemente bien como para ser un desarrollador senior, es probable que ya tenga los conocimientos técnicos para ser un fundador técnico o CTO de una startup. Ser fundador o CTO en una startup implica mucha menos codificación y muchas más habilidades de las personas. Sin embargo, un profundo conocimiento técnico es muy importante y es esencial para hacer un buen trabajo en estos roles.

Desarrollador principal o arquitecto

  • 7-10 + años de experiencia
  • Las mismas habilidades básicas que un Desarrollador Senior
  • Desarrollador principal: rol de transición en gerente de nivel medio
  • Arquitecto: rol técnico no transitorio

Si después de más de 7 años de programación, si sabes que la administración no es lo tuyo, ser arquitecto es el rango más alto que queda en la carrera técnica. Los arquitectos a veces escriben código, pero con mayor frecuencia diseñan sistemas complejos que serán implementados por equipos de desarrolladores senior y junior. El trabajo de un arquitecto es utilizar su sabiduría técnica obtenida después de años de experiencia (patrones de programación y antipatrones) para crear la estructura de un proyecto de software exitoso. A medida que surgen nuevos requisitos, un arquitecto de software necesita conocer las formas correctas de construir y escalar todos los diferentes tipos de aplicaciones.

Un desarrollador principal es un desarrollador senior que otros desarrolladores junior y senior buscan orientación y dirección. Aunque los desarrolladores principales generalmente no contratan ni despiden a los programadores, hacen un trabajo similar al de los gerentes. Coordinan el trabajo que debe hacerse y son los encargados de la toma de decisiones para las decisiones de implementación mientras escriben el código.

Gerente de nivel medio

  • Los títulos generalmente incluyen las palabras Gerente o Director (Gerente de desarrollo, * Gerente de producto o Gerente de proyecto)
  • Es el jefe (por ejemplo, puede contratar / despedir) de desarrolladores
  • Reporta a un Líder Senior

La administración es el siguiente peldaño tradicional para los ingenieros. Existen diferentes enfoques para la gestión. Si te gusta hacer un seguimiento de los flujos de trabajo y estás obsesionado con los detalles, ser un gerente de proyecto es tu aliado. Si te obsesionas con las características y las mejoras de los productos, ser un gerente de productos es una buena opción.

Sin embargo, el administrador más común en el que se convierte un programador es un administrador de desarrolladores. El rol típico del gerente de desarrollo es mediar las necesidades del gerente de producto y el gerente de proyecto con las personalidades del equipo de desarrollo. Este rol requiere fuertes habilidades de las personas, talento para mediar conflictos y, con frecuencia, actuar como un grupo reducido. El trabajo del administrador de desarrolladores no es solo contratar, sino también despedir a los desarrolladores cuando sea necesario. Esto significa que es difícil ser amigo de ellos. Ser amigo te pone en posiciones incómodas. Si alguna vez has conocido a alguien que se convirtió en el gerente desarrollador de un equipo en el que solía ser desarrollador, sabes que parece que cambian casi de la noche a la mañana. Esta es la razón por. Es un trabajo duro, y muchas veces ingrato.

Pero también puede ser muy gratificante llevar a un equipo a la victoria. Si desea mejorar sus habilidades de liderazgo en preparación para un rol de gestión, lea el libro de Phil Jackson.

  • “Once anillos: el alma del éxito” por Phil Jackson, líder principal

Lider mayor

  • VP, CTO o CEO
  • Es el jefe (por ejemplo, puede contratar / despedir) de gerentes de nivel medio
  • Reporta a otro Líder Principal o la Junta Directiva

La diferencia obvia entre un gerente de nivel medio y un líder superior es que los líderes superiores están a cargo de los administradores de nivel medio. Sin embargo, los gerentes a menudo no necesitan ser administrados. Necesitan ser guiados. Los gerentes de nivel medio necesitan conocer la orientación de alto nivel que necesitan para conducir, no recibir instrucciones detalladas.

El trabajo de un líder sénior es tomar decisiones de alto nivel e inspirar a su fuerza laboral a aceptar esas decisiones y creer en la misión.

Cuanto más arriba subas la escalera, menos terminarás programando. En la parte superior, se trata de personas. Los gerentes de nivel medio aún se divierten sumergiendo los dedos de los pies en las entrañas de la tecnología, ya que un líder sénior debe dedicar todo su tiempo a los problemas de las personas: inspiración, motivación, liderazgo y estrategias. Si escribes código, a menudo son solo proyectos paralelos (a menos que seas Bill Gates, pero casi nadie es Bill Gates, es un caso extremo). Se requiere leer el libro de Phil Jackson a este nivel, no solo es bueno tenerlo.

El trabajo como líder principal es asegurarse de que todos en toda la empresa estén remando en la misma dirección, asegurándose de que esa dirección conduzca a tierra firme, y asegurándose de que todos sepan por qué están remando en esa dirección. Es un trabajo engañosamente difícil. Está lleno de peligros, angustias y trampas explosivas. Si está preparado para la tarea, lea “Lo difícil de las cosas difíciles” de Ben Horowitz.

Los líderes superiores nunca nacen naturalmente. Ellos estan hechos. Se necesita práctica para ser bueno al respecto. Lea el blog de Ben Horowitz sobre Cómo hacerse un CEO para obtener algunos ejemplos de esto.

Vea la respuesta del usuario de Quora a ¿Cuáles son las diferentes carreras / caminos que puedo elegir si soy un programador competitivo?

Aquí hay un interesante explorador de trayectoria profesional que quizás desee utilizar, PayScale GigZig – Career Path Explorer.