Der Manager eines Abrechnungsunternehmens hat zwei Möglichkeiten, ein Team aufzubauen. Die erste besteht darin, fertige „Senioren“ zu rekrutieren und kontinuierlich solche Arbeitsbedingungen zu schaffen, damit sie ihre Fähigkeiten und Erfahrungen maximal nutzen, sich entwickeln und gleichzeitig nicht kämpfen können. Die zweite besteht darin, ein Team aus einer Mischung von Anfängern, „Midas“ und Profis zusammenzustellen, damit sie innerhalb des Unternehmens kommunizieren, sich gegenseitig beeinflussen, lernen und wachsen können. Ich bin gegen einen Teufelskreis a la "keine Erfahrung - keine Arbeit - keine Erfahrung" und ich sehe kein Problem darin, einen beginnenden Entwickler einzustellen. Forward Telecom führt seit langem ein Praktikumsprogramm durch, das für viele berufstätige Mitarbeiter zu einem Sprungbrett geworden ist.
Jetzt werde ich Ihnen sagen, wie ich den Entwicklungspfad des Abrechnungsentwicklers sehe und in welcher Reihenfolge Sie professionelle Fähigkeiten beherrschen müssen.
1. Lernen Sie eine Programmiersprache
Für den Anfang - jeder. Die Priorität ist Java, Python und JavaScript, aber Ruby, Go, C, C ++ eignen sich für Grundkenntnisse. Wie unterrichte ich? Nehmen Sie an kostenlosen und kostenpflichtigen Kursen teil, ich kann Ihnen ein Training von Golang empfehlen. Wenn das Englischniveau dies zulässt, ist das Ansehen ausländischer Videos eine gute zusätzliche Fähigkeit.

2. Betriebssystemkonzepte verstehen
Die Betriebssysteme basieren auf sieben Komponenten, die Sie kennen und erklären müssen, um das Prinzip der Aktion zu erklären:
- Prozessmanagement;
- Streams und Multithread-Code;
- Socket (Software-Schnittstelle);
- E / A-Planung;
- Virtualisierung
- Lagerung
- Dateisysteme.
Ich empfehle einen einfachen Linux-Verwaltungskurs. Zweites Betriebssystem in der Reihe: Windows und Unix.
3. Gewöhnen Sie sich an das Terminal
In Analogie zur Phobie eines leeren Blattes gibt es eine Phobie eines leeren schwarzen Bildschirms mit einem blinkenden Cursor. Sie müssen es überwinden, um zu lernen, wie man gute Befehle in die Befehlszeile schreibt.
Seien Sie sicher zu wissen:
- Bash- und KornShell-Muscheln;
- Befehle finden, grep, awk, sed, lsof;
- Netzwerkbefehle nslookup und netstat.

