¿Por qué no hay muchos programadores antiguos en las compañías de software? ¿Son menos comercializables después de que alcanzan cierta edad?

En este video de Robert “Tío Bob” Martin hablando en Yale, habla sobre la cantidad y edad de los programadores. Busca a las 12:50.
“Tío Bob” Martin habla en Yale SOM

La idea general es que probablemente hay alrededor de 100,000,000 programadores en todo el mundo (en el momento de la presentación (2014)). Él recuerda los cambios en el número mundial de programadores a lo largo de los años 50, 60, 70 y hoy. Finalmente, revela una tendencia de que el número de programadores en todo el mundo se duplica cada 5 años, lo que implica que la mitad de los programadores del mundo tienen menos de 5 años de experiencia.

Alrededor de las 15:00 en realidad hace esta pregunta exacta (¿por qué no hay muchos programadores antiguos?), Y responde que simplemente no había tantos programadores en los primeros años de desarrollo de software.

En las próximas dos décadas, a medida que los grupos más grandes de programadores de un determinado grupo de edad se acerquen a sus años más viejos, probablemente comencemos a ver más programadores más viejos.

Tengo 61 años y he trabajado de manera continua y bastante rentable como programador de computadoras durante más de 30 años. Mis reglas para no convertirme en gerente han sido:

  • Obtenga tanta educación como pueda. Un doctorado en CS es una muy buena inversión si no quieres ser gerente. Los MOOC son cosas buenas.
  • Use sombreros y camisas hawaianas, incluso en pleno invierno. Actualmente llevo un sombrero negro o una boina negra con un parche de esperanto o un sombrero de pastel de cerdo negro, como Heisenberg en el programa. Nunca uses polos o chinos. Las empresas contratan a los gerentes de contratación y los gerentes de contratación quieren contratar a personas que se parezcan a ellos. Si eres excéntrico en tu vestido, aunque sea solo un poco, serás invisible cuando busquen promocionar a alguien a la gerencia.
  • Si realmente tomas cursos o lees libros, asegúrate de hablar sobre ellos, aunque no lo suficiente como para parecer presumido. La gerencia no entiende la tecnología, realmente. Los gerentes generalmente son personas que fueron a la escuela de ingeniería pero les resultó muy difícil y abandonaron después de una licenciatura o quizás una maestría. No pueden entender por qué alguien querría sufrir el dolor de leer un libro técnico sin una recompensa inmediata.

Esto es lo que me ha funcionado. Su kilometraje, como dicen, puede variar.

Como muchas cosas en la vida, sigue el dinero:

Supongamos que una programadora comienza su carrera a los 22 años y gana $ 60,000 al año.

Ahora suponga que el programador obtiene aumentos del 3% cada año durante los próximos 20 años. Cuando ese programador llegue a 42, ella disfrutará de $ 109,000. Suponiendo que todavía es una contribuyente individual, gana el doble del salario por el mismo trabajo que hizo cuando tenía 22 años.

El 3% es conservador. La mayoría de los programadores ven aumentos mayores durante sus carreras, y muchos ven salarios iniciales superiores a $ 60,000 al año.

En aras de la discusión, ignoremos la inflación y asumamos que el programador más viejo es mucho más caro que el más joven.


Vi que esto sucedió mucho antes. Mi salario llegó a Google cuando tenía 24 años. Me fui por unos años, y cuando volví a entrevistar, los reclutadores se negaron a mi salario anterior. Google me había puesto fuera del mercado.

Creo que esto es lo que les sucede a los programadores mayores. Después de una carrera llena de aumentos, el programador mayor cuesta 2-3 veces más que el joven que acaba de salir de la escuela.

Yo diría que muchos programadores mayores valen 2-3 veces el precio de los jóvenes sin experiencia. Pero la habilidad en el desarrollo de software es notoriamente difícil de medir, y la administración generalmente solo ve el costo $$$ de los mayores frente a los más jóvenes.

No se dan cuenta de los costos de oportunidad asociados con el código defectuoso, no mantenible y mal diseñado.

¡Oye! ¡Podemos hacer que un chico haga el mismo trabajo que otro a 1/2 a 1/3 del costo! ¡Vamos a hacerlo!

De hecho, el Wall Street Journal acaba de escribir un artículo que detalla exactamente esto. [1]


Ahora veamos esto desde el punto de vista del empleado: la programación es excelente porque ganas mucho dinero directamente desde la escuela. Usted gana más que médicos o abogados durante aproximadamente una década, y no tiene que invertir tiempo y dinero en la educación de posgrado.

Pero luego llegas a una meseta. El “pico” salarial de la programación es mucho más bajo que para estos otros campos.

Cuando muchos programadores alcanzan los 30 años, ya han alcanzado este pico. Puede mantener su salario creciendo si se muda a nichos específicos. Finanzas es uno, y sé de personas aleatorias en Google y Microsoft que ganan más de 1 millón al año como contribuyentes individuales.

Pero esto es raro. La mayoría de las personas se quedan atrapadas en el nivel superior, donde el salario promedio en los Estados Unidos es de $ 105,000.

