¿Por qué los salarios de los desarrolladores de software siguen siendo altos a pesar de la subcontratación y de todos los MOOC y universidades que ofrecen diversos cursos de programación? ¿Ve una caída en la relación oferta / demanda en el futuro inmediato, junto con la automatización de códigos?

Hablando solo de la parte del curso en línea / MOOC ya que no estoy familiarizado con la automatización de código / outsourcing:

Cuando la mayoría de las personas se ponen a aprender a programar en un MOOC de 9 a 12 semanas, realmente pasan la mayor parte del tiempo aprendiendo sobre la sintaxis, averiguando qué va a dónde y cómo trabajar el código para que salga la salida correcta.

Sin embargo, los ingenieros excepcionalmente talentosos, aquellos que cobran esos altos salarios, hacen mucho más que ensamblar códigos como Legos. Se les paga bien para pensar e implementar soluciones a problemas que de otra manera serían complicados. A menudo, esas soluciones tienen un gran impacto en el resultado final, justificando su pago para llevar a casa.

El problema con los MOOCs.

En un nivel introductorio, la mayoría de los cursos enseñarán la mecánica del código. Muy pocos pasarán el tiempo para profundizar y enseñar los principios y teorías de la informática. Aún menos te enseñan cómo pensar y abordar problemas.

Además, ningún MOOC puede hacerte un buen programador por sí solo. Algunos MOOC pueden darle un buen comienzo, pero el aprendiz debe reunir la dedicación, el tiempo y el esfuerzo necesarios para convertirse en excepcional. Algunos podrían reunir estas cosas, pero pocos las sostendrán.

Oferta y demanda

Los MOOC merecen mucho crédito por las oportunidades que aprovechan para las masas. Sin embargo, por todas las cosas que mencioné anteriormente y debido a que gran parte de lo que hace que un gran ingeniero esté fuera de su alcance, no veo que el equilibrio entre la oferta y la demanda cambie tanto de MOOCs.

Piense en ello como un embudo, muy permeable.

Un millón de personas ingresan al embudo inscribiéndose en un curso en línea sobre programación. De ese millón, quizás solo el 10% (una estimación generosa) pasará. Y de ellos, quizás solo el 10% continuará desarrollando sus habilidades. Eso nos deja con 10,000 individuos. Solo puedo adivinar cuántos de ellos dedicarán miles de horas a refinar su arte hacia la perfección.

¿La contribución global que hacen en la oferta? Mínimo.

Y esto no es solo una cosa de programación.

Lo mismo ocurre con cualquier otro tipo de habilidad o talento. Puede elegir un nuevo idioma extranjero, aumentar su vocabulario, aprender algunos idiomas y resolver la gramática. Sin embargo, la fluidez no significa que esté listo para escribir sus propias novelas en ese idioma objetivo. Así es con la programación.

Si encuentra útil esta respuesta, siga y visite OpenCourser , un sitio que ayuda a los alumnos a encontrar cursos en línea.

Porque los MOOC no abordan la escasez de ingenieros de software.

Tampoco los “campos de entrenamiento”.

Tampoco, para el caso, alguien toma algunos cursos universitarios, pero no pone mucho esfuerzo, y hace lo mínimo para calificar para el crédito del curso.

La subcontratación aborda algunos de los problemas. Muy poco, pero al menos algunos.

En su mayoría, termina nivelando los baches entre las emergencias de TI, al permitir que las personas se compartan entre empresas. Puede emplear menos personas en total, ya que las emergencias no suelen ocurrir en todas las empresas clientes al mismo tiempo: las manos adicionales se amortizan en un mayor número de empresas, en lugar de ser un costo para una sola.

Pero TI no es lo mismo que la ingeniería de software, por lo que la subcontratación realmente no tiene nada que ver con la demanda de ingenieros de software. Es principalmente sobre la demanda de empleados de TI en Disney y Pacific Bell.

La deslocalización reduce el problema un poco; pero no tanto como usted pensaría, como lo está descubriendo IBM; de ahí su reciente movimiento para devolver a las personas a las oficinas y suspender los programas de “trabajo en cualquier lugar” que eran lo que permitía la deslocalización en primer lugar. Muchas compañías han estado tendiendo la tendencia de esa manera:

  • Yahoo dice que matar a un trabajador desde su casa está resultando perfectamente | Empresa rapida
  • IBM fue un pionero en la revolución del trabajo desde casa, ahora está tomando medidas enérgicas
  • IBM les dice a los empleados que trabajan en casa que regresen a la oficina
  • Etc.

