„Wo sind die jungen Punks, die uns vom Erdboden tilgen werden?“

Die im Titel in Grebenshchikovs Formulierung enthaltene existenzielle Frage stellte ich mir nach einer weiteren Diskussionsrunde in einer der Communities darüber, ob ein beginnender Web-Backend-Entwickler SQL-Kenntnisse benötigt oder ob ORM sowieso alles kann. Ich beschloss, die Antwort etwas umfassender als nur zu ORM und SQL zu suchen und im Grunde zu systematisieren, wer die Leute sind, die jetzt zu Vorstellungsgesprächen für Entwicklungspositionen auf der unteren und mittleren Ebene gehen, welche Geschichte sie haben und in welcher Welt sie leben lebe in. Im Allgemeinen hatte ich eine Meinung, die jedoch auf persönlichen Einstellungserfahrungen beruhte und eindeutig auf den lokalen Markt abgestimmt war. Im Allgemeinen wurde es interessant. Hier ist, was wir gefunden haben.

Weltweite Entwicklerbevölkerung

Um der Frage irgendwie näherzukommen, beschloss ich, zunächst nach Daten darüber zu suchen, wie viele Entwickler es heute auf der Welt gibt und wie sich diese Bevölkerung im Laufe der Zeit verändert.
Schätzungen verschiedener Quellen gehen von einer Zahl zwischen 12 und 30 Millionen Menschen aus. Beschlossen, hier anzuhalten Daten von SlashData, weil ihre Methodik recht ausgewogen und für meine Bedürfnisse geeignet schien. Bei ihrer Bewertung berücksichtigten sie die Anzahl der Konten und Repositories auf Github, die Anzahl der Konten auf StackOverflow, npm-Konten und Daten aus offiziellen Quellen über die Beschäftigung in den USA und Europa. Sie haben die resultierenden Zahlen auch anhand ihrer eigenen 16 Studien angepasst, an denen jeweils etwa 20 Personen beteiligt waren.

Laut SlashData gab es im vierten Quartal 2018 weltweit etwa 18.9 Millionen Entwickler, davon waren 12.9 Millionen professionelle Entwickler, das heißt, sie verdienen ihren Lebensunterhalt mit der Programmierung. Diejenigen, die derzeit keine professionellen Entwickler sind, sind Personen, für die das Programmieren ein Hobby ist, sowie diejenigen, die derzeit einen Beruf erlernen (verschiedene Studenten und Autodidakten). Nun, hier ist ein Hinweis auf die Größe der Gruppe, die mich interessiert – 6 Millionen Menschen. Ehrlich gesagt ist das mehr, als ich erwartet hatte.

Die zweite Überraschung für mich war die Wachstumsrate der Zahl der Programmierer: Vom zweiten Quartal 2017 bis zum vierten Quartal 2018 stieg sie von 14.7 auf die genannten 18.9 Millionen, also um 21 % im Jahr 2018! Wenn ich gebeten würde, die Wachstumsrate der Zahl der Programmierer zu schätzen, würde ich sagen, dass sie etwa 5 % pro Jahr beträgt, mit einem leichten jährlichen Anstieg der Rate. Und hier sind es sogar 20 %.

Darüber hinaus schätzt SlashData, dass die Bevölkerung bis 2030 45 Millionen erreichen wird. Man kann sich leicht vorstellen, dass dies ein jährliches Wachstum von etwas mehr als 8 % und nicht von 20 % impliziert, aber es handelt sich dabei um eine Anpassung zur Berücksichtigung der Internetdurchdringung (derzeit etwa 57 % weltweit). laut Statista) und mehrere andere Faktoren, wie etwa die Anzahl der Entwickler pro Kopf. Geografisch gesehen wächst die Zahl der Entwickler am stärksten in Indien und China; Indien wird voraussichtlich bis 2023 die Vereinigten Staaten bei der Zahl der Entwickler überholen (das ist bereits der Fall). C#-Eckdaten).

Im Allgemeinen wird es viele Programmierer geben, egal wie man es betrachtet, denn die Nachfrage wächst. Übrigens zur Nachfrage.

Was ist gefragt?

Um die Nachfrage abzuschätzen, habe ich HackerRank-Daten verwendet 2018 и 2019 Jahr.

