A lo largo del curso de la carrera de un ingeniero de software, ¿con qué frecuencia deben aprender periódicamente nuevas pilas o idiomas?

¡Qué pregunta interesante! He tenido una carrera muy larga, y me ha hecho hacer un inventario de todos los trabajos y tecnologías que he desarrollado en mi carrera.

  • 1993: Unix, C, SQL y algunos DB relacionales
  • 1994: SunOS, C ++, SQL, RDBMS
  • ~ 1999: Linux, python, ZOPE, Zope Tempaltes, ZODB (todo lo que he hecho a partir de este punto también implica HTML y CSS)
  • ~ 2003: Linux, python, Plone, SQL, ZODB, MySQL / Postgresql
  • ~ 2009: Linux / MacOS, python, Django, SQL, MySQL, AWS
  • ~ 2012: Linux / MacOS, Javascript, Node.js, AngularJS, Backbone, Knockout, MySQL, AWS
  • ~ 2014: Linux / MacOS, Javascript, Meteor, OrientDB

Una de las respuestas que leí decía que depende de la frecuencia con la que cambies de trabajo. Esto nace de mi experiencia. Durante 23 años he aprendido alrededor de 7 nuevas pilas o tecnologías. Cada cambio representa aproximadamente representa un cambio de trabajo. Entonces, ¿una nueva pila ~ 3 años?

Sospecho que la tasa de cambio se está acelerando, por lo que podría considerarse una estimación conservadora.

Algunas personas en Quora escriben que tener que aprender nuevas tecnologías y marcos es un inconveniente de ser un programador. Lo veo como todo lo contrario. Aprender nuevos marcos y tecnologías me mantiene interesado. Puede que esté resolviendo el mismo problema una y otra vez, ¡pero al menos lo estoy haciendo de una manera nueva (y con suerte mejorada)!

Un ingeniero de software debe seguir aprendiendo constantemente cosas nuevas. Eres un buen ingeniero de software si nunca dejas que el estudiante que está dentro de ti muera.

Si crees que has adquirido algún conocimiento acerca de algunos apilamientos / tecnología y eso debería ser lo suficientemente bueno para toda tu carrera, entonces probablemente estés pensando mal. La tecnología sigue cambiando más rápidamente en la ingeniería de software y probablemente en cualquier otro lugar.

Todos los días, tómese un tiempo para aprender algo nuevo, explorar, tratar de saber más, ya sea sobre su área actual de habilidades o algo nuevo. Manténgase al día con los últimos desarrollos, siempre siga enriqueciéndose. Es importante que hagas lo que te gusta y te gusta lo que haces.

Entonces, ¿con qué frecuencia un ingeniero de software debe aprender? La respuesta es siempre.

¿Con qué frecuencia debería aprender sobre nuevas pilas / idiomas? Si esa pieza de tecnología le parece interesante e importante para su trabajo, entonces debería hacerlo.

Probablemente depende de la frecuencia con la que cambies de trabajo o proyectos. Supongo que hay personas que han hecho una carrera manteniendo sistemas heredados en funcionamiento, que nunca han tenido que aprender más de un idioma (probablemente COBOL). Y luego están todos esos sistemas basados ​​en tubos en la FAA, aunque parece que finalmente se están actualizando.

Depende del desarrollador. He sido programador durante casi seis años. En ese tiempo he tenido que aprender dos motores de juego diferentes y tres idiomas diferentes. Utilicé tres controles de versión diferentes y dos IDE diferentes. Esto fue a lo largo de tres empleadores.

Nada de eso me parece particularmente excesivo. Tampoco fue particularmente estresante. Los nuevos idiomas son fáciles. Otra tecnología toma un poco pero todavía no es un obstáculo importante.

Si va a seguir siendo un desarrollador, constantemente sentirá la presión de mantenerse al día con las últimas tecnologías. Esa es una de las partes más difíciles de trabajar en este rol durante mucho tiempo.