Entonces puede hacer seis cifras, lo cual es excelente en comparación con el ingreso medio en los EE. UU. Pero creo que muchos programadores ambiciosos ven la escritura en la pared y pasan a la administración, cambian los campos o comienzan sus propias empresas.

Escribí más sobre cómo la habilidad en software es difícil de medir aquí.


Crédito de la foto: Nick Ares


Notas al pie

[1] Los altos salarios persiguen a algunos buscadores de empleo

En la empresa en la que trabajo, en realidad hay bastantes programadores mayores. El producto base (EyeVerify) incluye una gran cantidad de procesamiento de imágenes muy complejo y requiere grandes cantidades de optimización de GPU. Entonces, por supuesto, necesitamos personas con mucha experiencia y mucho talento para hacer estas cosas, y los asistentes que empleamos para hacer estas cosas están en el lado más antiguo (uno me dijo que una vez implementó una pila TCP / IP en los años 80 … por diversión).

Sin embargo, creo que la ubicación / cultura también podría tener algo que ver con eso. Estamos en el área de Kansas City, Missouri, que tiene muchas más empresas basadas en .NET a nivel empresarial que las nuevas empresas que usan las últimas tecnologías, y definitivamente parece que atienden a los empleados más viejos y más orientados a la familia.

En una nota al margen, también encuentro que convencer a los programadores más viejos para que usen tecnologías más nuevas puede ser una venta muy difícil. Por ejemplo, cuando algunos de nosotros queríamos mudarnos a Slack, pasamos un mal rato tratando de convencer a la gente de que no era solo otro Lotus Notes. Lo cual fue un argumento completamente perdido para mí, un desarrollador de backend / frontend de 21 años.

No creo que esta pregunta sea correcta.

El informe de la Oficina de Estadísticas Laborales [1] muestra que la edad promedio de las ocupaciones de Computación y Matemáticas es de 41.1 en 2014, lo que está muy cerca de la edad promedio del total de empleados (42.3):


Es probable que sea solo un sesgo cognitivo pensar que no hay muchos programadores antiguos. Creo que la pregunta correcta es: ¿por qué nos parece que no hay muchos programadores antiguos, mientras que en realidad los hay ? Esa sería una pregunta diferente.


[1] Personas empleadas por ocupación detallada y edad.

Demografía No había muchos programadores hace 40 años, por lo tanto, no hay muchos programadores con 40 años de experiencia. Ídem 30 y 20.

El tío Bob Martin, quien en realidad ha estado programando durante 40 años, tiene un excelente artículo sobre esto: Clean Coder Blog

Tenga en cuenta que esta explicación es sencilla y no requiere:

  • Estereotipos masivos de desarrolladores mayores
  • Teorías de conspiración que involucran la contratación de gerentes en miles de compañías coludidas
  • Caracterización de empresas modernas que ya no resuelven problemas técnicos interesantes o difíciles.
  • Culpar a los jóvenes de 20 años (también conocidos como “niños en estos días”)
  • Suspensión de la incredulidad en el mercado libre.

Es un mito que los viejos programadores necesitan pasar a la gestión.

Depende mucho de la empresa.

Antes de tomar mi trabajo actual, había llegado a la misma conclusión: que los programadores eventualmente deben pasar a la administración, y que a medida que envejeciste, te volviste menos comercializable.

Cuando comencé a trabajar en la oficina de ingeniería principal de New Relic en Portland, me sorprendió la edad de los ingenieros. Aquí hay una gran variedad, incluidas muchas o canas.

Después de estar aquí por un tiempo, he llegado a creer que la demanda de programadores es realmente fuerte, sin importar su edad. Las compañías más inteligentes se aprovecharán de los programadores más antiguos, más caros pero con mucha más experiencia. Por lo general, establecerán algo así como una vía paralela para el avance profesional como ingeniero y como gerente, y dejarán que las fortalezas e intereses de la persona determinen a dónde llevan su carrera.

No creo que deba abandonar la programación porque cree que debe hacerlo, decida en función de su interés.

Dicho esto, debe pensar en su carrera y asegurarse de ofrecer a los empleadores algo único. Los programadores más viejos tienen una profundidad que los programadores más nuevos a menudo carecen, pero tienes que demostrar que te desafías a ti mismo. Y puede ser fácil quedarse atascado de tecnologías que no están en uso en las empresas en las que desea trabajar. Los proyectos paralelos suelen ser la forma de demostrar lo que puede hacer.

Enchufe descarado: estamos contratando 🙂

LOL, tengo 75 años y todavía escribo código a diario, aunque actualmente estoy caminando
http://linuxfromscratch.org/
y
http: //www.feynmanlectures.calte

Algunos de nosotros simplemente disfrutamos de este tipo de vida. Digo la vida porque nunca lo he considerado un trabajo o un trabajo. Siempre he contratado / consultado porque no puedo soportar aparecer diariamente o ir a reuniones.

Siempre debe encontrar a alguien a quien le encanten las reuniones y designarlo como su representante. Su trabajo es entrar en una mejor reunión y promocionarlo. Es completamente legítimo que les pagues por ayudarte.

Supongo que he llevado una vida encantada.

