Programmierer 2020: Terminatorruhe

Ein Programmierer ist heute nicht mehr derselbe wie zuvor - Kenntnisse einer Programmiersprache (oder von Programmiersprachen) reichen nicht aus, um auf dem Arbeitsmarkt wirklich wettbewerbsfähig zu sein. Sie können so viel in den C ++ - Code schreiben, wie Sie möchten, einen Zeiger auf einen Zeiger auf einen Zeiger, aber was bringt es, wenn Ihr Arbeitgeber weint (weniger Vanille-Typen schreien, ihnen Boni entziehen, drohen und auf der Seite des Kunden stehen - im Sinne eines Live-Kunden und Benutzers von Ihnen Programm, nicht etwas, das mit dem Server kommuniziert)? Vor einiger Zeit haben sich diese Geräte, diese Managementkonzepte, die Tendenzen der Personalauswahl auf dasselbe konzentriert: Modularität, Diskretion und sogar Primitivierung und enge Spezialisierung von Mitarbeitern, Software, Tools. Aber die Evolution hat eine falsche Wendung genommen und jetzt benötigt die Welt intelligente Geräte, die alles können, multifunktionale Programme und Anwendungen (hallo,Yandex Go) und natürlich universelle Spezialisten. Das Konzept des "Mannorchesters" kehrte zum Trend zurück und hatte keine Zeit, ihn zu verlassen. 





Was brauchen Sie also für das vollständige Programmierglück eines Set-Matchings Ende 2020?



▍Datenstrukturen und Algorithmen



Heutzutage gibt es viele autodidaktische Programmierer mit guten Programmierkenntnissen in einer bestimmten Programmiersprache. Dies sind Technikfreaks, die aus anderen Profilen umgeschult wurden, "Vhozhdens in IT", Amateure der Selbstbildung usw. Sie verstehen wirklich, wie man Code schreibt, sie sind mit Funktionen und Syntax bestens vertraut, sie kennen einige Tricks und sie sind besonders fortgeschritten in OOP und Mustern. Dies ist bereits eine Menge, um auf dem Arbeitsmarkt wettbewerbsfähig zu sein. 



Aber in den ersten Arbeitstagen eines guten Projekts beginnen Probleme und es wird offensichtlich, dass die Lernaufgaben, die Sie zu einem coolen Programmierer gemacht haben, nichts mit dem Code in der Produktion zu tun haben. Um guten, professionellen Code zu schreiben, müssen Sie Datenstrukturen und Algorithmen verstehen und in der Lage sein, Software zu entwerfen. Ich habe sehr intelligente Programmierer gesehen, die keine Arrays, Bäume, verknüpften Listen, Sortierungen usw. verwendet haben. Diese Jungs haben zwei Besonderheiten: 1) Sie sind hartnäckig und zuversichtlich in ihrer Überlegenheit; 2) Sie verbringen verdammt viel Zeit damit, zu schreiben, was bereits als Struktur existiert - ich habe gesehen, wie Sorten und Bäume neu erfunden wurden, es ist beängstigend und seltsam. Ich schweige bereits über Ressourcen.



Daher muss ein Programmierer jeder Ebene problemlos mit Strukturen und vorhandenen Algorithmen arbeiten können. HR-Experten und CIOs verwenden diese Themen übrigens gerne in Interviews. Ob es sich lohnt, ein Interview in eine Prüfung zu verwandeln, ist ein Thema für einen separaten Artikel, aber die Tatsache bleibt bestehen.



▍Geschäftsprozesse



Ich erinnere mich noch an die guten Zeiten, als es möglich war, das Produkt Ihrer Träume zu kreieren, und Produktspezialisten, Vermarkter und Verkäufer haben es zu einem Traumprodukt der Kunden des Unternehmens gemacht. Jetzt ist es natürlich anders: Die kommerziellen Leute haben sich entspannt, und der Kunde ist wählerisch geworden, und die Konkurrenten haben gelernt, schöne Dinge anstelle der alten Schäfte auf ihren Knien herzustellen. Jetzt muss jeder Programmierer und Entwickler die Geschäftsprozesse verstehen, für die er Software erstellt, und ein Mindestverständnis für den Tätigkeitsbereich des Unternehmens haben. Und hier werden Argumente wie "Ein Chirurg muss nicht zehnmal operiert werden" nicht gehen, weil dies eine Fälschung von Argumentation und Sophistik ist: Der Chirurg versteht neben dem Ort der Inzision und eines bestimmten Organs Analysen, Pharmakologie, Wiederbelebung, allgemeine Anatomie, Physiologie usw. 



