¿Habrá demasiados ingenieros de software en el futuro (cercano)?

  1. Muchas universidades comienzan a implementar clases de programación.
  2. Muchos confunden la Programación para la informática y, en cambio, se unen a los bootcamps de codificación. ¿6 meses o un título de 4 a 5 años? ¡A la gente le encantan los atajos!
  3. Muchos estudiantes ahora necesitan aprender programación. Muchos de ellos comienzan a aprender solo por aprobar los exámenes. Sin pasión. No tendrá mucho futuro.
  4. Muchos estudiantes comienzan a aprender programación. Pero encuentra que es difícil y cambia a diferentes especializaciones. Muchos nunca alcanzan el grado. Muchos despotrican sobre Quora.
  5. Pocos que terminaron el grado ingresan a la profesión docente. Podría reducir la calidad general. El círculo vicioso continúa.
  6. Pocos que terminaron la carrera encuentran difícil conseguir trabajos bien remunerados. Muchos tomaron CS después de escuchar los salarios de Silicon Valley. Pero la industria no resuena con esos salarios. Sueños aplastados.
  7. A las empresas les resulta difícil filtrar buenos candidatos para las entrevistas. Preocupaciones por falsos positivos.
  8. Las principales compañías de CS reclutan a los mejores, como siempre. Un poco más de trabajo para filtrar. Las empresas restantes necesitan clasificar el montón para contrataciones adecuadas.

¿Habrá demasiados programadores aspirantes? Seguro.

¿Habrá demasiados buenos programadores? Yo dudo.

Recientemente hubo una noticia sobre los ingenieros de software en India.

95% de ingenieros en India no aptos para trabajos de desarrollo de software: estudio

Aunque sospecho que el porcentaje de ingenieros de software no aptos podría ser menor (95%), todavía hay muchos ingenieros de software no aptos para el desarrollo de software.

Ya hay demasiados ingenieros de software o ingenieros de software reclamados. Los ingenieros de software expertos son aún menos.

Las razones:

  1. Educación primaria: por lo tanto, incluso si introduce la programación en la escuela primaria, si no los enseña de la manera correcta, los estudiantes no desarrollarán intereses en ella. La forma en que se imparte educación básica a los estudiantes es defectuosa. El primer paso es mejorar la educación básica.
  2. Los asientos para la sucursal CS son menos, puedo hablar de IIT. IIT Roorkee tiene alrededor de 50 estudiantes en el programa de pregrado de CS, que es relativamente menor que en otras ramas.
  3. Los estudiantes de otras ramas toman trabajos de CS: la mayoría de los ingenieros de software no calificados se producen porque muchos estudiantes sienten que sus trabajos de dominio pagan menos y optan por trabajos de Cs. Básicamente aprenden programación en el último año y se colocan en empresas de CS.
  4. Cada vez más empresas se están moviendo hacia la ciencia de datos: muchas empresas buscan habilidades de ciencia de datos en sus programadores. La ciencia de datos es el futuro. Sospecho que un perfil de ingeniero de back-end simple se volvería discreto en el futuro. Los ingenieros de ciencia de datos tendrían una gran demanda en el futuro.

Las personas que pudieron encontrar trabajo aprendiendo programación en pocos meses encontrarían difícil conseguir trabajo en el futuro o obtendrían trabajos con salarios muy bajos. Las startups buscan habilidades de CS y no solo programadores.

Repetiré lo que he dicho en otra respuesta: usando el método aprobado, por supuesto, entre comillas. Esto estará al final de mi respuesta.

Evitaría cualquier distinción entre “programación” e “ingeniería de software”. Tanto los programadores como los ingenieros de software son personas cuyo trabajo implica una gran proporción de programación.

Sin embargo, las personas consideradas ingenieros de software tienden a necesitar realizar muchas otras tareas. Lo que significa que en realidad están usando menos de esa valiosa habilidad de programación que las personas consideradas programadores . Eso es un poco de ironía para ti. Se debe tener cuidado con el pensamiento elitista inconsciente al hacer tal distinción.

Sí, hay demasiados programadores ahora, y habrá aún más programadores en el futuro. Este es un contrapunto a la opinión popular.

¿Por qué?

Hay mucha mano de obra de programación en este mundo, pero simplemente no se asigna de manera eficiente.

Existe una situación similar para la comida: los humanos pueden producir suficiente comida para alimentar a todos varias veces, pero no se distribuye de la manera correcta. Solo mire cuánta comida desperdician los países “desarrollados” del mundo.

