Haftungsausschluss: Dieser Artikel wurde von Skillbox in Zusammenarbeit mit Egor Yakovishen, dem Hauptentwickler und IIDF-Tracker von Setka Editor, verfasst.
Heutzutage ist es relativ einfach, das Programmieren auf einer Grundstufe zu lernen. Zum Beispiel konnte der amerikanische Obdachlose Leo Grand, der nur eine Grundschulbildung hatte, in nur drei Monaten seine eigene mobile Anwendung namens Trees for Cars erstellen.
Warum überhaupt Programmieren lernen? Es kann viele Antworten geben, von dem Wunsch, sich zu entwickeln und mit dem Wunsch zu enden, viel Geld zu verdienen. Angenommen, wir haben das Codieren gelernt und ein bestimmtes Niveau erreicht. Es gibt Arbeit, Geld scheint auch da zu sein, Zufriedenheit mit dem Leben (teilweise oder vollständig) ist vorhanden. Es scheint, dass Sie aufhören und einfach Ihre Erfolge genießen können. In der Tat nicht aufhören. Warum? Wir werden darüber reden.
Warum überhaupt verbessern?
Wenn Sie sich in Ihrer gewählten Spezialität nicht verbessern, können Sie sich nach einer Weile als Höhlenbewohner in einer Höhle wiederfinden, die von schwebenden Gebäuden der fernen Zukunft umgeben ist. Hmm, oder stellen Sie sich eine „Zivilisation“ mit einer KI vor, die bereits über Atomwaffen verfügt, und einem Spieler, der immer noch mit Hilfe von Musketen kämpft.
Für einen Programmierer ist ein solcher Vergleich sehr relevant, da buchstäblich jeden Tag neue Plattformen, Frameworks und Hardware erscheinen, für die Sie etwas Neues schreiben müssen. Wenn Sie mehrere Jahre im selben Geschäft tätig sind, können Schwierigkeiten bei der Beschäftigung und die Zufriedenheit mit dem Leben auftreten, über das wir oben gesprochen haben.
Selbst wenn wir relativ einfache Aufgaben übernehmen - beispielsweise die lokale Automatisierung von Prozessen durch Erstellen von Skripten in VBScript für Microsoft Office - können wir auch in diesem Fall nicht aufhören: Die Office-Suite ändert sich, bestimmte Funktionen werden hinzugefügt und entfernt, VBScript selbst ändert sich. Ein paar Jahre - und heutige Lösungen sind nicht geeignet. Was können wir über Programmiersprachen wie Ruby oder JavaScript sagen, die an der Spitze der Technologieentwicklung stehen?
Um mit neuen Technologien Schritt zu halten (oder als Anfänger sofort etwas Relevantes zu tun und keine sterbenden Lösungen zu lernen), melden Sie sich für einen der Skillbox-Programmierkurse an. Der Rest unserer Bereiche kann Ihnen jedoch auch nützlich sein, um verwandte Fähigkeiten zu fördern und Kollegen und Arbeitsprozesse besser zu verstehen.