Te recomiendo que desarrolles una reputación de ser brillante pero errático. Lo último es fácil, lo primero un poco más difícil, pero con la ayuda de camisas hawaianas y una cierta ignorancia de las convenciones básicas, no es tan difícil como uno podría imaginar. Los pies descalzos y una barba larga ayudan, pero son cada vez más cliché.

Divertir a los jóvenes brillantes en su entorno es extremadamente útil. Además, es divertido y también pueden divertirte.

Burt ,,, aunque es esencial que sepas algo esotérico pero relevante. Algo real que importa. La mayoría de las personas en su entorno son especialistas muy bien informados, profesionales serios, a quienes respeto o … usted completa los espacios en blanco.

Saber algo que nadie más sabe.

Solo tienes que ser brillante en la rara ocasión.

Buena suerte,

SantaXote

Es más o menos el factor “Saber dónde poner la X” .

También hay un par de otros factores más menores.

Hay una historia de ingeniería apócrifa que explica el factor “Saber dónde poner la X” , que muchas personas ya han visto, por lo que repetiré brevemente un relato de ello:

Había un ingeniero que tenía un don excepcional para arreglar todo lo mecánico. Después de servir lealmente a su empresa durante más de 30 años, se retiró felizmente.

Muchos años después, la compañía lo contactó con respecto a un problema aparentemente imposible que estaban teniendo con una de sus máquinas multimillonarias. Habían intentado todo y a todos los demás para que la máquina funcionara, pero fue en vano. En su desesperación, llamaron al ingeniero retirado que había resuelto tantos problemas en el pasado. El ingeniero aceptó de mala gana el desafío.

Pasó un día estudiando la enorme máquina. Al final del día, marcó una pequeña “x” con tiza en un componente particular de la máquina y dijo: “Aquí es donde está su problema”. La pieza fue reemplazada y la máquina volvió a funcionar perfectamente.

La compañía recibió una factura por $ 50,000 del ingeniero por su servicio. Exigieron una contabilidad detallada de sus cargos.

El ingeniero respondió brevemente: “Una marca de tiza $ 1. Saber dónde ponerla $ 49,999”

fuente: http://www.jokes4us.com/peoplejo


A medida que un ingeniero envejece, se vuelven mucho más conocedores.

A medida que se vuelven más conocedores, se vuelven más caros.

Por lo tanto, puede contratar a un nuevo graduado de primer nivel por alrededor de $ 90,000, mientras que puede contratar a un ingeniero mucho más viejo y con más conocimientos para el mismo trabajo, y puede costarle $ 360,000.

Muchas empresas consideran la ingeniería de software como un proceso místico, en el mejor de los casos, pero en la mayoría de los casos se ve como “Es solo una gran cantidad de tipeo, ¿verdad?” .

Ahora supongamos que es un contador corporativo de frijoles (que tiene el mismo nivel de menosprecio para una persona del departamento de finanzas que llamar a un ingeniero de software un mecanógrafo glorificado)

Si puede comprar cuatro de algo para hacer un trabajo que es simplemente escribir, o puede pagar cuatro veces el precio de uno de algo para hacer un trabajo que es solo escribir, ¿qué compra?


Hay una cierta cantidad de “tiempo en el derecho al grado” – trabajar 10 años, obtener 10 aumentos – mentalidades también; Yo diría que están mayormente en trabajos gubernamentales y cuasi gubernamentales.

Si crees que esto es una exageración, te invito a mirar la escala salarial Federal GS; aquí hay un enlace a la escala salarial para una escala de pago federal GS 2016 – GS-13; puedes hacer clic y mirar otros niveles de GS.

Para ir más alto que eso en el servicio civil, la siguiente escala desde la escala GS es SES, o Nivel Ejecutivo Superior.

Muchos contratistas del gobierno (particularmente: contratistas militares) reflejan esta escala.


Y sí: esta es una forma de ageism.

Un buen ingeniero experimentado puede dar vueltas alrededor de un graduado universitario reciente, incluso si tiene una especialización de posgrado. Se necesitan aproximadamente dos semanas para adquirir un lenguaje informático de “sabor del día” al nivel “avanzado” para una de estas personas, y un buen mes con un proyecto para que se conviertan en nivel “experto”.

Y sí: también hay “ingenieros con mala experiencia”, por lo que la edad no siempre equivale a la experiencia.

Cuando eres mayor, tu pensamiento se vuelve más riguroso y minucioso, pero más lento. La desaceleración no es perceptible, y prácticamente no importa. Estamos hablando de una caída del 10 por ciento en la velocidad de cálculo en el peor de los casos. Para una analogía, la mayoría de las personas cuyas computadoras son “demasiado lentas” tienen CPU que están bien; son los problemas de software (p. ej., software espía, escasa multitarea) el problema. Donde esa leve desaceleración interfiere es en ciertas interacciones sociales, generalmente bajo estrés y después de un horario de trabajo inhumano. Si todos han estado trabajando 12 horas al día durante dos semanas, la persona mayor será menos experta en vender su trabajo de forma rápida y segura al “propietario del producto” de 27 años en el Scrum diario. (El trabajo será de mayor calidad, pero no tan bien vendido).