¿Qué hacen todos estos programadores? La gran mayoría del tiempo se dedica al mantenimiento de sistemas antiguos. Gran parte de este trabajo consiste en pagar deudas técnicas: escribir casos de prueba faltantes, escribir documentación faltante, corregir errores, refactorizar, ajustes de configuración, etc.

¿Por qué todos estos viejos sistemas son tan malos? Debido a que los empleos en esta industria tienen un incentivo perverso : no hay incentivo para producir sistemas de alta calidad siempre que genere ganancias. Dado que el tiempo es artificialmente escaso, los programadores sacrificarán la calidad para construir cosas más rápido. Una vez que se construyen estos sistemas, generan ganancias, pero también generan problemas: deuda técnica. Esto significa que no puedes derribarlos de inmediato y tienes que contratar aún más personas para mantenerlos.

Los proyectos con demasiadas personas trabajando en ellos se paralizan con los costos de capacitación, comunicaciones redundantes, rotación, “parálisis de análisis” y otros problemas organizativos similares. Esto solo empeora a medida que las empresas contratan a más y más personas en lugar de asignar mano de obra existente de manera eficiente.

Entonces, ¿por qué las grandes empresas contratan a tanta gente si realmente no necesitan mano de obra adicional? Están contratando para no llenar alguna “demanda”, están contratando para mantener el talento alejado de los competidores.

Enlace para responder

Hay un aspecto de escala de tiempo para esta pregunta. Si lo discutimos como una cuestión de “generaciones múltiples”, entonces afirmaría que sí, eventualmente habrá demasiados ingenieros de software. El papel de la ingeniería de software es digitalizar todo, reemplazando a los humanos tanto como sea posible, ya que los humanos son caros, frágiles y propensos a errores. Por lo tanto, mi opinión es que el objetivo de la informática y la ingeniería de software es, eventualmente, obsoleto el papel de los humanos en su propio campo (léase: IA). Pero ese es el tono filosófico.

Tu pregunta suena como una pregunta de una generación. Es decir, dentro del período de tiempo cuando estos niños crezcan, habrá demasiados de ellos que hayan optado por estudiar CS o ingeniería de software para presionar a la baja los salarios y / o quedaron desempleados y desempleados.

Hay varias buenas respuestas en cuanto a la proporción de estudiantes que se gradúan y los niveles de habilidad producidos. También habrá limitaciones geográficas; Para dar un ejemplo extremo, si 100,000 programadores vinieran a Luxemburgo, el país (población total de poco menos de 600,000) no podría sostenerlos y necesitarían otros trabajos. Del mismo modo, es posible que tenga altibajos regionales donde el mercado existente no puede absorber la afluencia, y es posible que necesiten tomar trabajos intermedios.

Sin embargo, me centraré en el campo de la informática en sí, y seguiré desde allí. A pesar de ser un campo de estudio, ya pesar de que hay muchas, muchas mentes inteligentes que ponen su esfuerzo en ello, gran parte del trabajo es exploratorio; es decir, intentamos, fallamos, aprendemos y vamos desde allí. Esto da lugar al mantra del desarrollo moderno del fracaso rápido : sabemos que es probable que fallemos, así que hagamos que el fracaso sea lo menos doloroso posible para que no perdamos el banco.

Un corolario de esto es el Teorema del mono infinito [1]. En informática, lo que básicamente se reduce a eso es que, suponiendo que tengamos una persona competente y experta, esperaría que eventualmente hagan uno (o ambos) de 1) encontrar un trabajo remunerado; o, 2) iniciar proyectos propios (OSS, inicio, …) para ocupar su tiempo o interés mientras trabaja en un trabajo no interesante.

En otras palabras, si y hasta el momento en que inventemos con éxito la IA lo suficientemente buena como para mejorar sobre sí misma, creo que el campo podrá absorber a mucha más gente (suponiendo que sigamos manteniendo a una minoría de la población total para que la sociedad pueda apoyar estos trabajos). Creo que esto como CS es el tipo de campo que puede crear trabajo por sí mismo; Las startups, los proyectos de código abierto y los pasatiempos han dado lugar a grandes proyectos o incluso a empresas que vemos y aspiramos en la actualidad. Y más personas en el campo deberían conducir a más de ellos.

¿Conduciría potencialmente a un aumento de la competencia ? Sí, los recursos siempre son limitados. Cualquier gráfico de oferta / demanda le mostrará que un aumento absoluto en el lado de la oferta conducirá a una reducción relativa en el precio. ¿Está aumentando la demanda de ingenieros de software? Sí eso también. ¿Habrá personas que comiencen la educación CS ahora que terminarán desempleadas o realizarán un trabajo que luego será reemplazado por máquinas? Ciertamente.

