
Vor genau 15 Jahren, an diesem Tag, überschritt ich mit zitternden Knien die Schwelle des Büros eines kleinen Internetdienstanbieters in der Provinz. Mein erster richtiger Job als Programmierer. Fast kein Wissen. Eine dünne, verängstigte Stimme von irgendwo im Magen rät, sich umzudrehen und wegzulaufen, bis sie schließlich blamiert ist. Ein tiefes Ein- und Ausatmen, und hier führt mich der CEO bereits in einen kleinen Kellerraum und zeigt auf einen halb zerlegten Computer, der bessere Zeiten gesehen hat: „Dies ist Ihr Arbeitsplatz. Lass dich nieder. " So begann meine Karriere.
Aber schnell vorwärts in die Gegenwart. Jetzt schreibe ich diese Zeilen und sitze im komfortablen Büro des renommierten Geschäftszentrums im Zentrum von Moskau. Hinter der Arbeit mit großen internationalen Marken und der Entwicklung komplexer Fintech-Anwendungen. Hunderte von Büchern wurden gelesen und Dutzende von Artikeln geschrieben. Manie der Größe ist seit langem geheilt. Führungspositionen werden geprüft und abgelehnt. Seelenfrieden gefunden. Die Liebe zum Beruf bleibt erhalten. Dies ist jedoch kein Artikel aus der Serie „Was für ein Kerl ich bin. Tun Sie, was auch Sie tun werden. “ In diesem Artikel geht es darum, welche Fehler ich gemacht habe und was besser gemacht werden könnte. Dieser Artikel ist eine Retrospektive meiner Karriere.
Ändern Sie das Unternehmen, wenn es keine Entwicklung gibt
Von Zeit zu Zeit blieb ich in Unternehmen stecken, die deutlich über das Niveau hinausgewachsen sind. Es scheint, dass sie gutes Geld bezahlen, und alles hier ist vertraut und bequem. Wenn Sie morgens kommen, wählen Sie den üblichen Modus an der Kaffeemaschine. Sie tauschen Witze mit Katya aus der Buchhaltung aus. Sie sitzen auf Ihrem Stuhl, der seit langem die Form Ihrer Schwäche angenommen hat. Sie öffnen den Laptop und tauchen in den Alltag typischer Aufgaben ein, die Ihnen bekannt sind. Achtung! Das ist eine Falle!
Arbeit sollte keine lästige Pflicht werden. Es muss Herausforderungen geben. Nicht jeden Tag, vielleicht nicht jeden Monat, aber wenn es Ihnen zu einfach ist, ist es Zeit zu gehen. Keine Angst vor Schwierigkeiten. Wenn es Ihnen beim Interview so vorkam, als würden die Jungs hier zu komplexe Probleme lösen und Sie sicher schon am ersten Tag durcheinander kommen - dieses Angebot ist für Sie. Suchen Sie nach den schwierigsten Aufgaben, die Sie nur verbessern können, und verschlechtern Sie sich nicht 4 Stunden am Tag in der Küche Ihres Lieblingsunternehmens
Sei ein Programmierer, kein Programmierer
Schreiben Sie den Code! = Lösen Sie das Problem. Code ist nur eines der Werkzeuge zur Lösung von Problemen. Oh, wie lange war der Weg zur Verwirklichung dieser einfachen Aussage. Wie viel Zeit wurde verschwendet. Wir Programmierer werden mit schrecklicher Kraft vom Code angezogen. Als wir die nächste Aufgabe in der Jira sehen, lassen wir ihre Augen diagonal laufen und schreiben lieber Code! Sobald der Code geschrieben ist, verlieren wir das Interesse an der Aufgabe und nehmen eine neue an.
Leider werden wir sehr selten mit transparenten und verständlichen Aufgaben konfrontiert. Bevor ich die IDE öffne, muss ich 100% sicher sein, dass ich das Problem verstehe, das ich lösen werde. Ein guter Marker ist hier die Zersetzung. Wenn ich die Lösung schrittweise malen kann und weiß, welches Ergebnis jeder Schritt hervorbringt, öffne ich den Editor und schreibe den Code.
Denken Sie daran: Ihr Wert als Programmierer liegt nicht in elegantem Code mit einer exotischen Gruppe von vier Mustern. Aufgrund der Schönheit des Codes ist noch kein Unternehmen erfolgreich (auf jeden Fall erinnere ich mich nicht an solche Beispiele). Denken Sie immer an das Endergebnis.
Hab keine Angst zu experimentieren
Jedes Mal, wenn ich ein neues Haustierprojekt startete, startete ich es entweder mit bekannten Technologien oder wechselte nach einigen Wochen zu ihnen. Es ist so viel schneller. Was bringt es, mit Kafka zu quälen, wenn Sie ein Lieblingskaninchen haben? Warum eine Datenstruktur in Dokumente einpassen, wenn sie leicht in ein relationales Modell passt? Jedes Mal hinderte mich der Gedanke, dass ich schnell zum Produkt gehen muss, daran, mich zu entwickeln. Infolgedessen belasten die meisten meiner Projekte den Github und bringen mir nicht nur Weltruhm, sondern auch neues Wissen. Beim Versuch, mit den von mir selbst festgelegten Fristen Schritt zu halten, habe ich nur Zeit verschwendet.
Experimentieren. Es gibt keine Eile. Entwickeln Sie Ihren Horizont. Wenn Sie ein Experte für eine Technologie sind, verwenden Sie dieses Wissen bei der Arbeit, verwenden Sie jedoch Tools, mit denen Sie außerhalb Ihrer Arbeit nicht vertraut sind. Dies ist psychologisch schwierig, da Sie verstehen werden, dass Sie mit einer bekannten Programmiersprache bereits die Vorteile des Ruhms Ihres Projekts auf den Malediven nutzen würden. Und Sie müssen herausfinden, warum das Konvertieren eines Zaubers in ein Int einen Zeichencode und keine Zahl ergibt.
Starten Sie Haustierprojekte
Ich habe lange verstanden: Um ein erfolgreicher Programmierer zu sein, reicht es nicht aus, ein guter Programmierer zu sein. Sie müssen die Entwicklung eines Produkts viel umfassender verstehen als seine Spezialisierung. Aber wie erreicht man das? Ich kann Hunderte von Büchern über Marketing lesen und sie werden nutzlos sein, wenn ich dieses Wissen nicht in die Praxis umsetze. Ich kann die Telegrammkanäle der besten Produktexperten des Landes abonnieren. Was ist, wenn ich kein Produkt zum Experimentieren habe?
Seit ich mein erstes Haustierprojekt gestartet habe, ist es für mich viel einfacher geworden, eine gemeinsame Sprache mit Fronten, Qa, Produkten, Vermarktern und anderen Teammitgliedern zu finden. Immerhin begann ich ihre Arbeit viel besser zu verstehen. Moderne Programmierung ist sehr teambasiert und die Erfahrung an meinem eigenen Projekt hilft mir, Gemeinsamkeiten mit anderen Teammitgliedern zu finden.
Lerne zu zersetzen
Ich hatte immer Probleme mit Achtsamkeit. Ich habe sehr dumme Fehler im Code gemacht. Nicht, weil ich etwas nicht verstanden habe oder nicht wusste, wie ich es machen soll. Ich war nur unaufmerksam. Ich hatte auf verschiedene langweilige Weise mit diesem Problem zu kämpfen (zum Beispiel habe ich den Minutenzeiger gesehen), aber nichts hat geholfen. Natürlich ging mein Selbstwertgefühl nach jedem solchen Fehler stark zurück. Über welche Art von Entwicklung können wir sprechen, wenn das Selbstwertgefühl bei Null liegt?
Die Lösung kam in Form einer Zersetzung. Weniger Aufgabe = weniger Code = weniger Fehlerwahrscheinlichkeit. Ich höre oft den Satz „Diese Aufgabe kann nicht zerlegt werden“, aber ich persönlich denke, dass jede Aufgabe auf unbestimmte Zeit zerlegt werden kann. Wenn Sie keinen Erfolg haben, verstehen Sie die Aufgabe höchstwahrscheinlich nicht vollständig.
Werkzeuge lernen
Ich habe die IDE lange Zeit als regulären Code-Editor mit einfacher Navigation verwendet. Und ich hatte auch einen Chef, der ausschließlich in mcedit programmierte und oft theatralisch fragte: "Wer bist du ohne deine IDE?" Oder ich hatte ein Terminal, das rund um die Uhr geöffnet war, aber ich wusste überhaupt nicht, wie ich damit arbeiten sollte. Ich habe lange Zeit ohne statische Analysegeräte und Stilfixierer gelebt. Ignorierte die Hotkeys. Und ich habe darin kein Problem gesehen.
Jetzt habe ich alle offiziellen Youtube-Kanäle meiner Tools abonniert. Es ist erstaunlich, wie viel Sie von ihnen lernen können. Ich schaue mir den Arbeitsprozess meiner Kollegen genau an und übernehme oft das, was mir interessant erschien. Einige Tools zeigen uns auch Popups, in denen Sie erfahren, wie Sie den Interaktionsprozess verbessern können. Vernachlässigen Sie dies nicht.
Nehmen Sie an OpenSource teil
OpenSource - es tut weh. Jeder Ihrer PRs wird unter einem Mikroskop untersucht. Jede Variable, jedes Zeichen. Jeder Test wird in Frage gestellt. Und dies ist nicht Ihr Teamleiter, der sagt: "Oh, nun, lasst uns so besessen sein." Sie werden mit diesen Leuten keine Einigung erzielen, Sie werden sich nicht über sie beschweren, Sie werden sie nicht mit Autorität vernichten. Und sie bezahlen dich nicht einmal. Bei ungefähr dem fünfundzwanzigsten Kommentar möchte ich wirklich alles nafig schicken.
Sei geduldig! Opensource ist eine großartige Gelegenheit, Ihre Fähigkeiten zu verbessern und mit den besten Programmierern der Welt zusammenzuarbeiten (obwohl dies vom Projekt abhängt). Fangen Sie klein an. Wählen Sie ein einfaches Werkzeug oder eine Bibliothek. Gehen Sie zum Abschnitt Probleme und sehen Sie, was Sie beheben können. Ich muss sagen, dass der Github normalerweise keine Toxizität aufweist. Wenn Ihre PR in Stücke gerissen ist, werden sie es sehr konstruktiv tun. Auf jeden Fall nach meiner Erfahrung.
Glaube an dich
Von Zeit zu Zeit hatte ich Situationen, in denen ich alles fallen lassen und auf einer Baustelle arbeiten wollte. Tragen Sie Steine. Diese Situation könnte eine Aufgabe sein, die in keiner Weise endete. Was den täglichen Bedarf verändert hat. Oder eine Technologie, die ich nicht studieren wollte. Oder die Integration eines Drittanbieter-Dienstes, dem die Dokumentation völlig fehlte. Oder einfach nur Funktionalität, um zu verstehen, was die Ausbildung eines Finanziers erfordert, und alle Produktexperten sprechen ausschließlich Englisch. Ich flippte aus, zögerte, gab auf und frustrierte den Zorn auf die Katze.
Es gibt einen Trick, der mir jetzt bei solchen Aufgaben sehr hilft. Ich erinnere mich einfach immer daran, dass ich am Ende damit umgehen kann. Immer fertig. Und wird es immer sein. Sie müssen sich nur hinsetzen, studieren, nachdenken, sortieren und den richtigen Leuten die richtigen Fragen stellen. Die Hauptsache ist, an sich selbst zu glauben und ruhig zu bleiben. Im Allgemeinen ist dies vielleicht der wichtigste Ratschlag, mit dem ich den Artikel beenden werde. Bleib ruhig und glaube an dich. Sie können damit umgehen.