Fälle? Ich habe sie
Eines der besten Beispiele dafür, was einer Person passieren kann, die jahrelang auf demselben Gebiet gearbeitet hat, ohne sich zu entwickeln, ist die Situation mit Flash-Entwicklern und denen, die sich für Flex entschieden haben, eine interaktive Programmiersprache, die auf Flash basiert. Lange Zeit waren sie „zu Pferd“ - sehr gefragt und erhielten beträchtliches Geld (auf jeden Fall mehr als viele andere IT-Spezialisten). Gute Arbeit, Respekt vor Kollegen - was braucht ein Mensch noch zum Glück?
Aber nach einiger Zeit, mit dem Aufkommen des iPhone und der Proklamation von Steve Jobs zum Slogan „Flash werden wir nicht unterstützen“, wurde diese Technologie nach und nach aufgegeben. Im Laufe der Zeit folgte Apple und Entwickler für andere Plattformen.
Es ist klar, dass dies alles nicht sehr schnell ging, aber die Flasher spürten die Veränderung. Jemand begann fast sofort, nach neuen Arbeitsbereichen zu suchen und andere Programmiersprachen zu lernen. Nun, jemand machte weiter, was er gewohnt war, und blieb letztendlich überhaupt arbeitslos, da keine Zeit für eine Umschulung blieb.
Ein ähnliches Problem kann bei CMS-Bitrix-Spezialisten auftreten, die auf der Grundlage dieses Systems Websites des gleichen Typs erstellen und nicht die Fortschritte erzielen, die sie ursprünglich in der Programmierung geschult haben. Wenn etwas passiert und Bitrix nicht mehr so beliebt ist, bleiben die ehemaligen "Programmierer" arbeitslos, weil sie ihre Entwicklungsfähigkeiten nicht entwickelt haben, sondern dies lange Zeit getan haben.
Polyglot-Programmierer oder Spezialist für schmale Profile?
Wenn ein Programmierer ein bestimmtes Niveau erreicht hat, stellt sich die Frage: Wohin soll er gehen? Einige, die Erfahrung in einer der Programmiersprachen gesammelt haben, beginnen mit dem Studium der zweiten, dann der dritten und so weiter.
Das Problem ist jedoch, dass unsere Zeit eine Ära enger Spezialisierung ist. Die Menge an Informationen, die in einer der Programmiersprachen gelernt werden muss, ist so groß, dass es sehr schwierig ist, Spezialist für etwas anderes zu werden - möglicherweise bleibt einfach nicht genügend Zeit. Um relativ gut in einer der Sprachen schreiben zu können, benötigen Sie drei Jahre (jemand spricht ungefähr 10.000 Stunden). Aber um ein cooler Profi in einem ausgewählten Bereich zu werden, braucht es mehr, viel mehr Zeit.
Dies bedeutet überhaupt nicht, dass es keine polyglotten Programmierer gibt, die 2, 3, 5 Sprachen oder mehr sprechen. Sie sind es, aber solche Leute sind ziemlich selten. Darüber hinaus ist die Kenntnis mehrerer Sprachen keine Garantie dafür, dass eine Person alles gründlich versteht. Überhaupt nicht: In den meisten Fällen „hebt“ sich der Programmierer einfach auf und betrachtet sich als cooles Universal. Aber geben Sie ihm eine bestimmte Aufgabe - und sein Wissen reicht möglicherweise nicht aus, um sie zu lösen.
Es ist besser, sich an den goldenen Mittelwert zu halten - es ist sehr gut, hauptsächlich eine der Programmiersprachen zu verstehen, und wenn Sie ein bisschen von anderen lernen möchten, nur für die allgemeine Entwicklung. Zusätzliche Fähigkeiten haben noch niemanden verletzt.
Was genau zu wählen?