Bei den Programmiersprachen besteht in fast allen Branchen, mit Ausnahme der Computer-Hardware, die größte Nachfrage nach JavaScript, Python und Java. Im letzteren Fall besteht die größte Nachfrage nach C/C++, was verständlich ist; bei Hardwareprojekten bestehen nach wie vor Anforderungen an die Ressourcenintensität und Leistung der entsprechenden Software.

„Wo sind die jungen Punks, die uns vom Erdboden tilgen werden?“

Was die Frameworks angeht, sind AngularJS, Node.js und React am gefragtesten, und sie weisen die größte Lücke zwischen Angebot und Nachfrage auf, was durch die Geschwindigkeit erklärt zu werden scheint, mit der sich das JavaScript-Ökosystem verändert, beispielsweise bei ExpressJS Das Angebot übersteigt bereits die Nachfrage.

„Wo sind die jungen Punks, die uns vom Erdboden tilgen werden?“

Was die Kompetenzen betrifft, erwarten Arbeitgeber von den Kandidaten vor allem Problemlösungsfähigkeiten. Etwa 95 % der Arbeitgeber bezeichnen diese Fähigkeiten als wichtig. Programmiersprachenkenntnisse stehen mit 56 % an zweiter Stelle. Eine Grenze zu grundlegenden Kenntnissen über Algorithmen, Datenstrukturen und sonstige Informatik gibt es übrigens überhaupt nicht, entweder standen diese nicht im Fragebogen, oder akademische Kenntnisse sind in großem Umfang nicht mehr erforderlich.

Datenbankdesign wird von 23.2 % der Unternehmen mit weniger als 100 Mitarbeitern und 18.8 % der Unternehmen mit mehr als 1000 Mitarbeitern benötigt. Ja, es sieht so aus, als ob es um ORM und SQL geht! Die logische Erklärung ist meiner Meinung nach, dass es in großen Unternehmen eine eigene Rolle des DBA gibt, der für diesen Aspekt verantwortlich ist, und es daher möglich ist, die Anforderungen an Entwickler zu mildern und schneller einzustellen. Aber beim System Design ist es umgekehrt: 37.0 % bei den Kleinen, 44.1 % bei den Großen. Es scheint, dass große Unternehmen eigene Architekten haben sollten, aber vielleicht sind sie einfach nicht in der Lage, die Anzahl der generierten Systeme abzudecken. Oder es werden die gleichen grundlegenden Algorithmen und Datenstrukturen in das Systemdesign eingefügt, dann wird es etwas klarer.

Kleine Unternehmen benötigen mehr Framework-Kenntnisse und weniger das oben erwähnte Systemdesign, woraus wir die Schlussfolgerung des Kapitäns ziehen können, dass es für Startups wichtig ist, so schnell wie möglich ein einigermaßen funktionierendes Produkt auf den Markt zu bringen, und morgen wird morgen sein.

„Wo sind die jungen Punks, die uns vom Erdboden tilgen werden?“

Was lernen Studierende?

Hier habe ich mich auf Daten von anderen verlassen HackerRank-Forschung.
Es ist wichtig zu bedenken, dass trotz der Tatsache, dass Programmieren in der einen oder anderen Form an Universitäten gelehrt wird (ich meine Informatik-Hauptfächer), mehr als die Hälfte der Befragten angaben, dass sie sich auch selbst weiterbilden.

Moderne Studenten lernen lieber auf YouTube, während ältere Entwickler auf Tutorials und Bücher setzen. Beide nutzen StackOverflow aktiv. Ich führe dies darauf zurück, dass Video für die Generation Z ein vertrauter Medienkanal ist, während sich Vertreter der Generation Y noch in einer Zeit ohne Blogger befinden.

Sie lehren, was bei Arbeitgebern gefragt ist: JavaScript, Java, Python. Sie geben an, dass sie C/C++ beherrschen, was aber wahrscheinlich daran liegt, dass diese Sprachen für den Unterricht an Universitäten verwendet werden. Sie unterrichten JS-Frameworks, aber die Nachfrage ist deutlich höher als das Angebot, sodass sie offenbar aktiv lernen, nachdem sie ihren ersten Job gefunden haben.

