Fury Road: The Billing Developer's Journey

Lederen for et faktureringsutviklingsselskap har to måter å bygge et team på. Den første er å rekruttere ferdige «seniorer» og kontinuerlig skape slike arbeidsforhold slik at de bruker ferdighetene og erfaringene sine maksimalt, utvikler seg og samtidig ikke havner i slagsmål. Det andre er å skape et team fra en blanding av nykommere, mellom- og proffe, slik at de kommuniserer, påvirker hverandre, lærer og vokser i selskapet. Jeg er imot den onde sirkelen a la "ingen erfaring - ingen arbeid - ingen erfaring" og jeg ser ikke noe problem med å ansette en nybegynnerutvikler. Forward Telecom har lenge hatt et praksisprogram, som har blitt et karrierespringbrett for mange nåværende ansatte.

Nå skal jeg fortelle deg hvordan jeg ser utviklingsveien til en faktureringsutvikler, og i hvilken rekkefølge du trenger for å mestre profesjonelle ferdigheter.

1. Lær deg et programmeringsspråk

Til å begynne med, hvem som helst. Prioriteten er Java, Python og JavaScript, men Ruby, Go, C, C++ egner seg for å få grunnleggende kunnskap. Hvordan undervise? Ta betalte og gratis kurs; jeg kan anbefale trening fra Golang. Hvis engelsknivået ditt tillater det, er det en god tilleggsferdighet å se utenlandske videoer.

Fury Road: The Billing Developer's Journey

2. Forstå OS-konsepter

Operativsystemer er basert på syv komponenter som du trenger å kjenne til og kunne forklare driftsprinsippet:

  • Prosessledelse;
  • Tråder og flertrådskode;
  • Socket (programvaregrensesnitt);
  • I/O-sending;
  • Virtualisering;
  • Oppbevaring;
  • Filsystemer.

Jeg anbefaler å ta et grunnleggende Linux-administrasjonskurs. De andre operativsystemene på rad er Windows og Unix.

3. Bli vant til terminalen

I analogi med fobien for et blankt ark, er det en fobi for en tom svart skjerm med en blinkende markør. Du må overvinne det for å lære å skrive gode kommandoer på kommandolinjen.
Må vite:

  • Bash og KornShell skjell;
  • Kommandoer find, grep, awk, sed, lsof;
  • Nettverkskommandoer nslookup og netstat.

Fury Road: The Billing Developer's Journey

4. Nettverk og sikkerhet

Fakturering er nært knyttet til nettverks- og databeskyttelseskrav. Du kan ikke skrive nettjenester uten å forstå hvordan nettverket fungerer, så du må lære deg de grunnleggende konseptene og protokollene: DNS, OSI-modell, HTTP, HTTPS, FTP, SSL, TLS. Deretter, når du støter på en Connection Refused-feil, vet du hva du skal gjøre.

5. Servere

Etter å ha studert prinsippene for informasjonsoverføring på nettverket, kan du begynne det grunnleggende om serverdrift. Start med webservere: IIS, Apache, Nginx, Caddy og Tomcat.

Neste på listen:

  • Omvendt proxy;
  • Anonym proxy;
  • Caching;
  • Lastbalansering;
  • Brannmur.

6. Lær infrastruktur som kode

Jeg tror at denne fasen er en av de viktigste. Du må forstå tre brede emner:

  • Containere: Docker og Kubernetes
  • Konfigurasjonsadministrasjonsverktøy: Ansible, Chef, Salt og Puppet
  • Backup: Terraform, skyer.

7. Lær CI/CD

En annen nyttig ferdighet for en faktureringsutvikler er å kunne sette opp en pipeline for kontinuerlig integrasjon og levering. I CI/CD-området er det verktøy som Jenkins, TeamCity, Drone, Circle CI og andre. Spoiler: å lære den mye brukte Jenkins vil være nok til å begynne med.

8. Programvare og infrastrukturkontroll

Hovedmålet er å forstå det grunnleggende om applikasjonsovervåking. Verktøy i dette området er delt inn i tre grupper:

  • Infrastrukturovervåking: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Overvåking av applikasjonsytelse: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Skytjenester

I nær fremtid vil hver applikasjon eller programvare ha en sky-motpart. Før eller siden møter utviklere skyen, så les deg opp om populære skyleverandører (AWS, Google Cloud og Azure) og det grunnleggende om teknologien.

10. Arbeide med databasen

Alle aktuelle prosjekter bruker databaser, og erfaring med DBMS og SQL vil gjøre det enklere å komme i gang. Lær å skrive SQL-spørringer, bruk forklaring og lær hvordan indeks fungerer. Den enkleste måten er å ta et kurs. Du kan også øve på Postgres dokumentasjonsferdigheter og leke med replikering.

11. Forbedre dine myke ferdigheter

Et uventet poeng utenom det vanlige, men ikke mindre viktig. Til å begynne med, vær tålmodig. Du blir raskt vant til situasjoner som «fiks jernet ditt, du er en programmerer», men du må være mentalt forberedt på tidsfristene for å lansere nye prosjekter. Hvis du er fra null til et år i programmering og regnes som Junior, forberede deg på kritikk og lære å akseptere den, er kodegjennomgang av en mentor ofte en smertefull prosess. Men samtidig er en obligatorisk ferdighet evnen til å forsvare ens synspunkt og argumentere konstruktivt; noen ganger er sannheten født i et argument. Utviklere slutter aldri å lære, det er praktisk talt ingen tak i yrket, så læringsevne og ØNSKE om å lære nye ting er grunnlaget for utviklingen din.

Fury Road: The Billing Developer's Journey

Jeg blir ofte spurt når en nybegynner når mellomnivået, og når han stolt kan kalles en "senior". Jeg mener at overgangsøyeblikket fra nivå til nivå ikke bestemmes av antall år arbeidet, selv om praktiske ferdigheter er et sentralt kriterium. Det er nettopp myke ferdigheter som ofte bestemmer hastigheten på en utvikleres vekst: en trent og hardtarbeidende nybegynner kan skrive høykvalitetskode på flere språk og være i stand til å jobbe i et team på bare noen få måneder. En utvikler med 10 års erfaring kan være ute av stand til å løse ikke-standard problemer, administrere et team og ha ensidige ferdigheter.

Dette er hvordan jeg ser utviklingsveien til en faktureringsutvikler, dette er hvordan vi vokser kvalifiserte spesialister i vårt Forward Telecom-team. Ser ikke ut til å mangle noe, men jeg er alltid takknemlig for nyttige tillegg til poenget.

Kilde: www.habr.com

Legg til en kommentar