Um die richtige Richtung für Entwicklung und Verbesserung zu wählen, müssen Sie ein wenig visionär sein. Mit anderen Worten, Sie müssen verstehen, welche damit verbundenen Technologien und Programmiersprachen in naher Zukunft beliebt sein werden.
Es ist am besten, einen Bereich zu wählen, in dem es heutzutage nicht viele Fachleute gibt, und sich zu entwickeln, um die notwendigen Erfahrungen und Kenntnisse als Profi zu sammeln, noch bevor er zum Mainstream wird.
JavaScript ist ein Beispiel. Jetzt ist diese Sprache sehr beliebt, sie ist buchstäblich in aller Munde. Zu Beginn seiner Entwicklung war JS jedoch ein Nischenprodukt. Diejenigen, die sich sofort in diesem Bereich zu entwickeln begannen, sind coole und gefragte Spezialisten geworden, die (ja, nicht ohne) viel erhalten. Jetzt ist alles darauf geschrieben: Frontend, Backend, sogar mobile Anwendungen. Diese Sprache allein reicht aus, um Anwendungen unterschiedlichster Komplexität für die Lösung nahezu aller Aufgaben zu schreiben.
Ein guter Weg, um Trends in Programmiersprachen, Frameworks usw. zu erkennen. - Verfolgung des Einsatzes bestimmter Werkzeuge in Produkten großer Unternehmen. Wenn ein Unternehmen beginnt, sich auf ein Nischenprodukt einzulassen und es in seine Produkte einzuführen, lohnt es sich zu überlegen, warum. Wenn dies kein Unfall ist, kann es höchstwahrscheinlich bald zum Mainstream in der Programmierung werden.
Drei Wale der modernen Programmierung: JavaScript, Python, Java
Wenn wir bereits über die Wahl sprechen, lohnt es sich, konkrete Beispiele zu nennen. Daher sind die Sprachen Java Script und Python derzeit eine der vielversprechendsten. Das erste ist, weil es universell ist. Die zweite ist, weil es eine der einfachsten (relativ) und gleichzeitig trendigen Sprachen für das Mastering ist: Projekte aus dem Bereich des maschinellen Lernens, neuronale Netze, KI werden darauf geschrieben. In Python, ganz oder teilweise geschrieben, verschiedene Produkte von Dropbox, Google und Yandex.
Java bleibt auch eine universelle Sprache, die insbesondere zum Schreiben von Anwendungen für Android verwendet wird.
Wie werde ich ein Guru?
Im Prinzip ist es nicht so schwierig. Die Hauptsache ist ein Verständnis der Grundlagen, ein flexibler Verstand, Ausdauer und PRAXIS. Ja, es ist Hauptstadt. Tatsache ist, dass keine Theorie, egal wie Sie sie studieren, dazu beiträgt, ein Profi zu werden, wenn es keine praktische Erfahrung gibt. Es ist wie in den Sprachen, die Menschen sprechen: Sie können sich Hunderte von Fremdwörtern merken, die Grammatikregeln lesen, aber wenn Sie nicht sprechen und schreiben, geht all dies in die Passivität und wird im Laufe der Zeit völlig vergessen.
Daher gibt es zwei Hauptempfehlungen für diejenigen, die sich in ihrem gewählten Bereich verbessern möchten:
- Lesen Sie den Code eines anderen.
- Schreiben Sie Ihren Code.
Diese Tipps können in beliebiger Reihenfolge verwendet werden - es gibt keinen Schaden, nur Nutzen. Warum? Je mehr Produkte Sie erstellen, je mehr Code Sie schreiben, desto mehr Übung. Bestimmte Probleme werden gelöst, Arbeitsprinzipien entwickelt, Fähigkeiten gebildet. In diesem Fall müssen Sie den Code einer anderen Person analysieren. Für einen Anfänger ist dies einfach deshalb notwendig, weil er wenig weiß und wenn er liest, was andere geschrieben haben, kann Junior verstehen, was und wie es funktioniert. Wenn Sie den Code einer anderen Person in der Mitte analysieren, können Sie erfolgreiche Lösungen für das Problem finden, das bei der Entwicklung eines bestimmten Produkts auftritt. Nun, für Senioren ist dies zum einen die Suche nach Fehlern im Code und zur Hilfe eines anderen, und zum anderen die Selbstverbesserung. "Es wird immer einen Asiaten geben, der etwas besser macht als Sie" ist ein berühmtes Mem, aber er ist fair und nicht nur in Bezug auf Asiaten. Wenn Sie den Code eines anderen studieren, können Sie eine elegante Lösung für jedes Problem finden, für das Sie zuvor „Krücken“ verwenden mussten.

Jetzt gibt es Dienste, die für Programmierer als Twitch bezeichnet werden können. Eine davon ist livecoding.tv. In der Ressource registrierte Programmierer schreiben ihre eigenen Programme mit einer Demonstration des Codes in Echtzeit.
Und natürlich brauchen wir auch eine Theorie. Um Wissensreserven aufzufüllen, müssen Sie viel lesen, nicht nur in der Programmierung, sondern auch in verwandten Disziplinen.
Abschließend können wir uns an das Zitat aus „Alice im Wunderland“ erinnern (selbst Kinder im Vorschulalter wissen es, ja, aber dies negiert nicht den Wert der Aussage): „Wir müssen so schnell rennen, nur um an Ort und Stelle zu bleiben, aber um irgendwohin zu gelangen, müssen wir lauf mindestens doppelt so schnell! “ In der schnelllebigen Welt der Technologie müssen Sie sich wirklich anstrengen, um ein guter Programmierer zu bleiben. Und um besser zu werden, müssen Sie zweimal, wenn nicht dreimal mehr arbeiten und lernen.