Los programadores mayores, en general, son mejores en la construcción de sistemas robustos, tienen un mejor conocimiento de la técnica anterior y, en general, tienen mejores habilidades interpersonales. Los programadores más jóvenes son mejores en el aspecto de marketing del trabajo. A medida que envejece, tiene menos paciencia para los aspectos de moda de “la misma mierda, el nuevo olor” de cualquier industria. Los cambios fundamentales en la tecnología en realidad no son tan difíciles de adaptar, porque las personas mayores generalmente son mejores para elegir las perspectivas de alto valor y tienden a aprenderlas bien. Son los nuevos estatutos los que tienen poco que ver con la tecnología en sí, pero afectan el estatus social y la credibilidad de alguien que perjudica a los antiguos. (“¿Qué? ¿No sabes qué es un rebase ? ¿No conoces la única forma correcta de estructurar los compromisos que solo existen en nuestra empresa?”)

Es probable que su programador experimentado de 50 años no esté contento si le hace responder a un gerente de producto de 25 años, habla en términos de iteraciones de dos semanas, regatea por puntos de historia y trabaja en una pequeña oficina abierta. Él no necesita esa mierda, y no puedes hacerle creer en eso. Déjalo en paz y hará un gran trabajo. Oblígalo a comercializarse tan agresivamente como un engreído de 23 años que no sabe lo poco que sabe, y lo alienarás.

Obviamente estoy generalizando. Hay terribles programadores viejos, grandes programadores jóvenes y viejos programadores que son excelentes para comercializarse a sí mismos (pero esos invariablemente se convierten en gerentes o inversores, incluso en contra de su voluntad). Las cosas que he dicho anteriormente son ciertas en promedio. Los programadores mayores son, en promedio, más hábiles que los más jóvenes. (Los ineptos se van después de unos años, y mejoran con la edad a medida que adquieren más experiencia, y son más capaces de buscar experiencias de alta calidad). Los programadores más jóvenes son mejores para promocionarse a sí mismos y sus ideas, porque aumentan la edad y aumentan la competencia ambos disminuirán tu tendencia a joder lo que piensan los demás. Finalmente, los antiguos programadores que no han desarrollado reputaciones independientes o se han convertido en gerentes / VC están, por definición, por debajo de la curva del marketing.

Entonces, ¿qué está cambiando? ¿Por qué los programadores más viejos, algunos de los cuales son altamente capaces, están siendo apartados en el Valle? Porque ese lugar se ha vuelto tan malditamente centrado en el marketing que la competencia apenas importa. O déjame decirlo de otra manera. Se puede saber por la reputación de alguien, o simplemente por una impresión inicial, si es bueno o malo para promocionarse. Te das cuenta de eso en un minuto. Realmente no puedes distinguir a los buenos programadores de los malos tan rápido, y nada si no eres técnico tú mismo. Es un “factor oscuro”. Hay aspectos de una empresa que se correlacionan con el talento de programación (qué tan bien paga, dónde se encuentra, qué tan bien parece entender las necesidades de los mejores talentos) pero no es directamente medible. Por lo tanto, los VC financian a personas que son grandes autocomerciantes y asumen que el talento se puede “rellenar” más adelante. A veces lo es; a veces, los fundadores tienen suerte y la primera persona que entra en la entrevista, para el puesto de VP / Ingeniería, y parece saber de lo que está hablando, en realidad lo hace. La suposición inherente a esta estrategia de “tecnología de relleno posterior” es que una vez que una empresa sea rica y conocida y anuncie algunos beneficios, se inundará con aplicaciones de ingenieros talentosos y el problema del talento se resolverá por sí solo. ¿Es eso exacto? No lo creo. Obtendrá intereses de personas talentosas si paga $ 200,000 por año por un ingeniero de software, pero también obtendrá intereses de idiotas. Si no puede distinguirlos, probablemente tampoco pueda elegir un gerente que pueda distinguirlos.

Cuando se trata de competencia técnica, usted tiene a los ciegos liderando a los ciegos en los queridos financiados por VC del Valle. Cuando obtienen talento, generalmente es por accidente, y no hay garantía de que las personas con talento que absorben (como el plancton, absorbido por una ballena) sean reconocidas y promovidas en lugar de alejadas. Algunas de estas compañías tienen suerte y terminan haciendo que su tecnología sea construida por personas que saben lo que están haciendo, mientras que la mayoría de ellos no.

Entonces, ¿qué tiene esto que ver con la edad? Bueno, el marketing agresivo es un juego de personas jóvenes. Tienes que sobreestimarte, llevando una arrogancia que proviene solo de una mezcla de inexperiencia y (generalmente) alta clase social de origen. El mundo financiado por VC fetichiza el fracaso (principalmente porque el alto riesgo es una ventaja para los diversificados), pero es imposible comportarse de la manera requerida, a menos que sea delirante y arrogante, si alguna vez ha fallado. También es arriesgado, y debes renunciar a la privacidad, algo que las personas mayores (especialmente después de tener hijos) tienden a valorar. Para aumentar la VC, a menudo debe someterse a una verificación invasiva de referencia del canal posterior que es (a) abiertamente discriminatoria y (b) sería ilegal en cualquier país civilizado. ¿Es sorprendente que las personas mayores no estén interesadas en jugar ese juego? No debería ser. ¿Es sorprendente, tampoco, que los programadores mayores no estén interesados ​​en trabajar para el tipo de narcisistas que se someterían a ese tipo de invasión? No, no debería serlo. Lo que realmente tenemos en el mundo financiado por capital de riesgo que está superando a la tecnología en su conjunto es una neotenia cultural. No se trata solo de la edad de los programadores. También se trata de comercializar a los jóvenes, y de ser fluido en pseudo-palabras infantiles como “selfie” y “foodie” y “tweens” y sabiendo que los vampiros ya no mueren cuando se exponen a la luz solar, simplemente brillan .