4. Netzwerk und Sicherheit
Die Abrechnung hängt eng mit den Netzwerk- und Datenschutzanforderungen zusammen. Sie können keine Onlinedienste schreiben, ohne zu verstehen, wie das Netzwerk funktioniert. Daher müssen Sie die grundlegenden Konzepte und Protokolle kennenlernen: DNS, OSI, HTTP, HTTPS, FTP, SSL, TLS. Wenn Sie dann auf einen Fehler "Verbindung abgelehnt" stoßen, wissen Sie, was zu tun ist.
5. Server
Nachdem Sie die Prinzipien der Informationsübertragung im Netzwerk studiert haben, können Sie mit den Grundlagen der Funktionsweise von Servern beginnen. Beginnen Sie mit den Webservern: IIS, Apache, Nginx, Caddy und Tomcat.
Weiter unten in der Liste:
- Reverse-Proxy-Server;
- Anonymer Bevollmächtigter;
- Caching
- Lastausgleich;
- Firewall.
6. Erkunden Sie die Infrastruktur als Code
Ich denke, dass diese Phase eine der wichtigsten ist. Drei große Themen müssen aussortiert werden:
- Container: Docker und Kubernetes
- Konfigurationsmanagement-Tools: Ansible, Chef, Salt und Puppet
- Reservierung: Terraform, Wolken.
7. Lernen Sie CI / CD
Eine weitere nützliche Fähigkeit für einen Abrechnungsentwickler besteht darin, die Pipeline für die kontinuierliche Integration und Bereitstellung anzupassen. Im Bereich CI / CD gibt es Tools wie Jenkins, TeamCity, Drone, Circle CI und andere. Spoiler: Es wird ausreichen, zunächst die weit verbreiteten Jenkins zu studieren.
8. Software- und Infrastrukturkontrolle
Das Hauptziel besteht darin, die Grundlagen der Anwendungsüberwachung zu verstehen. Die Werkzeuge in diesem Bereich sind in drei Gruppen unterteilt:
- Infrastrukturüberwachung: Nagios, Icinga, Datadog, Zabbix, Monit.
- Überwachung der Anwendungsleistung: AppDynanic, New Relic.
- LMS: ELK Stack, Graylog, Splunk, Papertrail.
9. Cloud-Dienste
In naher Zukunft wird jede Anwendung oder Software ein Cloud-Äquivalent haben. Früher oder später werden Entwickler mit Clouds konfrontiert. Lesen Sie daher mehr über die beliebten Cloud-Anbieter (AWS, Google Cloud und Azure) und die Grundlagen der Technologie.
10. Arbeiten Sie mit der Datenbank
Alle aktuellen Projekte verwenden Datenbanken, und die Erfahrung in der Arbeit mit DBMS und SQL erleichtert den Arbeitsbeginn. Erfahren Sie, wie Sie SQL-Abfragen schreiben, EXPLAIN verwenden und wie Index funktioniert. Am einfachsten ist es, einen Kurs zu belegen. Sie können auch Fähigkeiten in der Postgres-Dokumentation üben und mit der Replikation herumspielen.
11. Softskills steigern
Ein Punkt, der plötzlich aus der allgemeinen Leinwand ausbricht, aber nicht weniger wichtig ist. Um loszulegen - seien Sie geduldig. Sie gewöhnen sich schnell an Situationen wie „Fix the Iron, Typrogrammer“, müssen aber mental auf den Zeitpunkt des Starts neuer Projekte vorbereitet sein. Wenn Sie in der Programmierung zwischen null und einem Jahr sind und als Junior gelten, bereiten Sie sich auf Kritik vor und lernen Sie, diese zu akzeptieren. Überprüfen Sie den Code als Mentor - der Prozess ist oft schmerzhaft. Gleichzeitig ist eine obligatorische Fähigkeit die Fähigkeit, den eigenen Standpunkt zu verteidigen und konstruktiv zu argumentieren. Manchmal entsteht die Wahrheit in einem Streit. Entwickler hören nie auf zu lernen, es gibt praktisch keine Obergrenze im Beruf, daher sind Lernen und der Wunsch, neue Dinge zu lernen, die Grundlage Ihrer Entwicklung.

Ich werde oft gefragt, wann ein Anfänger das mittlere Niveau erreicht und wann man schon stolz als "Senior" bezeichnet werden kann. Ich glaube, dass der Moment des Übergangs von Stufe zu Stufe nicht die Anzahl der geleisteten Arbeitsjahre bestimmt, obwohl praktische Fähigkeiten das Hauptkriterium sind. Trotzdem bestimmen Softskills häufig die Wachstumsrate eines Entwicklers: Ein ausgebildeter und fleißiger Anfänger kann in wenigen Monaten hochwertigen Code in mehreren Sprachen schreiben und in einem Team arbeiten. Ein Entwickler mit 10 Jahren Erfahrung ist möglicherweise nicht in der Lage, nicht standardmäßige Aufgaben zu lösen, ein Team zu führen und einseitige Fähigkeiten zu besitzen.
Ich sehe also den Entwicklungspfad des Abrechnungsentwicklers, sodass wir qualifizierte Spezialisten in unserem Forward Telecom-Team aufbauen. Es scheint, dass ich nichts verpasst habe, aber ich bin immer dankbar für nützliche Ergänzungen im Wesentlichen.