“¿Dónde están los jóvenes punks que nos borrarán de la faz de la tierra?”

Me hice la pregunta existencial contenida en el título de la formulación de Grebenshchikov después de otra ronda de discusión en una de las comunidades sobre si un desarrollador backend web principiante necesita conocimientos de SQL o si ORM lo hará todo de todos modos. Decidí buscar la respuesta de manera un poco más amplia que solo ORM y SQL, y básicamente tratar de sistematizar quiénes son las personas que ahora van a entrevistas para puestos de desarrollo de nivel junior y medio, cuál es su historia y en qué mundo se encuentran. vivir en. En general tenía una opinión, pero estaba formada por experiencia de contratación personal y claramente ajustada al mercado local. En general se volvió interesante. Esto es lo que encontramos.

Población global de desarrolladores

Para abordar de alguna manera la pregunta, decidí comenzar buscando datos sobre cuántos desarrolladores hay en el mundo hoy y cómo esta población está cambiando con el tiempo.
Las estimaciones de diversas fuentes sitúan las cifras entre 12 y 30 millones de personas. Decidió parar en datos de SlashData, porque su metodología me pareció bastante equilibrada y adecuada a mis necesidades. En su evaluación, tuvieron en cuenta la cantidad de cuentas y repositorios en Github, la cantidad de cuentas en StackOverflow, cuentas npm y datos de fuentes oficiales sobre empleo en EE. UU. y Europa. También ajustaron las cifras resultantes utilizando sus propios 16 estudios, que incluyeron aproximadamente 20 personas para cada encuesta.

Según SlashData, en el cuarto trimestre de 2018 había aproximadamente 18.9 millones de desarrolladores en el mundo, 12.9 millones de los cuales eran desarrolladores profesionales, es decir, se ganan la vida programando. Quienes no son actualmente desarrolladores profesionales son personas para quienes programar es un hobby, más aquellos que actualmente están estudiando alguna profesión (estudiantes varios y autodidactas). Bueno, aquí hay una pista del tamaño del grupo que me interesa: 6 millones de personas. Para ser honesto, esto es más de lo que esperaba.

La segunda sorpresa para mí fue la tasa de crecimiento del número de programadores: del segundo trimestre de 2017 al cuarto trimestre de 2018, aumentó de 14.7 a los 18.9 millones mencionados, ¡o sea, aumentó un 21% en 2018! Si me pidieran que estimara la tasa de crecimiento del número de programadores, diría que es alrededor del 5% anual con un ligero aumento en la tasa anualmente. Y aquí resulta que llega al 20%.