Und das ist ein großes Problem: Entwickler erstellen ein Produkt einfach nach technischen Spezifikationen, nicht zum Nutzen bestimmter Kunden. Wenn es für Sie daher wichtig ist, effektiv zu sein und ein wertvolles, verkaufsfähiges Produkt (zum Nutzen Ihres Gehalts) zu entwickeln, erstellen Sie es unter Berücksichtigung der Bedürfnisse des Kunden, ohne Ihre Sicht der Bedürfnisse zu berücksichtigen. Fragen Sie den Benutzer nach Anforderungen, sammeln Sie Informationen über die Verwendung des Produkts, identifizieren Sie unbequeme und bequeme Module und Funktionen - dann wird es sowohl besser als auch einfacher. 



Übrigens ein kleiner Hack im Leben, um zu verstehen, für welche Geschäftsprozesse Ihre Anwendung erstellt wird. Treffen Sie sich mit Kollegen aus dem Bereich „Verkaufen“, aus dem Front Office und halten Sie ein gemeinsames Seminar ab: Sie informieren Sie über Prozesse und Kunden, über das Nutzungsprofil und wichtige Vorteile, und Sie sagen ihnen, dass Entwicklung für mich keine Welle des Stocks ist, und „spülten einen Taschenrechner für mich herunter Der Kunde hat sehr darum gebeten, die Parameter und Kosten des Kernkraftwerksprojekts in einer halben Stunde zu berechnen. "   



»Math



Königin der Felder. Nun, oder Wissenschaften, nicht die Essenz. Unabhängig davon, wie wir Mathematik in der IT-Welt vermeiden, nimmt ihre Bedeutung von Jahr zu Jahr zu. Weder maschinelles Lernen noch neuronale Netze oder künstliche Intelligenz können ohne mathematische Kenntnisse entwickelt werden. Und wenn Sie, ein Website-Entwickler oder Front-End-Entwickler, nur grunzten und den nächsten Absatz lesen, hören Sie auf, dies gilt für alle. Denn bald werden Programme ohne zumindest einige Grundlagen von ML / AI / Neuronalen Netzen / BigData zurückbleiben. Daher ist die Lösung einfach: Bevor es zu spät ist, studieren Sie das notwendige Stück Mathematik.



Ich habe ein kleines Geheimnis, wie ich anfangen soll: Kaufen Sie eine fortgeschrittene Kinderenzyklopädie oder ein populärwissenschaftliches Buch über Mathematik und tauchen Sie in die Atmosphäre ein. Und dann wird es gehen und sogar festziehen. 



▍Grundkenntnisse in verwandten Bereichen



Dieser Punkt mag jeden verärgern, aber ja - der Programmierer und seine Kollegen werden besser dran sein, wenn sie alle etwas mehr über die Arbeit eines Nachbarn in einem offenen Raum, Büro oder Team wissen. Wenn Sie ein Programmierer sind, kennen Sie einige Grundlagen von UI / UX, Frontend und Backend, Systemadministration, Testen usw. besser. Dies ermöglicht den Aufbau eines produktiven Arbeitsdialogs ohne gegenseitige Anschuldigungen und Verdächtigungen. Es besteht keine Notwendigkeit, sich eingehend mit dem Thema zu befassen - ein grundlegendes Lehrbuch, Online-Vorlesungen und ein Internetkurs reichen aus. Wenn Sie wirklich an der Karriere eines Entwicklers interessiert sind, können Sie ein Vollzeitprogramm für integrierte Softwareentwicklung absolvieren - alles wird dort in moderaten Beträgen angeboten, meistens jedoch bezahlt. 



Diese „universellen Soldaten“ mit einer breiten Arbeitsaussicht sind unter Projektmanagern und Teamleitern leichter zu finden. Wenn Sie interessiert sind, wachsen Sie in Bezug auf das Studium abhängiger Disziplinen an Breite und Tiefe. 