Pero hay más cosas que hacer con un título de CS que solo CS. Podrías descubrir aplicaciones para campos relacionados; puede actuar como consultor o comprador de bienes. Hay muchos bloggers que se benefician, o podría revisar productos en los que el conocimiento adquirido conduce a mejores revisiones. La respuesta final sobre si alguien con un título de CS está desempleado o no no será si hay un exceso de graduados de CS; dependerá de si esos graduados de CS han sido prometidos o si esperan una carrera cómoda con un gran pago garantizado. Es probable que eso no suceda para la mayoría de ellos.

Notas al pie

[1] Teorema del mono infinito – Wikipedia

En primer lugar, una respuesta autorizada a una pregunta como esta es casi siempre imposible. Podríamos hablar sobre tendencias en la industria, podríamos hablar sobre proyecciones de crecimiento futuro, etc. Sin embargo, predecir sin fallas el futuro sigue siendo una habilidad difícil de alcanzar (que en realidad sería la mejor habilidad para tener). Aún así, podríamos construir una suposición educada.

1 – ¿Habrá demasiados médicos? ¿Habrá demasiados abogados (¿ya los hay?) ¿Habrá demasiados profesores de literatura estadounidense? Estas son las mismas preguntas, en realidad. La diferencia es que las barreras de entrada se perciben como más altas en estas profesiones. No hay formas indirectas de convertirse en un médico o abogado o adquirir un doctorado. Por lo tanto, parece que el número de escuelas y las instituciones que otorgan títulos constituyen una verdadera barrera para el hacinamiento. Compare esto con la ingeniería de software o los campos relacionados con TI en general. La gente ahora piensa que cualquier adolescente con un poco de tenacidad puede unirse a un campo de entrenamiento de codificación y convertirse en ingenieros de software instantáneos. La barrera de entrada percibida es mucho menor en el mundo digital. Pero esto es principalmente un fantasma. Déjame intentar explicar por qué.

2 – Imagine que los hospitales podrían emplear médicos autodidactas. Imagine que hay campamentos de medicina que enseñan “Cómo diagnosticar en 6 semanas”. ¿Crees que no estaríamos hablando de ” habrá demasiados médicos? ¿Esto realmente cambiaría la industria o simplemente obligaría a los hospitales y clínicas a emplear un procedimiento de investigación más riguroso? Al final, el mercado separaría a los buenos médicos de los malos médicos. Porque al final un médico que sabe lo suficiente sobre biología, anatomía y epidemiología funcionará mucho mejor que un médico del “campo de entrenamiento” cuya habilidad principal es navegar por WebMD y memorizar medicamentos que coinciden con los diagnósticos en un sistema automatizado.

3 – La distinción que estoy tratando de ilustrar aquí es que la ingeniería de software es más que codificación, incluso programación. La habilidad de codificación es una herramienta, un facilitador utilizado por el ingeniero. La habilidad crítica necesaria para convertirse en un ingeniero de software exitoso es el pensamiento analítico. Sin el pensamiento analítico no se pueden traducir problemas del mundo real en problemas computacionales. Y esta traducción es la parte clave para convertirse en un ingeniero de software superior. No vivimos en el mundo aislado del silicio. Todo lo que hacemos es esencialmente traducir un problema análogo y de carne y hueso (qué página mostrarle a un cliente a continuación, qué respuestas mostrar a los usuarios de Quora, etc.) a uno digital y luego resolverlo. El conocimiento de los lenguajes de programación y la codificación son solo herramientas que utilizamos en este proceso.

4 – La mecánica de codificación no es Todo eso es difícil. De hecho, es mucho más fácil que aprender un nuevo idioma (muchas menos excepciones y matices. Intente aprender a hablar francés, árabe o coreano en un mes). Esta es la parte más fácil de la ingeniería de software y cualquiera que pueda terminar la escuela secundaria puede aprender eso. Las partes más difíciles, el conocimiento del dominio (¿tiene un buen manejo de las necesidades específicas o particulares del dominio comercial en el que está trabajando?), El pensamiento algorítmico (esto no es el equivalente a memorizar los algoritmos más utilizados), y la mayoría Es importante que el pensamiento analítico sea mucho más difícil de enseñar. El conocimiento del dominio viene con experiencia, pero se trata principalmente de mostrar un interés genuino en el campo. Los fundamentos del pensamiento algorítmico y el razonamiento analítico se pueden aprender de los expertos, pero en última instancia está determinado por su capacidad intelectual. Puede entrenarlo, agudizarlo, y no importa cuán duro trabaje, puede que no se convierta en la mejor clase en estas habilidades. E incluso los mejores con el mayor potencial intelectual necesitan practicar y entrenar muy duro para utilizar estas habilidades de una manera magistral. Por lo tanto, los solucionadores de problemas reales seguirán siendo una mercancía escasa a pesar de una gran cantidad de clases de codificación, campos de entrenamiento de codificación, academias en línea, etc.

