¿Cuál es la relación entre 5G y la inteligencia artificial?
La edad promedio de la fuerza laboral estadounidense es de 42 años. Una encuesta de Stack Overflow sobre la edad muestra que los desarrolladores mayores de 40 años solo representan el 13% del número total de desarrolladores. . ¿Dónde están los demás? ¿Fueron despedidos o ascendidos a puestos directivos? ¿Es el desarrollo de software el fin para las personas mayores de 40 años?
Este artículo enumera las historias de 10 programadores veteranos de más de 40 años. Todos son desarrolladores de software de primer nivel que se niegan a ocupar puestos directivos. Todavía están activos en la primera línea del desarrollo y utilizan la programación como su principal fuente de ingresos.
Rob Fletcher es ingeniero de software senior en Netflix (Los Gatos, California). Tiene 45 años.
Expertos: Desarrollo web, desarrollo basado en pruebas, desarrollo ágil de software, Grails, Groovy, Spock y AngularJS.
Llevo 16 años escribiendo código. Después de trabajar como contratista independiente durante varios años, me uní a Netflix como ingeniero senior a los 42 años.
Escribo código todos los días. Mi idioma favorito en este momento es Kotlin. Quiero aprender el idioma Go. Los más utilizados incluyen Java, Scala y Groovy. Siempre estoy aprendiendo cosas nuevas, incluso pequeñas. Sabía que sería un pésimo gerente, así que no quería convertirme en uno en absoluto.
Mucho depende de tu actitud. No seas un viejo técnico que odia las nuevas tecnologías y no te rías de quienes las utilizan. A la hora de elegir tecnología, tu experiencia debe ser la base de tu decisión. Si eliges tecnologías antiguas, es porque son adecuadas para las necesidades actuales, no porque quieras proteger años de experiencia acumulada que está a punto de volverse obsoleta, o porque tengas miedo de que los rezagados te la arrebaten con Node.js y Vaya cuenco de arroz.
Ebbe Kristensen es diseñador de software senior en Prevas A/S (Dinamarca). Tiene 62 años.
Expertos: Desarrollo de software embebido en tiempo real, gestión de configuración de software, construcción de casos de prueba (pruebas de sistemas y pruebas unitarias). en sistemas integrados en tiempo real, Linux y Windows (incluido .NET), y se especializa en C, C++, Python, C# y Pascal.
Obtuvo una licenciatura en ingeniería electrónica de sistemas de potencia en 1980. Desde mi primer trabajo, me gané la vida desarrollando software. Por mi título profesional, me tomó casi un año conseguir mi primer trabajo. Pero desde entonces soy ingeniero de software.
Escribo código casi todos los días y no me ocupo de ninguna tarea relacionada con la gestión. De hecho, hace mucho tiempo me di cuenta de que no era competitivo en la gestión.
Como programador, disfruto este rol y estoy calificado para el trabajo. Si fuera gerente estaría en un gran problema y no me gusta nada la gestión.
Solo dos de mis compañeros son mayores que yo, y los demás (incluidos mis jefes) son más jóvenes que yo. Mi superior directo tiene menos de 40 años y es uno de los mejores directivos que he conocido. Conseguí este trabajo cuando tenía 58 años, pero no soy el empleado de mayor edad. Hay dos compañeros que son mayores que yo. Pese a ello, fueron contratados por la empresa.
A veces, no se aprende nada durante días o incluso semanas, y en ocasiones lo que se aprende en unas pocas horas puede compensar el tiempo "perdido". Lo importante es que siempre hagas lo mejor que puedas para aprender y estés siempre listo y esperando que surjan oportunidades.
Hermano John, 47 años, arquitecto senior de software en Make&Build (Atlanta, GA).
Expertos: Arquitectura y desarrollo empresarial, scrum master, software de visualización de datos. Procesamiento de tarjetas de crédito, servicios informáticos y desarrollo de aplicaciones móviles.
Me gusta resolver problemas y me gusta encontrar nuevas formas de resolverlos. Debido a esto, parece que tengo las habilidades para mantenerme al día.
Actualmente estoy desarrollando un proyecto usando Node.js. He usado Hadoop y NoSQL antes, desarrollé aplicaciones de Android, escribí código en lenguaje Go y estoy familiarizado con varias funciones de jQuery y Bootstrap.
También presto atención a los últimos desarrollos en Java, así como a tecnologías relacionadas como Spring, JMS, REST, JSON y JPA.
También presto la debida atención a otras partes del ecosistema tecnológico. En los últimos años, he usado IntelliJ, Eclipse, Sublime, Emacs y Vi, y me gusta usar estas herramientas para resolver varios problemas. Al principio usé CVS, luego aprendí Subversion y recientemente estoy aprendiendo Git. También tengo experiencia relacionada con AWS.
También soy Scrum Master, Product Manager y Desarrollador certificado. He escrito mucho sobre pruebas unitarias automatizadas (el desarrollo basado en pruebas es uno de mis desafíos favoritos al crear sistemas).
No tengo miedo de aprender cosas nuevas. Utilizo Ruby on Rails/Grails para desarrollar aplicaciones web y uso Perl, PHP y Python para desarrollar aplicaciones para resolver problemas comerciales. También tengo experiencia con SOAP y AOP.
Me esfuerzo por ser un desarrollador full-stack. Estoy familiarizado con Unix y, a menudo, escribo scripts de shell. Disfruto implementando aplicaciones, servidores y herramientas, ya sea en desarrollo o producción. Estoy familiarizado con SQL y NoSQL y conozco sus respectivos pros y contras. Entiendo TCP/IP, los conceptos básicos de enrutamiento, DHCP y varios servidores proxy. He creado aplicaciones MVC, aplicaciones basadas en mensajes, EJB y servicios basados en Spring. También he realizado desarrollo front-end de JavaScript y CSS. No quiero ser un desarrollador UX galardonado, pero al menos puedo completar funciones básicas.
Planeo trabajar otros 21 años más. Si paso del desarrollo web al desarrollo basado en servidor D-ware, es posible que me quede atrás; si la programación funcional termina apoderándose del mundo, es posible que me quede atrás. Pero en ese momento todavía tenía esperanza.
Roger Whitcomb (Roger Whitcomb) es arquitecto de software e ingeniero de software en Actian Corporation (Palo Alto, California). Este año cumple 60 años.
Experiencia: C, C++, Java
Cuando me estaba preparando para ser abogado, comencé a estudiar informática (si puedes imaginar cómo es)...ahora, Me gano la vida (al menos en esta etapa) escribiendo grandes cantidades de código Java funcional y bien documentado.
En la era de Windows 3.0 (alrededor de 1986, no lo recuerdo con claridad), el desarrollo comenzó en Windows. Hace unos 10 años me cambié a Mac y nunca volví a Windows. Me siento como un geek trabajando en una MacBook Pro... desarrollando en C, C++, Java y Swift...
En mi último trabajo, tuve que diseñar una suite completa desde cero, este sistema Es la primera vez que hago algo como esto. Es un poco difícil para mí mantenerme al día con la velocidad de la web y los dispositivos móviles, pero todavía estoy lejos de la dimensión desconocida, a pesar de que tengo 60 años. Me habían ofrecido algunos trabajos de "gerente" en el pasado, pero los rechacé. Prefiero programar...
Sin embargo, también sé que algunos colegas despedidos que son similares a mí (o mayores) tienen dificultades para encontrar trabajo ("¿Es porque tienen demasiada experiencia?"), Por eso sé cómo ve la gente a los que han pasado cierta edad y piensan que no tienen futuro. Pero creo que lo más importante es que continúe creando valor para su empleador.
Actualmente soy el presidente del PMC del proyecto Pivot de la Apache Software Foundation. Como desarrollador de Java (commitidor de proyectos relacionados con Java), espero que Java viva para siempre. Como mínimo, no se le ocurra un lenguaje mejor y me pida que transfiera todo el código...
Scott Gartner es ingeniero de software senior en Silver Back Learning Solutions (Boise, ID) y tiene unos 50 años.
Expertos: Diseño e implementación de frameworks, parsers, modelado, gráficos, subsistemas de bases de datos, diseño de bases de datos (SQL, DML, DDL y LINQ), diseño xml, solución de inicio de sesión único (SSO), aplicaciones de Internet. , Aplicaciones y animaciones de Windows.
Soy programador desde hace 34 años y mi currículum cabe en una hoja de papel. Todas las habilidades de más de 5 años son solo un rasguño en un currículum. También tengo un segundo currículum que enumera todos los lenguajes de programación y herramientas de desarrollo que he usado, bases de datos, sistemas de animación, etc. De esta manera la gente podrá conocerme más fácilmente. Solo saqué un segundo currículum cuando me lo pidieron.
En las grandes empresas (al menos para mí), es habitual que los programadores veteranos quieran pasar a la dirección. Me he enfrentado a decisiones similares, pero no soy bueno administrando. Simplemente me gusta ser programador o arquitecto.
Descubrí que mi memoria no es tan buena como antes y ni siquiera puedo recordar los modelos de sistemas grandes. Sin embargo, encuentro que mi rica experiencia se vuelve cada vez más valiosa.
Tenemos que admitir que debemos seguir formándonos y creciendo a lo largo de nuestra carrera. Las cosas cambian tan rápido que si te detienes, eventualmente te quedarás obsoleto.
Aprendo un nuevo lenguaje de programación cada dos años. Algunos son lo que quiero aprender, pero la mayoría se deben a necesidades del desarrollo tecnológico (y algunos se deben a los requerimientos de nuevos trabajos). Esto es muy interesante. Actualmente, estoy aprendiendo sobre almacenamiento de datos (OLAP), procesamiento ETL, esquema en estrella y cubos.
Brian Bowman (Brian Bowman), ingeniero principal de software en SAS (Cary, Carolina del Norte), 56 años.
Expertos: componentes internos de sistemas de archivos o bases de datos propietarios, estructuras de datos persistentes, técnicas de búsqueda de índices y directorios, administración de servidores, controladores DASD IO, generación de código de máquina o conversión de código entre arquitecturas, persistencia de objetos, clientes finales -Interfaz de servidor, multiinquilino, almacenamiento en caché distribuido, sistema de autorización a gran escala (implementación, gestión y registro). Actualmente, la investigación, diseño y programación de servicios de análisis en la nube se completan sobre la plataforma SAS Viya.
La edad promedio de los miembros actuales de mi equipo es de 50 años y cada miembro tiene más de 20 años de experiencia en el desarrollo de software de sistemas.
Mis colegas y yo dedicamos mucho tiempo a codificar, depurar, probar y responder preguntas sobre la arquitectura del sistema. Algunos colegas también participan en evaluaciones de tecnología de hardware, hablan en conferencias, contribuyen a la comunidad de código abierto, etc.
Durante los últimos dos años, he formado parte de un equipo de élite en una empresa de software que cuenta con muchos ingenieros talentosos, muchos de ellos con títulos avanzados en informática y matemáticas aplicadas. Antes de esto, trabajé durante más de 10 años en un pequeño equipo donde diseñamos y desarrollamos un servidor de clúster de objetos de metadatos multiproceso desde cero.
Mis compañeros más cercanos en el equipo son cinco o seis años mayores que yo. Durante este tiempo, recibí cuatro patentes nacionales de EE. UU.... todas las cuales recibí después de cumplir 40 años.
Continuaré trabajando mientras pueda hacer una contribución significativa. Desde los primeros días de estudio e investigación hasta las posteriores necesidades laborales, he recargado mi carrera muchas veces. Esta es mi naturaleza y lo que me motiva a seguir mejorando.
No creo que la tecnología actual me permita trabajar sólo hasta los 70 años. Comencé mi carrera en 1983 y he sobrevivido gracias a cuatro habilidades informáticas principales:
Programación de sistemas mainframe a nivel de lenguaje ensamblador.
Programación portátil basada en lenguaje C para plataformas multihost, incluidos escritorios, redes Unix de tamaño mediano, minicomputadoras (como VAX) y sucesores de mainframe.
El entorno de servidor de clúster multicapa consta de C multiproceso en el back-end y Java en la capa intermedia para cumplir con los requisitos de alta disponibilidad. Está orientado principalmente a entornos de servidor Windows y Unix, incluido Linux.
La computación grid paralela a gran escala basada en C multiproceso satisface una escalabilidad virtual ilimitada.
Aunque tendré estas habilidades hasta la jubilación, durante los próximos años ampliaré mi experiencia al aprendizaje automático.
Quizás dentro de 10 años, la demanda de programadores comunes caiga drásticamente. Si una persona realmente disfruta de la tecnología informática, pero no puede alcanzar un nivel superior en programación, considere convertirse en un administrador de sistemas experimentado. Siempre tienen mucho trabajo que hacer, como configurar, implementar y mantener sistemas.
Alec Cawley, investigador jefe de software de DisplayLink (Palo Alto, California), tiene unos 60 años.
Expertos: Embebido, multihilo, multiproceso, controlador, pila de comunicación, C/C++, Java, Python, hardware. Los arquitectos/ingenieros de software, especialmente en sistemas de software con estrecho contacto con el hardware, trabajan con ingenieros de hardware para maximizar la efectividad del software y el hardware.
A mis 62 años, soy el desarrollador de mayor edad de la empresa y la mayoría de los demás tienen entre 40 y 50 años.
Mi colega más joven debe tener unos veinte años. Hay una diferencia de edad de 35 años entre ellos y yo, pero eso no es un problema.
Deberíamos adoptar la tecnología. El mundo de hoy es muy diferente al comienzo de mi carrera (los días de Fortran), y los cambios continúan. Pero, por otro lado, los problemas a resolver son siempre muy similares, que no son más que cómo convertir las necesidades humanas en cosas que las computadoras puedan hacer, cómo evitar errores y cómo encontrar errores inevitables. Los lenguajes de programación, los entornos de desarrollo, los kits de herramientas, las API y otras cosas son solo medios para resolver problemas, y solo aprendemos a usarlos cuando es necesario.
Empecé con cinta de papel perforada. Incluso en la época de los archivos de disco, todavía era la primera persona en leer un programa desde una impresora de líneas. Más tarde aparecieron los editores de texto universales. Ahora uso un IDE con resaltado de sintaxis.
Creo que todavía habrá necesidad de desarrolladores de software dentro de 10 a 20 años. En mi opinión, el trabajo de un desarrollador de software es traducir las necesidades del cliente en instrucciones para su ejecución por computadora, y este trabajo es indispensable. El mundo siempre necesita expertos que comprendan las computadoras mejor que la gente común y tengan muchos conocimientos relacionados con herramientas (paquetes de software, API, interfaces, etc.).
Soy muy afortunado de haber elegido una empresa. . Paso la mayor parte de mi tiempo desarrollando software y siempre hago algo que no se ha hecho antes. Siempre hay algunas tareas repetitivas en el desarrollo de software y puedo imaginar lo aburrido que sería hacer ese tipo de trabajo. Pero si siempre estás haciendo algo nuevo, no te aburrirás.
Mi mundo integrado parece estar capeando las tendencias mejor que las aplicaciones. Cada pocos años, aparece algo nuevo en la aplicación, algunos son casi un destello en el sartén, otros permanecen por un tiempo, alcanzan su punto máximo y luego mueren. Los sistemas integrados siempre han sido fuertes, basados en lenguaje C y un poco de C++. Por otro lado, el hardware cambia constantemente, lo que hace que las cosas sean más interesantes.
Victor Volkman, ingeniero de software senior en Proquest (Ann Arbor, Michigan), tiene 54 años.
Expertos: Bueno en Python, Linux, C/C++. NET, MS Access, MySQL y todos los entornos basados en SQL en bases de datos, así como experiencia en TCP/IP, automatización de sistemas empresariales y computación distribuida.
Arquitectura y gestión son dos líneas paralelas. En empresas de más de 250 personas, los técnicos suelen tener dos opciones.
¿Te gusta lo que estás haciendo? Si es así, sigue haciéndolo. Renunciar a lo que te gusta por un pequeño salario y estar todo el día trasteando con reuniones y correos electrónicos será más una pérdida que una ganancia.
Cada dos años, las reglas del juego cambian. Pero no te preocupes. Dedique de 3 a 4 días a aprender nuevos entornos de programación y luego utilizarlos para respaldar el negocio. Durante los últimos 30 años, he aprendido algo nuevo casi cada cuatro años. Hay 6 personas en mi equipo, con edades comprendidas entre 48 y 56 años. Hemos pasado por entre tres y ocho actualizaciones tecnológicas.
La siguiente es una descripción general de mi carrera:
Comencé a escribir código MS-DOS en C y lenguaje ensamblador.
Aprende a desarrollar aplicaciones Windows usando C++ y MFC.
Aprenda a utilizar Unix Perl para desarrollar aplicaciones web basadas en CGI-BIN.
Aprende C#
Aprende Java y JSP
Aprende desarrollo de teléfonos inteligentes: iOS/Android/Blackberry
Vuelve a Unix y comienza a usar eso pitón.
Desarrollo de estaciones meteorológicas automáticas (EC2, RDS, SQS, etc.)
Kurt Guntheros, ingeniero de software, más de 50 años.
Expertos: Windows, Linux/Unix, diseño de algoritmos integrados, C++, C, multihilo y distribución, telecomunicaciones, seguridad, programación de sockets, miembro del comité de estándares, planificación de productos e implementación de conceptos, ISO; 9000, desarrollo ágil y metodologías de desarrollo tradicionales.
El desarrollo de software es todavía un campo joven y las herramientas y técnicas siguen cambiando rápidamente. Si los desarrolladores de software no pueden actualizar constantemente sus habilidades, quedarán obsoletos en menos de 20 años. Por tanto, un programador de 40 años pronto se encontrará incompetente y preocupado por su futuro.
Excelentes desarrolladores seguirán estudiando hasta la jubilación, como Ken Thompsons y Bjarne Stroustrups. Sin embargo, la mayoría de nosotros (especialmente aquellos que tenemos alrededor de 40 años) eventualmente nos daremos cuenta de que no podemos ser maestros en la industria.
C++ ha cambiado mucho. Cada pocos años, hay una nueva versión que contiene funciones completamente nuevas. Nunca dejo de aprender. En otras palabras, me he convertido en un desarrollador de C++ con mucha experiencia, con más de 20 años de experiencia en programación de sistemas a tiempo completo. Si alguien me pidiera que calificara mi experiencia del 1 al 10, sin duda me calificaría con un 9 porque las únicas personas que conocen C++ mejor que yo son las que escriben libros. Más tarde escribí un libro sobre optimización de C++.
Programar es algo muy fácil. Hacen lo que les dices que hagan. Son dignos de confianza y confiables. No hay un día bueno ni un día malo para el código, pero su existencia radica en el tiempo que interactúas con él. Los códigos pueden ser un hueso duro de roer y requieren gran atención al detalle y un esfuerzo mental considerable.
Los seres humanos y el código son completamente diferentes. Los seres humanos son astutos y cambiantes y no pueden ser utilizados como herramientas. No puedes simplemente decirles qué hacer, tienes que influenciarlos para que hagan lo que necesitas que hagan. No responderán directamente a sus comentarios, sino indirectamente a sus estímulos o a algunas recompensas que proporcione. Aunque los humanos son sensibles a las recompensas y los castigos, simplemente manejarlos de esta manera no será efectivo. La gestión debería ser como interactuar con familiares, amigos y compañeros. Si te gusta trabajar con personas, te gustará la gestión. Si no le gusta trabajar con la gente, no será un gerente exitoso.
Los gerentes bien pagados ganan más que los programadores bien pagados, pero se necesita mucha formación académica prestigiosa, buenas redes interpersonales y alianzas políticas, y un cierto nivel de crueldad para asustar a la mayoría de la gente. La programación no requiere este tipo de crueldad, que es el lado bueno de la programación. La programación se trata de innovación, no de manipulación.
Entonces, debes preguntarte, ¿qué forma de interacción prefieres, la certeza y elegancia del código, o la amistad y el liderazgo de los humanos? Está bien si te gusta el código, los arquitectos senior y los CTO también pueden ganar mucho dinero.
James Greening, un consultor de software de unos 60 años.
Expertos: Diseño de software orientado a objetos, desarrollo basado en pruebas (C, C++, Java, C#), software embebido, refactoring, programación extrema, Scrum, desarrollo ágil, planificación de lanzamientos y planificación incremental. Uno de los principales contribuyentes al marco de pruebas unitarias de C y C++ CppUTest. Ponente en Conferencia de Sistemas Embebidos y Conferencia Agile. Uno de los autores originales del Manifiesto Ágil.
Aprende continuamente. Tengo 62 años y sigo programando. Me gusta la programación.
Dedicaré algo de tiempo a la gestión, que es muy importante para mí. Sin embargo, decidí que la programación y el diseño de software serían mi pasión. Después de aprender algunas cosas de la administración, decidí volver a lo que más amaba: el desarrollo de software.
Para asegurar tu valor debes asegurarte de que tus 40 años de experiencia no se repitan. Vivimos en un mundo que cambia rápidamente, no sólo en términos de tecnología, sino también en la forma en que creamos software.
Hacer cosas está bien, pero no es suficiente. También es necesario hacer que el producto y el código sean más útiles y duraderos. Necesitas saber cómo ser parte de un equipo. Si desea lograr el éxito a largo plazo en su carrera y ganar dinero al mismo tiempo, no basta con simplemente hacer cosas.
El editor quisiera decir dos palabras más:
De hecho, cuando estás vivo, te enfrentas a muchas opciones. No te dejes molestar por comentarios externos, simplemente sé tú mismo. Todo encajará y todo estará bien. Solo tenemos que hacer un buen trabajo: cuando sea viejo, pálido, acostado en la cama del hospital, mirando hacia el pasado, las comisuras de mi boca se levantarán, no me arrepentiré y mi vida estará completa.
La espada no está bien emparejada, y ya está en el mundo; el vino aún está caliente, y no sé cómo beberlo.
¡Que recorras miles de velas y regreses a tu juventud; al pasar los años, tu corazón sigue siendo joven!