▍Techno-Trio, ohne das die Zukunft nicht erlaubt ist



Es mag seltsam erscheinen, aber oft wissen Programmierer nur über die Existenz dieser drei Technologien Bescheid und können erklären, was es allgemein ist. Bald werden diese Technologien jedoch jeden auf die eine oder andere Weise betreffen.



  1. . — , , ( ). . Amazon Web Service (AWS), Google Cloud Platform (GCP) Microsoft Azure . 
  2. . , , . ,   ,  . ( ).
  3. ( Docker Kubernetes) , , . , , , , . 


▍ -



Ich liebe giftige Firmenangestellte. Wenn eine PR-Person oder ein Projektmanager nervös ein Quadrat korrigiert und sagt, dass „Javist Sergey giftig ist“ im Unternehmen, weiß ich, dass Javist Sergey höchstwahrscheinlich Kollegen mit seinem Wissensvolumen unterdrückt, Fehler professionell findet und sie langweilig aus den besten Absichten und wegen Irritation erklärt andere ziehen sich in sich zurück und verhalten sich unhöflich. Aber er ist ein Profi - und es gibt viele von ihnen. Aber leider sind Menschen soziale Wesen mit einer fein organisierten Psyche und können daher Menschen ohne Empathie, einen sozialen Vektor und, entschuldigen Sie, emotionale Intelligenz nicht leiden. Während der Javist Sergey friert und kluge Gespräche mit dem Müllsammler führt, ist der Pythonist Savely bereits ein Senior und strebt nach Teamleitern. Er hat an drei Konferenzen teilgenommen, führt Freundschaft mit seinen Vorgesetzten und fliegt mit einem Kunden zu einer Ausstellung in Barcelona (Sie haben es bereits verstanden).dass die Beispiele erfunden sind und alle Zufälle zufällig sind, weil 2020 niemand nach Barcelona fliegt). 



Jetzt ist die Zeit für weniger häufige und wertvolle Kommunikation umso wichtiger. Schreiben Sie also auf, was Sie zum Pumpen benötigen:



  • Kommunikationsfähigkeiten, Einwände, Fragen und Diskussionen;
  • die Fähigkeit, die notwendigen Informationen zu verstehen und durch Empathie herauszuholen;
  • die Fähigkeit, Gedanken kompetent und verständlich auszudrücken;
  • Fähigkeiten der informellen Kommunikation ohne Vertrautheit und persönlichen Übergang;
  • die Fähigkeit, Ihren Standpunkt zu verteidigen. 


Ich habe gute Nachrichten für Sie: Die meisten Soft Skills sind standardmäßig in einer Person installiert. Sie müssen diese Fähigkeiten nur kompetent aus sich herausholen. Gehen Sie nicht zu Trainern und Trainern, 2-3 grundlegende Bücher über Organisationspsychologie, Konfliktmanagement und Sozialpsychologie machen Sie zu einem nachdenklichen Gesprächspartner. 



Im Allgemeinen entwickelt sich unser Leben auf interessante Weise: Ich erinnere mich jetzt daran, wie bahnbrechend Google Glass war, wie deutlich Pokemon Go kam, wie verschiedene Projektmanagementsysteme starteten und sofort zusammenbrachen. Dies waren Wellen der Hype-Nachfrage, der Nachfrage nach Trends. Daher scheinen die aufgeführten Fähigkeiten eines Programmierers im Jahr 2020 so "gut aussehend" zu sein: Sie sind langfristig und nicht für ein paar Saisons. Das heißt, Sie können bis etwa 2030 ohne großen Stress mit ihnen leben. Und der Rest der Welt ruht auf diesen Elefanten. Nun, Programmiersprachen natürlich die Schildkröte unter den Elefanten, die Grundlage der Grundlagen.  



Wofür sind wir? Glücklicher Programmiertag, Freunde! Sie ändern Ihr Leben mit Hilfe von Code zum Besseren, Sie stellen Anforderungen an funktionierende Anwendungen, Sie lesen die technischen Spezifikationen zwischen den Zeilen und Sie wissen, was der Kunde oder Teamleiter denkt. Liebe deine Arbeit, wachse darauf und auf dich selbst und lass kein einziges ";" fehlen. Alles Hallo Wort und weniger Fehler.



All Articles