Fury Road: de reis van de factureringsontwikkelaar

De manager van een factureringsontwikkelingsbedrijf kan op twee manieren een team samenstellen. De eerste is het rekruteren van kant-en-klare ‘senioren’ en het voortdurend creëren van dergelijke arbeidsomstandigheden, zodat zij hun vaardigheden en ervaring maximaal kunnen gebruiken, zich kunnen ontwikkelen en tegelijkertijd niet in gevechten terechtkomen. De tweede is het creëren van een team uit een mix van nieuwkomers, middenklassers en professionals, zodat ze communiceren, elkaar beïnvloeden, leren en groeien binnen het bedrijf. Ik ben tegen de vicieuze cirkel van “geen ervaring – geen werk – geen ervaring” en ik zie geen probleem bij het inhuren van een beginnende ontwikkelaar. Forward Telecom kent al geruime tijd een stageprogramma, dat voor veel huidige medewerkers een springplank is geworden voor hun carrière.

Nu zal ik je vertellen hoe ik het ontwikkelingspad van een factureringsontwikkelaar zie, en in welke volgorde je professionele vaardigheden onder de knie moet krijgen.

1. Leer een programmeertaal

Om te beginnen, iedereen. De prioriteit ligt bij Java, Python en JavaScript, maar Ruby, Go, C, C++ zijn geschikt om basiskennis op te doen. Hoe lesgeven? Volg betaalde en gratis cursussen; ik kan training van Golang aanbevelen. Als je Engelse niveau het toelaat, is het bekijken van buitenlandse video's een goede aanvullende vaardigheid.

Fury Road: de reis van de factureringsontwikkelaar

2. Begrijp OS-concepten

Besturingssystemen zijn gebaseerd op zeven componenten die u moet kennen en het werkingsprincipe moet kunnen uitleggen:

  • Procesmanagement;
  • Threads en multithreaded code;
  • Socket (software-interface);
  • I/O-verzending;
  • Virtualisatie;
  • Opslag;
  • Bestandssystemen.

Ik raad aan om een ​​basiscursus Linux-beheer te volgen. De tweede besturingssystemen in de rij zijn Windows en Unix.

3. Wen aan de terminal

Naar analogie met de fobie van een leeg vel, is er een fobie van een leeg zwart scherm met een knipperende cursor. U zult dit moeten overwinnen om te leren hoe u goede opdrachten op de opdrachtregel kunt schrijven.
Moet weten:

  • Bash- en KornShell-shells;
  • Commando's find, grep, awk, sed, lsof;
  • Netwerkopdrachten nslookup en netstat.

Fury Road: de reis van de factureringsontwikkelaar

4. Netwerk en beveiliging

Facturering hangt nauw samen met netwerk- en gegevensbeschermingsvereisten. U kunt geen online services schrijven zonder te begrijpen hoe het netwerk werkt, dus u moet de basisconcepten en protocollen leren: DNS, OSI-model, HTTP, HTTPS, FTP, SSL, TLS. Wanneer u vervolgens de foutmelding Verbinding geweigerd tegenkomt, weet u wat u moet doen.

5. Servers

Nadat u de principes van informatieoverdracht op het netwerk heeft bestudeerd, kunt u beginnen met de basisprincipes van de werking van de server. Begin met webservers: IIS, Apache, Nginx, Caddy en Tomcat.

Verderop in de lijst:

  • Omgekeerde proxy;
  • Anonieme proxy;
  • Caching;
  • Belastingverdeling;
  • Firewall.

6. Leer infrastructuur als code

Ik geloof dat deze fase een van de belangrijkste is. U zult drie brede onderwerpen moeten begrijpen:

  • Containers: Docker en Kubernetes
  • Hulpmiddelen voor configuratiebeheer: Ansible, Chef, Salt en Puppet
  • Back-up: Terraform, wolken.

7. Leer CI/CD

Een andere nuttige vaardigheid voor een factureringsontwikkelaar is het kunnen opzetten van een pijplijn voor continue integratie en levering. Op CI/CD-gebied zijn er tools zoals Jenkins, TeamCity, Drone, Circle CI en anderen. Spoiler: het leren kennen van de veelgebruikte Jenkins zal in eerste instantie voldoende zijn.

8. Beheer van software en infrastructuur

Het belangrijkste doel is om de basisprincipes van applicatiemonitoring te begrijpen. Hulpmiddelen op dit gebied zijn onderverdeeld in drie groepen:

  • Infrastructuurmonitoring: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Monitoring van applicatieprestaties: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Clouddiensten

In de nabije toekomst zal elke applicatie of software een cloud-tegenhanger hebben. Vroeg of laat komen ontwikkelaars in aanraking met de cloud, dus lees meer over populaire cloudproviders (AWS, Google Cloud en Azure) en de basisprincipes van de technologie.

10. Werken met de database

Alle huidige projecten maken gebruik van databases en ervaring met DBMS en SQL maakt het gemakkelijker om aan de slag te gaan. Leer SQL-query's schrijven, gebruik uitleg en leer hoe index werkt. De makkelijkste manier is om een ​​cursus te volgen. U kunt ook uw Postgres-documentatievaardigheden oefenen en spelen met replicatie.

11. Verbeter je zachte vaardigheden

Een onverwacht ongewoon punt, maar daarom niet minder belangrijk. Om te beginnen: wees geduldig. Je went snel aan situaties als ‘repareer je strijkijzer, je bent een programmeur’, maar je moet mentaal voorbereid zijn op de deadlines voor het lanceren van nieuwe projecten. Als je tussen nul en een jaar programmeert en als Junior wordt beschouwd, bereid je dan voor op kritiek en leer deze te accepteren, codebeoordeling door een mentor is vaak een pijnlijk proces. Maar tegelijkertijd is een verplichte vaardigheid het vermogen om je standpunt te verdedigen en constructief te argumenteren; soms komt de waarheid voort uit een argument. Ontwikkelaars zijn nooit uitgeleerd, er is vrijwel geen plafond in het vak, dus leervermogen en de VERLANGEN om nieuwe dingen te leren vormen de basis van jouw ontwikkeling.

Fury Road: de reis van de factureringsontwikkelaar

Vaak wordt mij gevraagd wanneer een beginner het middenniveau bereikt, en wanneer hij met trots een “senior” genoemd mag worden. Ik ben van mening dat het moment van overgang van niveau naar niveau niet wordt bepaald door het aantal gewerkte jaren, hoewel praktische vaardigheden een belangrijk criterium zijn. Het zijn juist soft skills die vaak de snelheid van de groei van een ontwikkelaar bepalen: een getrainde en hardwerkende beginner kan hoogwaardige code in meerdere talen schrijven en binnen een paar maanden in teamverband kunnen werken. Een ontwikkelaar met 10 jaar ervaring is mogelijk niet in staat om niet-standaard problemen op te lossen, een team te beheren en over eenzijdige vaardigheden te beschikken.

Zo zie ik het ontwikkelingstraject van een billing developer, zo groeien we naar gekwalificeerde specialisten in ons Forward Telecom team. Het lijkt erop dat ik niets heb gemist, maar ik ben altijd dankbaar voor nuttige toevoegingen ter zake.

Bron: www.habr.com

Voeg een reactie