Fury Road: Die Reise des Abrechnungsentwicklers

Der Manager eines Abrechnungsentwicklungsunternehmens 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 weiterentwickeln und gleichzeitig nicht in Streitereien geraten. Die zweite besteht darin, ein Team aus einer Mischung aus Newcomern, Mittelständlern und Profis zusammenzustellen, damit sie innerhalb des Unternehmens kommunizieren, sich gegenseitig beeinflussen, lernen und wachsen können. Ich bin gegen den Teufelskreis „keine Erfahrung – keine Arbeit – keine Erfahrung“ und sehe kein Problem darin, einen Anfängerentwickler einzustellen. Forward Telecom verfügt seit langem über ein Praktikumsprogramm, das für viele aktuelle Mitarbeiter zu einem Karrieresprungbrett geworden ist.

Jetzt erzähle ich Ihnen, wie ich den Entwicklungsweg eines Abrechnungsentwicklers sehe und in welcher Reihenfolge Sie berufliche Fähigkeiten erlernen müssen.

1. Lernen Sie eine Programmiersprache

Für den Anfang, jeder. Im Vordergrund stehen Java, Python und JavaScript, für den Erwerb von Grundkenntnissen eignen sich aber auch Ruby, Go, C, C++. Wie unterrichten? Nehmen Sie an kostenpflichtigen und kostenlosen Kursen teil; ich kann eine Schulung von Golang empfehlen. Wenn Ihr Englischniveau es zulässt, ist das Ansehen ausländischer Videos eine gute zusätzliche Fähigkeit.

Fury Road: Die Reise des Abrechnungsentwicklers

2. Betriebssystemkonzepte verstehen

Betriebssysteme basieren auf sieben Komponenten, die Sie kennen und deren Funktionsweise erklären können müssen:

  • Prozessmanagement;
  • Threads und Multithread-Code;
  • Socket (Softwareschnittstelle);
  • E/A-Verteilung;
  • Virtualisierung;
  • Lagerung;
  • Dateisysteme.

Ich empfehle, einen grundlegenden Linux-Administrationskurs zu belegen. Die zweiten Betriebssysteme in der Reihe sind Windows und Unix.

3. Gewöhnen Sie sich an das Terminal

In Analogie zur Phobie vor einem leeren Blatt gibt es eine Phobie vor einem leeren schwarzen Bildschirm mit blinkendem Cursor. Sie müssen es überwinden, um zu lernen, wie man gute Befehle in die Befehlszeile schreibt.
Muss wissen:

  • Bash- und KornShell-Shells;
  • Befehle find, grep, awk, sed, lsof;
  • Netzwerkbefehle nslookup und netstat.

Fury Road: Die Reise des Abrechnungsentwicklers

4. Netzwerk und Sicherheit

Die Abrechnung steht in engem Zusammenhang mit Netzwerk- und Datenschutzanforderungen. Sie können keine Online-Dienste schreiben, ohne die Funktionsweise des Netzwerks zu verstehen. Daher müssen Sie die grundlegenden Konzepte und Protokolle erlernen: DNS, OSI-Modell, HTTP, HTTPS, FTP, SSL, TLS. Wenn dann der Fehler „Verbindung abgelehnt“ auftritt, 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 des Serverbetriebs beginnen. Beginnen Sie mit Webservern: IIS, Apache, Nginx, Caddy und Tomcat.

Weiter unten in der Liste:

  • Reverse-Proxy;
  • Anonymer Proxy;
  • Caching;
  • Lastverteilung;
  • Firewall.

6. Lernen Sie Infrastruktur als Code

Ich glaube, dass diese Phase eine der wichtigsten ist. Sie müssen drei große Themen verstehen:

  • Container: Docker und Kubernetes
  • Konfigurationsmanagement-Tools: Ansible, Chef, Salt und Puppet
  • Backup: Terraform, Wolken.

7. Lernen Sie CI/CD

Eine weitere nützliche Fähigkeit für einen Abrechnungsentwickler besteht darin, eine Pipeline für kontinuierliche Integration und Bereitstellung einrichten zu können. Im CI/CD-Bereich gibt es Tools wie Jenkins, TeamCity, Drone, Circle CI und andere. Spoiler: Zunächst wird es ausreichen, die weit verbreiteten Jenkins zu erlernen.

8. Software- und Infrastrukturkontrolle

Das Hauptziel besteht darin, die Grundlagen der Anwendungsüberwachung zu verstehen. 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 es für jede Anwendung oder Software ein Gegenstück in der Cloud geben. Früher oder später stoßen Entwickler auf die Cloud. Informieren Sie sich daher über beliebte Cloud-Anbieter (AWS, Google Cloud und Azure) und die Grundlagen der Technologie.

10. Arbeiten mit der Datenbank

Alle aktuellen Projekte verwenden Datenbanken und Erfahrungen mit DBMS und SQL erleichtern den Einstieg. Lernen Sie, SQL-Abfragen zu schreiben, EXPLAIN zu verwenden und erfahren Sie, wie der Index funktioniert. Am einfachsten ist es, einen Kurs zu belegen. Sie können auch Ihre Postgres-Dokumentationsfähigkeiten üben und mit der Replikation experimentieren.

11. Verbessern Sie Ihre Soft Skills

Ein unerwartet ungewöhnlicher Punkt, aber nicht weniger wichtig. Seien Sie zunächst geduldig. Man gewöhnt sich schnell an Situationen wie „Repariere dein Eisen, du bist Programmierer“, aber du musst mental auf die Fristen für den Start neuer Projekte vorbereitet sein. Wenn Sie zwischen null und einem Jahr in der Programmierung sind und als Junior gelten, bereiten Sie sich auf Kritik vor und lernen Sie, diese zu akzeptieren. Die Codeüberprüfung durch einen Mentor ist oft ein schmerzhafter Prozess. Aber gleichzeitig ist die Fähigkeit, den eigenen Standpunkt zu verteidigen und konstruktiv zu argumentieren, eine zwingende Fähigkeit; manchmal entsteht die Wahrheit in einem Streit. Entwickler hören nie auf zu lernen, es gibt praktisch keine Obergrenze im Beruf, daher sind Lernfähigkeit und der Wunsch, neue Dinge zu lernen, die Grundlage Ihrer Entwicklung.

Fury Road: Die Reise des Abrechnungsentwicklers

Ich werde oft gefragt, wann ein Anfänger das mittlere Niveau erreicht und wann er stolz als „Senior“ bezeichnet werden kann. Ich glaube, dass der Zeitpunkt des Übergangs von einer Stufe zur nächsten nicht durch die Anzahl der geleisteten Arbeitsjahre bestimmt wird, obwohl praktische Fähigkeiten ein Schlüsselkriterium sind. Es sind gerade die Soft Skills, die oft über die Wachstumsgeschwindigkeit eines Entwicklers entscheiden: Ein ausgebildeter und fleißiger Anfänger kann in nur 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 Probleme zu lösen, ein Team zu leiten und verfügt über einseitige Fähigkeiten.

So sehe ich den Entwicklungsweg eines Abrechnungsentwicklers, so entwickeln wir qualifizierte Spezialisten in unserem Forward Telecom-Team. Scheint nichts zu vermissen, aber ich bin immer dankbar für hilfreiche Ergänzungen zu diesem Punkt.

Source: habr.com

Kommentar hinzufügen