Creo que he explicado la mayor parte. Los programadores mayores no quieren trabajar en un mundo centrado en el marketing y con pocas sustancias. Si estuvieran interesados ​​en un auto-marketing agresivo, serían mucho más ricos y podrían retirarse. ¿Qué pasa con los Googles y las Amazonas del mundo? En esas empresas, la competencia técnica y la sustancia realmente importan. De hecho, esas compañías son, en general, menos ageistas. Dentro de las compañías que son muy respetadas, hay personas de 55 años que aprenden mal de aprendizaje automático. Si continúa obteniendo mejores proyectos y logrando más, la edad no es relevante, porque su tendencia demuestra que usted sigue acelerando. Por otro lado, siempre habrá una subclase de programadores (incluso en Google) que realizan trabajos grupales, parroquiales, de adaptación a idiosincrasias internas de los que no se aprende mucho, y ellos enfrentan discriminación por edad similar. Si no pueden llegar a proyectos deseables a tiempo, o al menos crear la impresión de que les han ofrecido un trabajo deseable, se supone que no son muy buenos. Entonces, la dinámica de auto-marketing dentro de la empresa todavía existe. Tiende a ser más impulsado por las sustancias y meritocrático que el juego de VC, pero no por mucho, y especialmente cuando los ejecutivos mismos todavía no tienen experiencia o no tienen talento (o ambos).

Cumpliré 69 en una semana. He estado programando desde 1967. Son 48 años los que cubren COBOL a jQuery. He olvidado más lenguajes de programación de los que la mayoría de los programadores encontrarán. Ahora trabajo como contratista porque estoy tan “sobre” trabajando como empleado que incluso si tuviera la mitad de mi edad, nunca volvería a aceptar un trabajo tradicional.

Probablemente he escrito 2-3 o incluso 4 millones de líneas de código en mi vida, y la conclusión es: “¿Quién da un rasgón?” Escribir código no crea significado en mi vida … a menos que tenga un impacto positivo en las personas que me importan.

Entonces, una ventaja de ser viejo es que ya no persigo la gran alucinación de alguien. Me apego a lo básico para hacer el trabajo para que las personas que lo necesitan puedan tener una mejor experiencia.

Pero hay un inconveniente significativo de ser un “viejo programador”. El mundo está cambiando rápidamente y el ritmo está aumentando. Hace 15 años, me sumergí en C + y me volví muy bueno en eso. Hace unos cuatro años, me sumergí en jQuery y aprendí a conectar jQuery y C # para crear interfaces de usuario súper rápidas. Me despidieron hace unos tres años, así que le di la espalda a C # y me sumergí en WordPress. Ahora es Drupal. Y el patrón es que aprender las cosas nuevas se está volviendo cada vez más difícil. Todavía estoy tratando de hacer que funcione un complemento de WordPress que use Local Storage y Web Workers. La depuración de esta complejidad desgasta mi cerebro.

Pero la conclusión real es que sigo programando porque me encanta y es la única habilidad real que tengo … aparte del crecimiento interpersonal y el trabajo de desarrollo de habilidades de relación en el que he estado buceando durante los últimos 20 años.

Por lo tanto, la programación para el cerebro izquierdo y el entrenamiento de relaciones para el cerebro derecho me mantienen equilibrado. Debe estar funcionando porque he estado casado con la misma mujer maravillosa por más de 40 años y tengo una relación bastante buena con nuestros tres hijos.

Me propuse ser programador durante al menos 50 años (junio de 2017) y convertirme en Co-Líder de la aventura de Entrenamiento de nuevos guerreros de The Mankind Project cuando tenga 70 años. Objetivos desafiantes. Vuelve conmigo en un par de años y mira cómo me fue.

  1. Debido a que los programadores viejos realmente buenos dieron demasiadas cosas que se les acabaron.
  2. Porque son muy caros, y las compañías piensan que están “ahorrando” dinero al contratar programadores más jóvenes y baratos.
  3. Porque hay discriminación por edad. Especialmente en Silicon Valley.
  4. Porque odian los plazos y construyen las cosas bien . Eso debería ser algo bueno. Pero las personas que contratan quieren “producción rápida”, por lo que prefieren presionar antes que hacerlo bien . No entienden que puede tener ambos si contrata a un verdadero programador senior / arquitecto de SW.
  5. Porque los programadores más viejos tienden a no estar al borde de la tecnología. Porque entienden que se necesita tiempo para que una nueva tecnología se estabilice y crezca de manera madura. Y muchas de las empresas contratantes quieren personas que conozcan ese marco que salió hace 2 semanas.
  6. Debido a que muchos buenos programadores mayores hicieron mucho dinero en ese entonces cuando eran pocos, y ahora son extremadamente exigentes cuando buscan trabajo porque no lo necesitan , eligen hacerlo.
  7. Debido a que los programadores mayores se cansan de trabajar con niños (nosotros) que fueron a los campamentos de codificación durante 3 meses y piensan que somos verdaderos ingenieros porque enviamos un clon de pájaro flappy. Particularmente, se cansan de las personas que no dicen “No sé” cuando realmente no saben.
  8. Porque prefieren consultar (pago más alto) y hacer la parte que disfrutan de la manera que desean, que ser trabajadores a tiempo completo y lidiar con muchas cosas que ya no podrían molestarles.
  9. Debido a que los programadores mayores son como magos, construyen software en sus cabezas antes de escribir cosas en la pantalla. Este es un proceso extremadamente frágil que requiere largas sesiones de trabajo ininterrumpidas. Con la cultura actual de las oficinas de espacios abiertos, esto es casi imposible de lograr.