No ayuda que haya tantas estafas:

  • Si desea trabajar desde su casa, siga estos consejos para distinguir las oportunidades legítimas de las estafas: Moster.com.
  • The Jessica Marshall Work At Home Paycheck revisión de estafa. Otro enlace de publicación del programa.
  • Facebook: Programa de trabajo desde casa – scamdetector.com

E incluso si el trabajo se puede hacer de forma remota, ¿y no es una estafa? ¿Resulta que de las muchas personas a las que le gustaría trabajar en el extranjero para aprovechar un mercado laboral más barato?

Sí … sobre eso … muchos de los más calificados también están lo suficientemente calificados para obtener una visa H-1B.


Realmente no veo una caída en la relación demanda / oferta en un futuro próximo:

  • No veo ninguna de las cosas que dice que podrían aumentar la oferta, en realidad aumentar la oferta; Los veo convirtiendo a trabajadores de fábricas desempleados en diseñadores web desempleados. A mí no me parece un avance, es más como moverse alrededor de las sillas de cubierta en el Titanic para intentar evitar que se hunda.
  • No veo la automatización de código haciendo mucho. La gente cree que puede automatizar la ingeniería de software, de la misma manera que esas mismas personas creen que puede reemplazar las pruebas en animales de medicamentos y otros productos con modelos informáticos: no puede, y la comprensión de la tecnología por parte de las personas es muy inadecuada, si creen que puede serlo. hecho de esa manera

Considero que los MOOC y los campos de entrenamiento de codificación son una forma de vender servicios dudosos a las personas que están desesperadas, con la esperanza de que puedas “darles STEM”, cuando las cosas simplemente no funcionan de esa manera.

Tener una hoja de papel que diga que está calificado para un trabajo no lo hace realmente calificado.

Los salarios altos son altos por la razón de que los salarios son siempre altos: la demanda supera la oferta.

En un mercado laboral libre, hay algunas cosas que afectan la oferta:

  • Cantidad de talento en bruto con la capacidad de hacer el trabajo
  • Otras barreras de entrada tales como requisitos para calificaciones particulares, requisitos de visa, etc.

Ahora, el segundo de estos está mejorando debido a los MOOC, la subcontratación, etc. Pero el primero, el talento en bruto, sigue siendo un punto de estrangulamiento. No puedes entrenar a nadie para que sea un buen desarrollador de software, como tampoco puedes entrenar a nadie para que sea un buen atleta.

Algunas personas son naturalmente más atléticas / deportivas que otras, y otras son naturalmente más inteligentes en el pensamiento crítico / resolución de problemas / análisis de datos / representación simbólica / matemáticas discretas / lógica / malabarismo 10 cosas difíciles en su cabeza al mismo tiempo. Estos últimos son los que serán buenos desarrolladores. Hay mucho de esto que puedes entrenar.

He entrevistado a cientos de desarrolladores, y generalmente entrevisto por capacidad y potencial más que por conocimiento. El conocimiento es fácil de aprender de las fuentes que describe, pero la capacidad es algo con lo que, más o menos, ha nacido. Las habilidades en el desarrollo cambian cada año o dos y tienes que aprender nuevas de todos modos, pero las habilidades necesarias para aprenderlas y realizarlas no.

El outsourcing nivela un poco el campo de juego, pero los desarrolladores muy buenos en países como India o Europa del Este a menudo terminan en países occidentales con visas de talento. Así que se reduce la reserva de talento que queda atrás.

Ningún equipo de baloncesto lo hace bien contratando a miles de jugadores que miden 5 pies 3 y no pueden lanzar o atrapar una pelota. Sólo necesitan unos pocos realmente buenos. Es lo mismo con los desarrolladores de software. Un desarrollador malo en un equipo puede hacer que trabajen muchas horas para los buenos, y contratar más tipos débiles no mejora a tu equipo. Los equipos pequeños tienen una menor sobrecarga de comunicaciones.