Si y no. Creo que es natural que el suministro disminuya y fluya. A finales de los 90, muchas personas se dedicaron al trabajo de desarrollo debido al auge. Luego vino el busto y los trabajos se secaron. En particular, los padres tuvieron la impresión de que los títulos en informática eran un callejón sin salida y que todos los trabajos se estaban trasladando al extranjero (perspectiva estadounidense aquí). La universidad en la que estaba tuvo problemas para reclutar estudiantes para satisfacer la demanda que vimos de la industria. Entonces un año que cambió. El personal encargado del reclutamiento de repente estaba alcanzando sus objetivos y más. La percepción cambió literalmente de un año a otro.

Otro ciclo de exceso de oferta me parece inevitable e inevitablemente temporal. La industria está tan diversificada que dudo que sea tan dramática como a finales de los 90, pero eso podría ser mi optimista interno.

Pero eso es solo una parte de la historia. Cada vez más, un conocimiento básico de programación y las habilidades de pensamiento computacional asociadas es simplemente una alfabetización requerida para trabajos calificados. No es necesario ser programador, pero haber tenido una clase o dos y poder pensar mediante programación será un gran activo. Recientemente he trabajado con filósofos y con sociólogos en proyectos separados en los que un poco de experiencia básica en codificación contribuyó en gran medida a ayudarlos a alcanzar sus objetivos.

Por lo tanto, ampliar la base de personas que están expuestas y familiarizadas con la programación y el desarrollo de software no significa que debamos convertir a todos en programadores. Significa proporcionar conocimientos básicos que puedan aplicar en muchos dominios diferentes (trabajando en conjunto con desarrolladores de software profesionales).

Los ingenieros no son fungibles.

Ya hay una gran cantidad de ingenieros junior que deambulan por la búsqueda de trabajo, tal vez incluso “demasiados”. Sin embargo, las personas más experimentadas y de mayor antigüedad tienen una oferta extraordinariamente escasa.

Entonces, no importa, realmente, cuántas personas intentan subirse a este carro. Estamos viendo la escasez extrema de ingenieros calificados durante muchos años, al menos aquí en el área de la bahía.

Dicho de otra manera, veo que muchos talentos compiten por un número menor de puestos en la parte inferior, y muchos puestos compiten por una pequeña cantidad de talento en la parte superior.

Hay mucho más en esto, por ejemplo, el hecho de que las empresas Top5 están persiguiendo a muchas de las mejores personas, dejando que el resto de la industria luche por las personas más emprendedoras. Sin embargo, incluso en ese contexto, la batalla es para personas mayores +. Dicho eso, ¡para los jóvenes verdaderamente excepcionales siempre hay espacio!

¿Habrá demasiados ingenieros de software?

Muchas escuelas en todo el mundo están comenzando a implementar clases de programación, los niños estarán expuestos a la codificación antes y eso podría resultar en una gran cantidad de personas que quieran convertirse en ingenieros de software … ¿cómo cree que afectará el mercado?

Convertirse en un desarrollador realmente bueno requiere pasión y disciplina para el aprendizaje continuo. En mi experiencia, a muchos les falta al menos el segundo. Como resultado, dudo que al menos el mercado para desarrolladores realmente calificados se vea abrumado en el futuro cercano. Creo que mi trabajo es muy seguro al menos durante los próximos 10 años (y probablemente aún después).

No, los cambios que ha notado fueron instigados para ayudar a llenar un vacío de habilidades que realmente está afectando a la industria en este momento.
Solo en Escocia hay un estimado de 11’000 vacantes en el sector digital y estamos viendo miles más agregados cada año http://www.scotlandis.com/news/2… . Existe una necesidad real de entusiasmar a muchas más personas sobre las posibilidades de la tecnología y la programación para satisfacer nuestras necesidades de contratación actuales y futuras.

Tal vez. Las profesiones cabalgan y caen, y ha sido así durante el tiempo que los humanos han vivido.

Lo bueno es que tenemos fuerzas del mercado. Si hay demasiados ingenieros de software, el salario se reduciría y la gente dejaría la profesión. Aquellos que no pueden mudarse a otra profesión simplemente saldrán de la fuerza laboral.