Desearía trabajar donde pueda ser asesorado por un programador sénior. Absorba su conocimiento, sienta que alguien me respalda cuando cometo errores y aprenda a pensar muchos pasos por delante. Lamentablemente, la cultura en muchas empresas de tecnología, especialmente en el Valle, no permite que existan programadores mayores.

Mi experiencia en Microsoft, en mi trabajo actual (Oracle Infrastructure Cloud) y, en menor medida, Google sugiere que hay mucho trabajo para los programadores más antiguos sin que entren en la gestión. Y en particular, varias de las compañías en las que trabajé (por ejemplo, Amazon) tienen hambre de personas mayores que contribuyen.

Tengo casi 50 años. La mayoría de los amigos con los que comencé a trabajar son contribuyentes individuales o líderes técnicos. Algunos son gerentes / vicepresidentes. Algunos están retirados porque estaban en el lugar correcto en el momento correcto.

No creo que los ingenieros de software competentes se vuelvan menos relevantes o deseables a medida que envejecen, al menos no en las grandes empresas. Espero que un cambio en lo que quieren hacer sea un problema mucho mayor. La mayoría de mis amigos que se dedicaron a la administración lo hicieron porque ya no querían hacer trabajo técnico de primera línea, no porque no pudieran continuar trabajando y progresando como contribuyentes individuales.

Tengo 73 años y me jubilé a los 71. Trabajé en la programación a partir de los 30 años. A los 35 años comencé a trabajar para una empresa de consultoría, que me envió a varios clientes para programar en el idioma que necesitaran. También hice diseño, especificaciones, gestión de proyectos hasta cierto punto, estudios de viabilidad y mucha documentación. Algunos fueron divertidos, otros no, pero siempre me quedé con la programación y me negué a ser gerente de tiempo completo. ¡Simplemente me gustaba jugar con los juguetes! Siempre me ha encantado programar.

En algún momento mi empresa de consultoría fue adquirida (3 veces) y cambió su enfoque. Los clientes querían pagar menos y subcontratar a la India. Entonces la compañía nos llamó a todos y nos despidió. Eso fue justo después de Y2K, cuando los despidos eran el estilo de todos modos, especialmente para cualquiera contratado solo para Y2K. Me llevó unos seis meses encontrar un trabajo de hardware, y eso duró uno o dos años. (Aprendí muchas cosas interesantes allí.) Luego encontré un trabajo que comenzó como atención al cliente y terminó como gestión de bases de datos. La información del hardware resultó ser muy útil allí. Lo disfruté todo y me quedé unos diez años, después de lo cual se acabó el dinero y me retiré.

Los programadores experimentados que fueron despedidos al mismo tiempo tuvieron un momento terrible para ser contratados, y en su mayoría no han recuperado su nivel de empleo. Algunos de ellos se dedicaron a otras líneas de negocio, por supuesto.

Mientras buscaba trabajo y, de hecho, cuando intentaba contratar a un programador, encontré una gran preponderancia de buscadores de trabajo muy jóvenes. Estos parecían ser principalmente asiáticos, por alguna razón, y sus habilidades parecían estar en Java. Cuando solicité trabajo, el comité de contratación era invariablemente un grupo de hombres blancos bastante jóvenes. ¡A veces se burlaban de mí! Por alguna razón, no les gustó la idea de que una mujer mayor se uniera a su club. La idea de “encajar” ha impregnado la industria, especialmente las nuevas empresas.

El programador que contraté era de mediana edad, afroamericano y tenía el conjunto adecuado de habilidades. Pero él era el único solicitante que tenía estas habilidades. ¡Tenía una gran pila de jóvenes solicitantes de Java!

Ahora que estoy retirado, puedo perder el tiempo con cosas de la computadora, así como la jardinería y tocar el violonchelo. Acabo de tomar algunos cursos en lenguaje R y sus aplicaciones, y actualmente estoy probando un curso de Python basado en la interacción en un navegador web. Sí, me lleva más intentos recordar cosas, y probablemente lo haya hecho durante unos veinte años.