Por lo tanto, siempre habrá un mercado altamente pagado para los mejores desarrolladores, siempre que el software gane dinero. A medida que la automatización se activa, los desarrolladores fuertes escribirán el código para realizar la automatización; en el software siempre hay otro nivel de abstracción, automatización o meta por encima del actual que las personas están presionando, y en eso es en lo que mejor trabajan los codificadores.

Eso no quiere decir que no haya más trabajo de rutina que las personas con una capacidad moderada puedan aprender y hacer bien, hay mucho trabajo y mucha gente que lo hace, pero no se les paga del todo. Los mismos altos salarios que estás mirando. Estos son los que pueden encontrar que sus funciones se ven afectadas por la automatización.

Es difícil decir cuánto tendrá la automatización del efecto; en el presente. No lo veo como una eliminación de trabajos, pero puede reducir el número de ellos o cambiar su naturaleza: en lugar de escribir código directamente, el rol puede ser configurar, ajustar y verificar la salida de un motor de mantenimiento de código, por ejemplo.

A lo largo de los años se han automatizado muchas tareas rutinarias en el software: los IDE modernos pueden hacer refactorización en minutos que una vez tomaron horas o días, el control de fuente moderno puede ayudar a que las combinaciones que hayan tomado semanas tomen semanas, y así sucesivamente. Al igual que con la automatización en otros lugares del lugar de trabajo, eso solo ha significado expectativas de mayor productividad, en lugar de reducir la cantidad de personas que realizan el trabajo. Entonces, mientras tenga talento y esté dispuesto a adaptarse a los cambios tecnológicos, tendrá una carrera larga y exitosa.

Los salarios siguen siendo altos porque la automatización no está lista para hacerse cargo de las partes difíciles: establecer una máquina de estado, arquitectura de seguridad, paquetes de comunicación, etc. Y, como se ha dicho en las respuestas anteriores, el código automatizado aún necesita revisión para garantizar que el código cumple con la intención Sin “desorden” innecesario.

En los próximos 20 a 30 años, espero un aumento en la automatización, que cambiará el conjunto de habilidades de un ingeniero de software. En lugar de saber cómo codificar un bucle while, una SE deberá saber cómo alimentar las entradas correctas a la automatización, es decir, el ingeniero de software no será obsoleto, solo se transformará. Esto no es muy diferente del cambio de la redacción en papel a CAD o de la fabricación manual a la fabricación automatizada. Todavía hay trabajos de fabricación, pero los más rentables requieren habilidades para mantener la maquinaria, no solo para ejecutarla.

No, subestima la dificultad de desarrollar software a gran escala y sobreestima lo que enseña un MOOC.

Usted está bajo la suposición errónea de que los desarrolladores de software, y los ingenieros en general, son altamente pagados. Ellos no son. Son personas de ingresos medios. Fontaneros, electricistas, abogados, médicos, vendedores, muchas otras profesiones ganan salarios promedio más altos que los desarrolladores de software. Hay un aumento general en el número de personas que trabajan con computadoras, pero cada día el software empaquetado se vuelve mejor y más barato, y las presiones sobre los desarrolladores para mejorar su productividad son inmensas. Mis hijos observan lo mucho que he trabajado como desarrollador y ninguno que debo seguir en mi profesión.

Trabajé para una compañía canadiense que es muy buena para traer pasantes a prácticas de 1 año. Sin embargo, trataron a estos muchachos como ingenieros totalmente calificados y cuando estaba revisando el código para corregir errores, a menudo descubrí errores horribles que agregaron sin saber porque carecen de experiencia …

La contratación de pasantes no suele ser un problema porque parte de ser un hombre mayor es ayudar a estos jóvenes a aprender sobre estas peculiaridades y, con suerte, hacerles saber cómo evitar tales errores en el futuro. Sin embargo, debido a que la compañía estaba extenuada, los ejecutivos no tenían tiempo suficiente para revisar correctamente el código y muchos pasantes se dejaron que se revisaran el uno por el otro. Las agujas para decir que ahora están en un estado de gran infierno (y han estado por más de un año) tratando de estabilizar el producto.

No, la demanda en realidad está aumentando ya que la oferta no produce suficientes programadores buenos. Con muchas áreas de negocios, incluidos los desarrolladores, la demanda no se reducirá en el tiempo previsible.