„Wo sind die jungen Punks, die uns vom Erdboden tilgen werden?“

Generell wird erwartungsgemäß vermittelt, was gefragt ist.

Studierende erwarten von ihrem ersten Job berufliche Weiterentwicklung, Work-Life-Balance steht an zweiter Stelle (in manchen Ländern an erster Stelle) und interessante Aufgaben stehen an dritter Stelle.

Dynamik der Entwicklerpopulation nach Programmiersprachen und Softwaretypen

„Wo sind die jungen Punks, die uns vom Erdboden tilgen werden?“

An erster Stelle stehen Webanwendungen mit geschätzten 16.9 Millionen Entwicklern. Das ist wieder SlashData. Als nächstes folgen Backend-Dienste (13.6 Millionen), mobile Anwendungen (13.1 Millionen) und Desktop (12.3 Millionen). Die Bereiche AR/VR und IoT erfreuen sich zunehmender Beliebtheit, KI/ML/Data Science ist in den letzten zwei Jahren erheblich gewachsen.

Javascript wächst am schnellsten; seine Community ist bereits die größte und wuchs allein im Jahr 2018 um 2.5 Millionen. Sie versuchen sogar, in den Bereichen IoT und ML mitzuschreiben.
Python wuchs im Jahr 2018 aufgrund der wachsenden Beliebtheit von ML, wo es traditionell stark ist, sowie aufgrund der einfachen Erlernbarkeit und Bequemlichkeit der Sprache um 2.2 Millionen.

Java, C/C++ und C# wachsen langsamer als die gesamte Entwicklerpopulation. Heutzutage sind sie nur noch selten die Programmiersprache, mit der Menschen anfangen. Die Nachfrage nach Entwicklern hält sich hier mehr oder weniger im Gleichgewicht mit dem Angebot. Ich denke, Java wäre ohne Android noch langsamer gewachsen.

PHP ist die zweitbeliebteste Programmiersprache für Webanwendungen und verzeichnet ebenfalls ein deutliches Wachstum (um 32 % im Jahr 2018). Die Community wird auf 5.9 Millionen Entwickler geschätzt. Trotz des polarisierenden Rufs von PHP ist es recht einfach zu erlernen und weit verbreitet.

Wie lernen die jungen Kandidaten von heute im Vergleich zu früheren Generationen?

Wieder HackerRank-Daten. Wer jetzt zwischen 38 und 53 ist, nennt Spiele als seine ersten Projekte.

Übrigens bestätige ich, dass mein erstes mehr oder weniger funktionierendes Projekt „Tic-Tac-Toe“ mit bis zu fünf Spielern hintereinander und einem unbegrenzten Feld war, das zweite war ein Spiel mit 15 Spielern. Ich habe das alles weiter geschrieben BC 010-01, es gab Vilnius einfach, auch bekannt als BASIC-86 und fokal. Äh.

Moderne Programmieranfänger (bis 21 Jahre alt) schreiben als erste Projekte Taschenrechner und Websites.

Unter den Vertretern der Generation Es ist mehr oder weniger klar, warum: Es gab nur wenige Informationsquellen, und um Programmierer zu werden, musste man es unbedingt wollen, und diejenigen, die es wirklich wollten, begannen früh mit dem Programmieren. Diejenigen, die es nicht so sehr wollten, haben jetzt wahrscheinlich einen anderen Beruf, und in der Soziologie ist das Bild genau so.

„Wo sind die jungen Punks, die uns vom Erdboden tilgen werden?“

Heutzutage beginnen junge Kandidaten nur noch in 20 % der Fälle vor ihrem 16. Lebensjahr mit dem Programmieren, die Mehrheit irgendwo zwischen 16 und 20. Aber es ist für sie auch viel einfacher zu lernen; jetzt ist es viel zugänglicher.

Befund

Ich habe immer noch keine konkrete Antwort auf die Frage gefunden, ob ein beginnender Web-Backend-Entwickler heute SQL benötigt, aber ich habe meine Vorstellung von der modernen Programmiererpopulation korrigiert.