Tendré 79 en 2 semanas. Comencé a programar en 1964 en el MIT PDP-1 Mark 1, en lenguaje ensamblador, y, después de 53 años, acabo de contratar para escribir la nueva GUI para la serie Millennia-Media HV, habiendo escrito previamente la GUI para el galardonado HV3R.

El mayor problema al que me enfrento no es escribir código (en ensamblador, C y C ++), sino descubrir cómo ajustarlo para que se ejecute en las versiones en constante cambio de Visual Studio, la gente amiga de Microsoft hace que la actualización sea tan opaca como posible.

Mi opinión: los “viejos programadores” pueden ser una mina de oro de experiencia y conocimiento en comparación con los “nuevos programadores”, que tal vez no sepan cómo hacer las cosas rápidamente, y, si las compañías de software quieren sacar a los viejos programadores a pastar, Es su pérdida.

Soy un programador que dejó de programar hace décadas. Tengo 67 años
1. Para lograr una fluidez real en algún sistema / lenguaje tomó un par de años. En un par de años más, el 90% de lo que aprendí no valía nada, y necesitaba aprender un nuevo sistema. Después de 3 reinicios de este tipo, simplemente no tenía el deseo de llenar mi cabeza con más cosas que pronto serían basura.
2. Estaba muy bien pagado a una edad temprana (mucho más que abogados o médicos en una etapa similar). Por lo tanto, me costó mucho pagarme para interesarme, y en su lugar decidí administrar mi propio negocio.
3. La gerencia simplemente no tiene idea de la programación. La productividad de los programadores profesionales varía en aproximadamente 60 a 1. (No recuerdo el estudio de HP que demostró eso, lo siento) Es decir, la productividad para resolver un problema, no líneas de código por día. El programador más experimentado con una tarea difícil pensará mucho y codificará poco. A la gerencia le parece que está agotado porque no está frente a una pantalla en todo el día. Como ejemplo, un proyecto en el que trabajé tenía problemas intermitentes con un módulo, que solo tenía 140 líneas de código. Lo examiné y solucioné el error al reescribir todo el módulo en 6 líneas de código. El programador original nunca se había tomado la molestia de comprender realmente lo que estaba haciendo. Pero la gerencia piensa que las líneas de código terminadas son una inversión que debe protegerse. Acababa de tirar el 95% de su activo. Esto puede parecer a un gerente como una pérdida de tiempo destructiva.

4. Una característica extraña de la programación es que la productividad aumenta con largas horas de trabajo. Es mejor codificar hasta altas horas de la noche y reiniciar a primera hora de la mañana. Casi todos los buenos programadores hacen todas las noches periódicamente. Hay muchas cosas para tener en la cabeza a la vez, y lleva muchas horas volver a la zona después de un descanso normal. A medida que crecía, no me gustaba que mi separación trabajo / vida fuera tan extrema.

Además de estas razones, había muy pocos programadores cuando comencé. Toda mi universidad solo tenía 3 computadoras cuando era estudiante universitario. Por lo tanto, los programadores de mi edad serían un pequeño porcentaje, incluso sin las otras razones por las que los programadores mayores abandonan.

Estas son dos preguntas diferentes:

>> 1. ¿Por qué no hay muchos programadores antiguos en las compañías de software? <<

>> 2. a medida que los ingenieros de software progresan en su carrera, ¿son menos comercializables cuando alcanzan cierta edad? <<

# 2 es más fácil de responder. Si progresas en tu carrera, entonces dudo que te vuelvas menos comercializable independientemente de cuál sea tu carrera. Siempre hay menos trabajos para personas más experimentadas / capaces, y la competencia puede ser dura porque hay menos espacio en el extremo “superior” del espectro profesional. Muchas personas con décadas de experiencia no comprenden que hay un límite superior en lo que vales.

# 1 es más complicado. Frustrados por la respuesta del mundo real al n. ° 2, muchos expertos en software han decidido hacer otra cosa. Un buen número de personas ha trabajado 30 años y tiene suficiente dinero o ha llegado a un punto en el que el ingreso no es el principal factor decisivo en el empleo. En mi caso, tomé un trabajo haciendo TI en una universidad local. Me pagan bastante bien, pero casi lo que podría estar haciendo como contratista, pero la universidad me da una oficina privada, sin horas reales que mantener, excelentes beneficios, acceso a la biblioteca para investigación, conferencias a las que asistir, programadores más jóvenes para enseñar, y personas inteligentes agradables con quienes trabajar. Mi jefe es 13 años más joven que yo, y parece molestarlo más que a mí en la medida en que le molesta. De hecho, tiene 5 de los 10 mayores de 45 años (su edad).

