Nach der nächsten Diskussionsrunde in einer der Communities stellte ich die existenzielle Frage in der Überschrift in Grebenshchikovs Wortlaut, ob der Anfänger-Web-Backend-Entwickler SQL-Kenntnisse benötigte oder ob ORM alles tun würde. Ich habe mich entschlossen, die Antwort etwas weiter zu suchen als nur über ORM und SQL, und im Prinzip zu systematisieren, wer die Leute sind, die jetzt Interviews in Junior- und Middle Development-Positionen führen, was ihre Geschichte ist und in welcher Welt sie leben. Im Allgemeinen hatte ich eine Meinung, die sich jedoch aus persönlichen Einstellungserfahrungen zusammensetzte und eindeutig auf den lokalen Markt abgestimmt war. Im Allgemeinen wurde es neugierig. Folgendes habe ich gefunden.
Globale Entwicklerbevölkerung
Um das Problem irgendwie anzugehen, habe ich mich entschlossen, zunächst nach Daten zu suchen, wie viele Entwickler auf der Welt derzeit im Prinzip sind und wie sich diese Population im Laufe der Zeit verändert.
Schätzungen in verschiedenen Quellen beziehen sich auf Zahlen in einer Gabel von 12 bis 30 Millionen Menschen. Ich beschloss, die
Daten von SlashData nicht mehr zu verwenden , da mir ihre Methodik ziemlich ausgewogen und für meine Bedürfnisse geeignet erschien. Bei der Bewertung berücksichtigten sie die Anzahl der Konten und Repositories bei Github, die Anzahl der Konten bei StackOverflow, npm-Konten und Daten aus offiziellen Quellen zur Beschäftigung in den USA und in Europa. Sie passten die Zahlen auch anhand ihrer eigenen 16 Studien an, die für jede Umfrage ungefähr 20.000 Personen umfassten.
Laut SlashData stellte sich heraus, dass es im vierten Quartal 2018 weltweit ungefähr 18,9 Millionen Entwickler gab, von denen 12,9 Millionen professionell waren, dh von der Programmierung lebten. Diejenigen, die derzeit keine professionellen Entwickler sind, sind Menschen, für die das Programmieren ein Hobby ist, sowie diejenigen, die derzeit den Beruf studieren (verschiedene Studenten und Autodidakten). Das 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 Anzahl der Programmierer: Vom zweiten Quartal 2017 bis zum vierten Quartal 2018 stieg sie von 14,7 auf die genannten 18,9 Millionen oder stieg 2018 um 21%! Wenn ich gebeten würde, die Wachstumsrate der Anzahl der Programmierer zu schätzen, würde ich sagen, dass sie etwa 5% pro Jahr beträgt, wobei die Rate jährlich leicht ansteigt. Und hier sind es bis zu 20%.
Darüber hinaus schätzt SlashData, dass die Bevölkerung bis 2030 45 Millionen erreichen wird. Es ist leicht zu berechnen, dass dies ein Wachstum von etwas mehr als 8% pro Jahr und überhaupt nicht von 20% impliziert. Sie beziehen sich jedoch auf eine Korrektur unter Berücksichtigung der Internetdurchdringung (laut
Statista derzeit etwa 57% weltweit) und mehrerer anderer Faktoren, beispielsweise der Anzahl der Entwickler pro Jahr pro Kopf. Geografisch gesehen wächst die Anzahl der Entwickler in Indien und China am stärksten. Es wird erwartet, dass Indien die USA bei der Anzahl der Entwickler bis 2023 überholt (dies sind bereits
C # Corner-Daten ).
Im Allgemeinen wird es viele Programmierer geben, was auch immer man sagen mag, weil die Nachfrage wächst. Apropos Nachfrage.
Was ist die Nachfrage nach?
Um die Nachfrage abzuschätzen, habe ich HackerRank-Daten für
2018 und
2019 verwendet .
In Programmiersprachen besteht die größte Nachfrage nach JavaScript, Python und Java in fast allen Branchen, mit Ausnahme von Computerhardware. Bei letzterer, der größten nachverständlichen Nachfrage nach C / C ++ in Hardwareprojekten, bestehen nach wie vor Anforderungen an den Ressourcenverbrauch und die Produktivität der entsprechenden Software.

Laut den Frameworks sind AngularJS, Node.js und React am stärksten nachgefragt, wobei die größte Lücke zwischen Angebot und Nachfrage besteht. Dies scheint auf die Geschwindigkeit zurückzuführen zu sein, mit der sich das JavaScript-Ökosystem ändert, da beispielsweise bei ExpressJS das Angebot die Nachfrage bereits übersteigt.

Aufgrund der Kompetenz erwarten die Arbeitgeber von den Kandidaten in erster Linie Fähigkeiten zur Problemlösung. Etwa 95% der Arbeitgeber nennen diese Fähigkeiten als wichtig. Programmiersprachenkenntnisse auf dem zweiten Platz mit 56%. Übrigens gibt es keine Linien mit Grundkenntnissen über Algorithmen, Datenstrukturen und andere Informatik, entweder nicht im Fragebogen, oder akademische Massenkenntnisse sind nicht mehr erforderlich.
Das Datenbankdesign benötigt 23,2% der Unternehmen mit bis zu 100 Mitarbeitern und 18,8% der Unternehmen mit mehr als 1000 Mitarbeitern. Ja, hier geht es um ORM und SQL! Die logische, IMHO, Erklärung ist, dass es in großen Unternehmen eine dedizierte DBA-Rolle gibt, die für diesen Aspekt verantwortlich ist, und daher ist es möglich, die Anforderungen an Entwickler zu mildern und schneller einzustellen. Im Gegensatz zum Systemdesign hingegen: 37,0% bei kleinen, 44,1% bei großen. Es scheint, dass große Architekten unterschieden werden sollten, aber vielleicht sind sie einfach nicht in der Lage, die Anzahl der generierten Systeme abzudecken. Oder gleichzeitig investieren sie in das Systemdesign die sehr grundlegenden Algorithmen und Datenstrukturen, dann wird es etwas klarer.
Kleine Unternehmen benötigen mehr Framework-Kenntnisse und weniger als das oben erwähnte Systemdesign, woraus wir den Schluss ziehen können, dass es für Startups wichtig ist, ein Produkt auf den Markt zu bringen, das so schnell wie möglich funktioniert und morgen morgen sein wird.

Was lernen die Schüler?
Hier habe ich mich auf die Daten einer anderen
HackerRank-Studie gestützt .
Es ist wichtig zu berücksichtigen, dass trotz der Tatsache, dass Programmieren in der einen oder anderen Form an Universitäten unterrichtet wird (ich meine Informatik-Fachgebiete), mehr als die Hälfte der Befragten angab, sich auch selbst auszubilden.
Moderne Studenten bevorzugen es, auf YouTube zu lernen, während ältere Entwickler Tutorials und Bücher bevorzugen. Beide nutzen StackOverflow aktiv. Ich schreibe dies der Tatsache zu, dass Video der übliche Medienkanal für die Generation Z ist, während Vertreter der Generation Y die Ära noch ohne Blogger fanden.
Erfahren Sie, was Arbeitgeber verlangen: JavaScript, Java, Python. Sie geben an, dass sie C / C ++ kennen, aber dies liegt wahrscheinlich daran, dass diese Sprachen für den Unterricht an Universitäten verwendet werden. Sie lernen JS-Frameworks, aber die Nachfrage ist deutlich höher als das Angebot, so dass sie offenbar bereits nach der Suche nach dem ersten Job aktiv unterrichtet werden.

Im Allgemeinen wird erwartet, dass unterrichtet wird, was gefragt ist.
Studenten vom ersten Job erwarten in erster Linie berufliches Wachstum, an zweiter Stelle (in einigen Ländern in der ersten) Work-Life-Balance, in dritter - interessante Aufgaben.
Entwickelt die Populationsdynamik der Entwickler durch Programmiersprachen und Softwaretypen

Webanwendungen stehen mit geschätzten 16,9 Millionen Entwicklern an erster Stelle. Dies sind wieder SlashData-Daten. Als nächstes folgen Backend Services (13,6 Millionen), mobile Anwendungen (13,1 Millionen) und Desktop (12,3 Millionen). AR / VR- und IoT-Sektoren werden immer beliebter, AI / ML / Data Science sind in den letzten zwei Jahren erheblich gewachsen.
Javascript wächst am schnellsten, seine Community ist bereits die größte, erst 2018 wuchs es um 2,5 Millionen. Sie versuchen sogar, in den Bereichen IoT und ML darüber zu schreiben.
Python wuchs 2018 um 2,2 Millionen aufgrund der wachsenden Popularität von ML, wo es traditionell stark ist, sowie aufgrund der einfachen Entwicklung und der Bequemlichkeit der Sprache.
Java, C / C ++ und C # wachsen langsamer als die allgemeine Entwicklerpopulation. Sie sind heute selten die Programmiersprache, mit der die Leute am liebsten beginnen. Die Nachfrage nach Entwicklern ist hier mehr oder weniger ausgeglichen mit dem Angebot. Ich denke, Java würde ohne Android noch langsamer wachsen.
PHP ist die zweitbeliebteste Programmiersprache für Webanwendungen und wächst ebenfalls erheblich (um 32% im Jahr 2018). Die Community wird auf 5,9 Millionen Entwickler geschätzt. Trotz der polaren Meinung über den Ruf von PHP ist es ziemlich leicht zu erlernen und weit verbreitet.
Wie moderne junge Kandidaten im Vergleich zu früheren Generationen studieren
Wieder HackerRank-Daten. Diejenigen, die jetzt zwischen 38 und 53 Jahre alt sind, geben bei ihren ersten Projekten Spiele an.
Übrigens, ich bestätige übrigens, mein erstes mehr oder weniger funktionierendes Projekt war "Tic-Tac-Toe" bis zu fünf in Folge mit einem unbegrenzten Feld, das zweite - ein Spiel mit 15 Jahren. Ich schrieb dies alles auf
BC 010-01 , es gab ein
Vilnius BASIC , auch bekannt als BASIC- 86 und fokal. Eh.
Moderne Programmieranfänger (vor dem 21. Lebensjahr) schreiben als erste Projekte Taschenrechner und Websites.
Unter den Vertretern der Generation X begann fast die Hälfte vor dem 16. Lebensjahr mit dem Schreiben von Code, viele im Allgemeinen zwischen 5 und 10 Jahren (hauptsächlich diejenigen, die jetzt zwischen 35 und 45 Jahre alt sind). Es ist mehr oder weniger verständlich, warum: Es gab nur wenige Informationsquellen, und um Programmierer zu werden, war es wirklich notwendig, es wirklich zu wollen, und diejenigen, die wirklich früh mit dem Programmieren beginnen wollten. Diejenigen, die inzwischen nicht so viel wollten, haben höchstwahrscheinlich einen anderen Beruf, also ist das Bild in der Soziologie genau das.

Heutige junge Kandidaten beginnen in nur 20% der Fälle vor dem 16. Lebensjahr mit dem Programmieren, die meisten von ihnen sind irgendwo zwischen dem 16. und 20. Lebensjahr. Aber es ist viel einfacher für sie zu lernen, jetzt ist es viel zugänglicher.
Schlussfolgerungen
Ich fand keine konkrete Antwort auf die Frage, ob heute ein Web-Backend-Entwickler für Anfänger SQL benötigt wird, aber er korrigierte seine Vorstellung von der modernen Population von Programmierern.
Die nächste Generation von Entwicklern - normale Menschen, die etwas an das vorherige
Wohnungsproblem erinnern,
verwöhnte sie nur . Sie befriedigen die Nachfrage der Arbeitgeber. Die Schwelle für den Berufseinstieg ist aufgrund praktischerer 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 regulärer Beruf, nicht schlechter als andere.
Diejenigen, die wissen, dass der Latensi L1-Cache ~ 4 Zyklen umfasst und dass es besser ist, nicht unnötig Cache-Zeilen zu schießen, werden als Prozentsatz der Gesamtpopulationsgröße kleiner. Sie sollten sich jedoch keine Sorgen um die Beschäftigung machen, jemand sollte am Ende Dinge auf niedriger Ebene schreiben, wo dies noch notwendig ist. So wie Sie sich keine Sorgen machen sollten, diejenigen, die über fundierte Grundkenntnisse im Systemdesign verfügen und diese in blutigen praktischen Schlachten erworben haben und nicht nur dem Frachtkult folgen. Weil diejenigen, die in der Lage sein werden, "nur Code zu schreiben" und "nur" die Frameworks in Teams zu verwenden, mehr werden und "für Jahre, die ziellos verbracht werden, nicht unerträglich schmerzhaft zu sein" (c), müssen sie von genau solchen Menschen ausgeglichen werden.
Soft Skills aus der Kategorie wünschenswert wandern allmählich zu obligatorisch um (um dies zu bestätigen, habe ich keine objektiven Daten, nur praktische Beobachtung). Die Anzahl der Programmierer wächst, und alle müssen angewiesen werden, um ein Ergebnis zu erzielen, wenn auch durch direkte, wenn auch indirekte Kontrolle, aber dafür sind nur Soft Skills erforderlich.
"Enter IT" scheint mir eine lokale regionale Geschichte zu sein, die für jene Orte charakteristisch ist, an denen sich das Einkommen eines Programmierers erheblich vom Einkommen eines Spezialisten unterscheidet, dessen Qualifikation mit "nicht IT" vergleichbar ist. In Minsk, wo ich wohne, ist dies im Allgemeinen eine Massenbewegung. Jeden Tag sehe ich Anzeigen für die nächsten Kurse zum Einstieg in die begehrte IT, und Reinigungsunternehmen richten sich an Programmierer mit der Meldung „Verstehen Sie den Code in diesem Bild? Sie können es sich also leisten, die Wohnung nicht zu putzen. Wir werden alles für Sie tun. “ Das gleiche passiert anscheinend in einer Art Indien. Um dies zu beweisen, habe ich auch nicht.
Generell ist die Bevölkerung der Programmierer meiner Meinung nach nicht bedroht. Es lohnt sich nicht zu sagen, dass echte Programmierer mit Tag und Nacht nicht zufrieden sind und dass die Kandidaten die ganze Zeit „nichts wissen“. Sie sind genauso klug und fähig, vielleicht sogar schlauer und fähiger als „echte Programmierer“. Sie erwerben einfach das Wissen, das ein boomender Markt von ihnen verlangt, und legen das, was sie noch nicht gebraucht haben und das sie derzeit nicht nutzen werden, für später beiseite. Sie werden bei Bedarf lernen, weil sie noch lernen wollen. Wahrscheinlich wird nicht jeder dazu in der Lage sein, aber nicht jeder wird es brauchen. Der Markt wird es in absehbarer Zeit leicht machen, Leute zu akzeptieren, die in der Lage sind, schnell ein anderes Anwendungskonzept auf einem bestimmten Framework zusammenzustellen.