Die nächste Generation von Entwicklern sind ganz normale Menschen, in mancher Hinsicht ähneln sie den vorherigen; die Wohnungsproblematik hat sie nur verdorben. Sie befriedigen die Nachfrage, die von den Arbeitgebern geschaffen wird. Die Schwelle für den Berufseinstieg ist durch komfortablere Tools und Frameworks, mit denen Sie schnell Ergebnisse erzielen können, niedriger geworden. Mittlerweile werden mehr Menschen Programmierer; die digitale Generation (Generation Z) lebt seit ihrer Geburt in der Technologie; für sie ist es ein alltäglicher Beruf, nicht schlechter als andere.

Diejenigen, die wissen, dass die L1-Cache-Latenz etwa 4 Zyklen beträgt und dass es besser ist, Cache-Zeilen nicht unnötig zum Absturz zu bringen, werden im Verhältnis zur Gesamtpopulation immer kleiner. Sie sollten sich jedoch keine Sorgen um einen Job machen, denn schließlich muss jemand einfache Dinge dort schreiben, wo sie noch gebraucht werden. Ebenso wenig sollten sich diejenigen Sorgen machen, die über fundierte Grundlagenkenntnisse im Systemdesign verfügen und diese sich in blutigen Praxiskämpfen angeeignet haben und nicht nur einem Frachtkult folgen. Weil es mehr Leute in Teams geben wird, die „nur Code schreiben“ und „einfach“ Frameworks verwenden können, und um „den unerträglichen Schmerz jahrelanger zielloser Lebensarbeit zu vermeiden“ (c), müssen sie mit genau solchen Leuten ausbalanciert werden .

Soft Skills bewegen sich allmählich von der Kategorie „erwünscht“ zu „obligatorisch“ (ich habe keine objektiven Daten, die dies bestätigen, sondern nur praktische Beobachtungen). Die Zahl der Programmierer wächst, und sie alle müssen angeleitet werden, Ergebnisse zu erzielen, entweder durch direkte oder indirekte Steuerung, und genau dafür sind Soft Skills erforderlich.

„Enter IT“ scheint mir eine lokale regionale Geschichte zu sein, typisch für Orte, an denen sich das Einkommen eines Programmierers deutlich vom Einkommen eines vergleichbaren „Nicht-IT“-Spezialisten unterscheidet. In Minsk, wo ich lebe, ist das in der Regel eine Massenbewegung, jeden Tag sehe ich Anzeigen für neue Kurse zum Einstieg in die begehrte IT und Reinigungsfirmen zielen auf Programmierer ab mit der Meldung „Verstehen Sie den Code auf diesem Bild?“ Das bedeutet, dass Sie es sich leisten können, Ihre Wohnung nicht zu reinigen, wir erledigen alles für Sie.“ Das Gleiche passiert offenbar in einigen Teilen Indiens. Ich habe auch keine Daten, die dies belegen.

Im Allgemeinen bedroht meiner Meinung nach nichts die Programmiererpopulation. Es hat keinen Sinn, darüber zu plappern, dass man tagsüber keine echten Programmierer findet und dass Kandidaten sehr oft „nichts wissen“. Sie sind genauso schlau und fähig, vielleicht sogar schlauer und fähiger als „echte Programmierer“; sie eignen sich einfach das Wissen an, das ein schnell wachsender Markt von ihnen verlangt, und schieben auf später, was sie noch nicht brauchten und keinen richtigen Nutzen bringen werden Jetzt. Sie werden lernen, wenn sie es müssen, weil sie immer noch lernen wollen. Vermutlich wird nicht jeder dazu in der Lage sein, aber auch nicht jeder wird es brauchen; in absehbarer Zeit wird der Markt problemlos Leute akzeptieren, die mit irgendeinem Framework schnell ein anderes Anwendungskonzept zusammenstellen können.

An der Umfrage können nur registrierte Benutzer teilnehmen. Einloggenbitte.

Erfordern Web-Backender-Interviews SQL-Kenntnisse?

  • Ja, ich verlange es, weil ich es für die Arbeit brauche

  • Ja, das tue ich, auch wenn es bei der Arbeit selten benötigt wird.

  • Nein, ich benötige es nicht, wir haben NoSQL

  • Nein, ich benötige es nicht, ORM erledigt alles

320 Benutzer haben abgestimmt. 230 Benutzer enthielten sich der Stimme.

Source: habr.com

Kommentar hinzufügen