Creo que hay tres factores principales.

  1. La programación solo se ha vuelto realmente popular relativamente recientemente, por lo que las personas mayores en su mayoría no habrían aprendido la programación cuando eran jóvenes. Cuando comencé a trabajar como desarrollador en 1997, había personas en la oficina que comenzaron a programar con tarjetas perforadas y en sistemas en los que había que esperar toda la noche para saber si el programa iba a funcionar o no. Esto podría haber sido un negocio importante, pero no era nada tan grande como lo es hoy. No mucha gente hizo esto.
  2. Los programadores a menudo descubren, después de cierto punto, que hay más dinero para tener más fácilmente en la administración, o al iniciar su propia empresa o al hacer algo diferente (pero hecho posible) escribiendo el código ellos mismos. Tienes que amar mucho la programación, o no ser ambicioso de esta manera, para seguir codificando cuando seas mayor.
  3. La mayoría de las personas probablemente descubran que su pasión por la codificación disminuye a medida que envejecen. Es posible estar realmente entusiasmado con la codificación cuando eres joven, pero luego de hacerlo durante décadas, ya no es tan emocionante. Puede comenzar a pensar más en organizar proyectos en lugar de hacer toda la codificación usted mismo, día tras día.

En pocas palabras: realmente te debe gustar mucho programar para seguir haciéndolo cuando seas mayor. Afortunadamente, algunas personas siguen interesadas en codificar hasta el punto de querer seguir haciéndolo, y luego pueden aportar una gran cantidad de experiencia. Pero muchos descubren que ya no lo aman lo suficiente como para hacerlo todos los días. La creciente industria de TI tiene más probabilidades de atraer nuevos reclutas que sean más jóvenes que mayores. Sin embargo, muchas personas ahora aprenden a programar a partir de los 40 años.

¿Porque HN y Reddit han reemplazado la experiencia?

Con toda seriedad, hoy, vi un trabajo en Valley pidiendo un desarrollador “Senior” con “al menos 3 años de experiencia”. ¿Cómo sabrían qué hacer con alguien con 20?

La única forma en que un jefe o colega de 20 y tantos años con una determinada mentalidad común respetará a un programador mayor es si es una especie de celebridad, porque si no estás en la cima, a los 40 años, entonces hay algo mal con ¿tienes razon?

In many cases the prevailing culture doesn’t encourage older developers to stick around. If one’s ability to contribute is neutralised or not acknowledged, a career switch to restoring guitars starts to look truly appealing.

(There are exceptions. Amazon is a famously age-agnostic company—indeed they are committed to reducing discrimination of any kind—and if you can deliver results, you’ll do well there at any age.)

Blargh.

Update: Michael O. Church’s answer shouldn’t be missed.

Update(2): For an angle involving demographics— A Generation Lost in the Bazaar

Thirteen years ago also marks the apogee of the dot-com euphoria, where every teenager was a Web programmer and every college dropout had a Web startup. I had genuine fun trying to teach some of those greenhorns about the good old-fashioned tricks of the trade—test-restoring backups, scripting operating-system installs, version control, etc. Hindsight, of course, is 20/20 (ie, events may have been less fun than you remember), and there is no escaping that the entire dot-com era was a disaster for IT/CS in general and for software quality and Unix in particular.
I have not seen any competent analysis of how much bigger the IT industry became during the dot-com years. My own estimate is that—counted in the kinds of jobs that would until then have been behind the locked steel doors of the IT department—our trade grew by two orders of magnitude, or if you prefer, by more than 10,000 percent.

I’ve been a professional programmer for 32 years and have seen many solid programmers “move on” to management or management-like positions. Each circumstance is different, but I have noticed some common threads.

One cause is a frustration with always having to keep up with the latest trends. This can be especially frustrating when whatever is new isn’t necessarily a step forward. In fact, a lot of new languages and frameworks represent a lateral or backwards step in many ways, which often isn’t fully appreciated by those who most enthusiastically take the first gulps of Kool-aid.

For those of you who might not relate to this because perhaps you are fully enjoying the latest flavor, imagine forward a few years and picture the release of a trendy new framework that uses none of the tech that you’ve spent years mastering. You were at the top of your game, but now you’re just playing catch up. Chances are, your experience will allow you to come quickly up to speed on the new thing, but you’re having to do this probably in parallel to your day job because people rarely want to pay you to learn a new platform. In the process you also encounter numerous shortcomings in the new approach; things that were either not a problem to begin with, or were already solved by the prior approach. Now repeat this process several times over a few years and you can appreciate how it can seem appealing to get out. If you cling to the old tech, you can probably still find work, but the types of projects will become less and less interesting. For instance, a VB 6 programmer can probably still find employment, but it almost certainly will involve maintaining some massive spaghetti system.

A corresponding question, might be: given the constant opposing inertia, why stay a programmer for very long when other opportunities are more lucrative and often easier? I can’t speak for everyone, but I stay in part because I’ve learned to embrace framework writing. With enough experience, you get to where you can quickly pick up new tech and build the needed scaffolding to shield yourself from the platform’s dragons. Many programmers are squeamish about extending their platform, but I think this is to be overcome if you’re to keep your long-term satisfaction.

Another reason I stay is because I’m interested in studying languages and frameworks themselves. Almost every approach, though often taking numerous missteps, innovates in at least small ways and I try to observe these and consider how I might draw on the technique later. In short, on the side I have plans to better the art, with a new platform of my own, so I try to look at existing tech from a perspective of extracting anything good.

In summary, if you’re just coding as a career, you might just have enough apathy to stick with it, learning just enough to get by as you go, or perhaps don’t mind doing maintenance work. If you’re a more passionate person, you’re probably going to eventually step out of coding or you’ll figure out how to cope because you just plain love the art, as I do.