Además, SlashData estima que la población alcanzará los 2030 millones en 45. Es fácil darse cuenta de que esto implica un crecimiento de poco más del 8% anual, no del 20%, pero se refieren a un ajuste para tener en cuenta la penetración de Internet (actualmente alrededor del 57% en todo el mundo). según estadista) y varios otros factores, como el número de desarrolladores per cápita. Geográficamente, el número de desarrolladores está creciendo con mayor fuerza en India y China; se espera que India supere a Estados Unidos en número de desarrolladores para 2023 (esto ya es Datos de esquina de C#).

En general, habrá muchos programadores, se mire como se mire, porque la demanda está creciendo. Por cierto, sobre la demanda.

¿Qué hay en demanda?

Para estimar la demanda, utilicé datos de HackerRank para 2018 и 2019 año.

En términos de lenguajes de programación, la mayor demanda es JavaScript, Python y Java en casi todas las industrias, a excepción del hardware informático. En este último, la mayor demanda es C/C++, lo cual es comprensible; los proyectos de hardware todavía tienen requisitos en cuanto a la intensidad de recursos y el rendimiento del software correspondiente.

“¿Dónde están los jóvenes punks que nos borrarán de la faz de la tierra?”

En cuanto a frameworks, AngularJS, Node.js y React son los de mayor demanda, y tienen la mayor brecha entre oferta y demanda, lo que parece explicarse por la velocidad con la que está cambiando el ecosistema JavaScript, porque por ejemplo, para ExpressJS , la oferta ya supera la demanda.

“¿Dónde están los jóvenes punks que nos borrarán de la faz de la tierra?”

En términos de competencias, los empleadores esperan principalmente de los candidatos habilidades para resolver problemas. Alrededor del 95% de los empleadores mencionan estas habilidades como importantes. El dominio del lenguaje de programación ocupa el segundo lugar con un 56%. Por cierto, no existe ninguna línea con los conocimientos fundamentales de algoritmos, estructuras de datos y otras ciencias de la computación, o no estaban en el cuestionario o ya no se requieren conocimientos académicos a gran escala.

El diseño de bases de datos es necesario para el 23.2% de las empresas de menos de 100 personas y el 18.8% de las empresas de más de 1000 personas. ¡Sí, parece que se trata de ORM y SQL! La explicación lógica, en mi humilde opinión, es que en las grandes empresas existe un rol exclusivo de DBA, que es responsable de este aspecto y, por lo tanto, es posible suavizar los requisitos para los desarrolladores y contratar más rápido. Pero con System Design es al revés: 37.0% en los pequeños, 44.1% en los grandes. Parecería que las grandes deberían tener arquitectos dedicados, pero quizás simplemente no sean capaces de cubrir la cantidad de sistemas que se generan. O se incluyen los mismos algoritmos fundamentales y estructuras de datos en el diseño del sistema, entonces queda un poco más claro.

Las pequeñas empresas necesitan más el Framework Proficiency que el ya mencionado System Design, de lo que podemos sacar la conclusión del capitán de que es importante que las startups lancen un producto que de alguna manera funcione lo más rápido posible, y mañana será mañana.

“¿Dónde están los jóvenes punks que nos borrarán de la faz de la tierra?”

¿Qué aprenden los estudiantes?

Aquí me basé en datos de otro. Investigación de HackerRank.
Es importante considerar que a pesar de que en las universidades (me refiero a las carreras de Informática) se enseña programación de una forma u otra, más de la mitad de los encuestados dijeron que también se autoeducan.

Los estudiantes modernos prefieren aprender de YouTube, mientras que los desarrolladores más antiguos se inclinan por tutoriales y libros. Ambos utilizan activamente StackOverflow. Lo atribuyo al hecho de que el vídeo es un canal de medios familiar para la generación Z, mientras que los representantes de la generación Y todavía se encuentran en una era sin bloggers.

Enseñan lo que demandan los empleadores: JavaScript, Java, Python. Indican que conocen C/C++, pero probablemente esto se deba a que estos lenguajes se utilizan para la enseñanza en las universidades. Enseñan marcos JS, pero la demanda es significativamente mayor que la oferta, por lo que aparentemente están aprendiendo activamente después de encontrar su primer trabajo.

“¿Dónde están los jóvenes punks que nos borrarán de la faz de la tierra?”

En general, como era de esperar, enseñan lo que se demanda.

Los estudiantes esperan un crecimiento profesional desde su primer trabajo, el equilibrio entre vida personal y laboral ocupa el segundo lugar (en algunos países primero) y las tareas interesantes ocupan el tercer lugar.

Dinámica de la población de desarrolladores por lenguajes de programación y tipos de software

“¿Dónde están los jóvenes punks que nos borrarán de la faz de la tierra?”

Las aplicaciones web ocupan el primer lugar con aproximadamente 16.9 millones de desarrolladores. Este es SlashData nuevamente. Le siguen los servicios backend (13.6 millones), las aplicaciones móviles (13.1 millones) y las de escritorio (12.3 millones). Los sectores AR/VR e IoT están ganando popularidad gradualmente, AI/ML/Ciencia de datos ha crecido significativamente en los últimos dos años.

Javascript es el que está creciendo más rápido; su comunidad ya es la más grande, con un crecimiento de 2018 millones solo en 2.5. Incluso están intentando escribir en él en los sectores de IoT y ML.
Python creció en 2018 millones en 2.2 debido a la creciente popularidad del ML, donde tradicionalmente es fuerte, así como a la facilidad de aprendizaje y conveniencia del lenguaje.

Java, C/C++ y C# están creciendo a un ritmo más lento que la población general de desarrolladores. Ahora rara vez son el lenguaje de programación con el que la gente elige empezar. La demanda de desarrolladores aquí está más o menos equilibrada con la oferta. Creo que Java se habría vuelto aún más lento si no fuera por Android.

PHP es el segundo lenguaje de programación de aplicaciones web más popular y también está creciendo significativamente (un 32 % en 2018). Su comunidad se estima en 5.9 millones de desarrolladores. A pesar de la reputación polarizadora de PHP, es bastante fácil de aprender y ampliamente utilizado.

¿Cómo estudian los jóvenes candidatos de hoy en comparación con las generaciones anteriores?

Datos de HackerRank nuevamente. Los que ahora tienen entre 38 y 53 años enumeran los juegos como sus primeros proyectos.

Por cierto, confirmo que mi primer proyecto más o menos funcional fue el “tic-tac-toe” hasta cinco seguidos con campo ilimitado, el segundo fue un juego de 15. Todo esto lo escribí en 010-01 aC, había Vilna básico, también conocido como BASIC-86 y focal. Eh.

Los programadores novatos modernos (hasta 21 años) escriben calculadoras y sitios web como sus primeros proyectos.

Entre los representantes de la generación X, casi la mitad comenzó a escribir código antes de los 16 años, muchos lo hicieron entre los 5 y los 10 años (principalmente los que ahora tienen entre 35 y 45 años). Está más o menos claro por qué: había pocas fuentes de información, y para convertirse en programador había que quererlo mucho, y los que realmente lo querían empezaban a programar temprano. Aquellos que no lo querían tanto probablemente ahora tengan una profesión diferente, por lo que el panorama en sociología es exactamente el mismo.

“¿Dónde están los jóvenes punks que nos borrarán de la faz de la tierra?”

Los jóvenes candidatos de hoy en día sólo el 20% de las veces empiezan a programar antes de los 16 años, la mayoría entre los 16 y los 20 años. Pero también les resulta mucho más fácil aprender, ahora es mucho más accesible.

Hallazgos

Todavía no he encontrado una respuesta concreta a la pregunta de si un desarrollador web backend principiante necesita SQL hoy, pero he corregido mi idea de la población moderna de programadores.

La próxima generación de promotores son gente corriente, en cierto modo se parecen a las anteriores; el problema de la vivienda sólo los echó a perder. Satisfacen la demanda creada por los empleadores. El umbral para ingresar a la profesión se ha reducido debido a herramientas y marcos más convenientes que le permiten lograr resultados rápidamente. Cada vez más personas se convierten en programadores; la generación digital (Generación Z) vive en la tecnología desde su nacimiento; para ellos es una profesión común, no peor que otras.

Aquellos que saben que la latencia de la caché L1 es de ~4 ciclos y que es mejor no bloquear las líneas de la caché innecesariamente, se están volviendo más pequeños como porcentaje del tamaño total de la población. Sin embargo, no deberían preocuparse por conseguir un trabajo; después de todo, alguien tiene que escribir cosas de bajo nivel donde todavía se necesitan. Del mismo modo, aquellos que tienen un profundo conocimiento fundamental en el diseño de sistemas y lo adquirieron en sangrientas batallas prácticas, y no se limitan a seguir un culto a la carga, no deberían preocuparse. Porque habrá más personas en los equipos que puedan “simplemente escribir código” y “simplemente” usar marcos, y para “evitar el dolor insoportable de años vividos sin rumbo” (c) necesitarán ser equilibrados precisamente por esas personas. .

Las habilidades blandas están migrando gradualmente de la categoría de deseable a obligatoria (no tengo datos objetivos para confirmarlo, solo observaciones prácticas). El número de programadores está creciendo y todos necesitan ser dirigidos para lograr resultados, ya sea a través del control directo o indirecto, y para eso exactamente se necesitan las habilidades blandas.

"Entrar en TI" me parece una historia regional local, típica de aquellos lugares donde los ingresos de un programador difieren significativamente de los ingresos de un especialista comparable "no en TI". En Minsk, donde vivo, este es generalmente un movimiento de masas, todos los días veo anuncios de nuevos cursos sobre cómo ingresar a la codiciada TI, y las empresas de limpieza se dirigen a los programadores con el mensaje “¿Entiendes el código de esta imagen? Esto significa que puedes permitirte el lujo de no limpiar tu apartamento, nosotros haremos todo por ti”. Al parecer, lo mismo está sucediendo en alguna India. Tampoco tengo datos que lo demuestren.

En general, en mi opinión, nada amenaza a la población de programadores. No tiene sentido balbucear sobre el hecho de que no se pueden encontrar programadores reales durante el día y que los candidatos muy a menudo "no saben nada". Son igual de inteligentes y capaces, tal vez incluso más inteligentes y capaces que los “programadores reales”; simplemente adquieren el conocimiento que un mercado en rápido crecimiento requiere de ellos y dejan para más adelante lo que aún no han necesitado y no les reportará beneficios en el futuro. ahora. Aprenderán cuando lo necesiten, porque todavía quieren aprender. Probablemente no todo el mundo será capaz de hacer esto, pero tampoco todo el mundo lo necesitará; en un futuro previsible, el mercado aceptará fácilmente a personas que puedan crear rápidamente otro concepto de aplicación utilizando algún marco.

Solo los usuarios registrados pueden participar en la encuesta. Registrarsepor favor

¿Las entrevistas con backender web requieren conocimientos de SQL?

  • Si, lo exijo porque lo necesito para trabajar.

  • Sí, lo hago, aunque rara vez es necesario en el trabajo.

  • No, no lo necesito, tenemos NoSQL

  • No, no lo necesito, ORM hará todo

320 usuarios votaron. 230 usuarios se abstuvieron.

Fuente: habr.com

Añadir un comentario