Por cierto, en un artículo reciente (ver https://openreview.net/pdf?id=By …), algunos investigadores de Cambridge y Microsoft desarrollaron una IA que puede escribir programas. Obviamente, llevará mucho tiempo hasta que la IA sea lo suficientemente sofisticada. Pero probablemente en 10 años, el desarrollo de aplicaciones simples puede automatizarse.

Demasiados es bastante relativo. Si se trata de términos sobre si tendremos demasiados programadores en relación con los problemas que se pueden resolver con los programas, entonces no es probable a corto plazo. Hay un conjunto cada vez mayor de problemas de programación.

Pero … sobre una base por mercado, hay un punto de inflexión cuando hay suficientes programadores para reducir la tasa de mercado para los desarrolladores. Cuando se cruza este punto de inflexión, puede ser una forma de decir que hay demasiados desarrolladores.

Muy pocas personas parecen tener la capacidad de convertirse en buenos programadores.

Exponer a más niños descubrirá más talento, pero no IMO tendrá un impacto dramático en la cantidad de ingenieros de software que pueden crear valor.

Veo que los trabajos del programa lite requieren poca competencia en la codificación, como html, javascript, php, SQL o un campo de arranque similar, que se amontonan.

Los ingenieros de software de calidad con las habilidades, la capacidad y la actitud adecuadas en todos los niveles siguen siendo escasos. Si usted es uno y está buscando comunicarse con nosotros en http://www.guardxinc.com

La pregunta parece que ¿habrá demasiados fotógrafos cuando la cámara se vuelva barata? Sí, por supuesto, habrá muchos fotógrafos o programadores. Pero el único que tiene pasión y habilidades se destaca de la multitud.

Eso ya sucedió a principios de la década de 2000 después de la caída del punto com. La forma en que afectó a algunos ingenieros que sabía en ese momento era que no podían conseguir ningún trabajo. Algunos de ellos abandonaron el mundo laboral del software y tomaron diferentes carreras. Uno se convirtió en enfermera y otro enseñó en la escuela secundaria. Los departamentos de CS en algunas escuelas vieron una disminución en la asistencia ya que pocos querían arriesgarse en algo para lo que no había trabajo después de la graduación.

Fue muy diferente de lo que tenemos hoy.

No tengo la fuente a mano, pero he leído un artículo que teoriza que solo una pequeña fracción de las personas tiene capacidad mental para ser programadores. Es decir, no importa cuántos cuerpos arrojes a la industria, solo un número determinado podrá encontrar su lugar en ella. Y no se trata de ser más inteligente que nadie, se trata más de poder razonar de cierta manera y disfrutarlo también.

Soy un ingeniero de software. Solo únase a un proyecto de software completo y termine al menos un módulo independiente.

Tal vez puedas decir que soy ingeniero de software, desarrollador o programador.

Aunque puede programar una calculadora mediante un libro de programación.

More Interesting

¿Dónde puedo encontrar un mentor que me ayude a hacer la transición a un rol de diseñador de UX desde el desarrollo web, ya que no tengo educación / experiencia con el diseño de UX?

¿Qué debo hacer como estudiante de informática?

¿Qué curso elegir después de 12 para convertirse en un científico de datos?

¿Deloitte Hyderabad ofrece un alojamiento de 15 días para contrataciones laterales?

Cómo elegir en qué campo quiero trabajar

¿Qué debe saber un recién graduado sobre la cultura laboral en las empresas?

Quiero renunciar a mi trabajo. ¿Cuáles son algunos ejemplos de cartas de renuncia excelentes y respetuosas?

Soy un aspirante a escritor. Quiero ir a un lugar apartado en India y comenzar a escribir, pero necesitaría un trabajo para sobrevivir. ¿Cuales son las opciones?

Tengo una oferta de Apple en los Estados Unidos, pero tengo que volver a Europa. ¿Cómo puedo manejar esto sin problemas sin ganar una mala reputación?

¿Trabajar en una gran empresa como BMW me hará ganar más dinero o debería trabajar en una empresa más pequeña donde la competencia es más débil?

¿Cuál es el nivel de matemática necesario para conseguir un trabajo / trabajo en Goldman Sachs?

¿Es una buena idea hacer un ACCA ahora y buscar un CA más tarde después de terminar un CPT para obtener un trabajo más rápido?

¿Cómo funciona el comercio electrónico?

He conseguido un trabajo en L&T infotech, ahora hay un campus abierto de TCS en unos días. ¿Realmente vale la pena intentarlo con TCS? ¿O debería quedarme con L&T?

¿Es una buena opción elegir una carrera en diseño web o desarrollo web?