Fury Road: The Billing Developer's Journey

Chefen för ett faktureringsutvecklingsföretag har två sätt att bygga ett team. Det första är att rekrytera färdiga ”seniorer” och kontinuerligt skapa sådana arbetsförhållanden så att de utnyttjar sin kompetens och erfarenhet maximalt, utvecklas och samtidigt inte hamnar i slagsmål. Det andra är att skapa ett team från en blandning av nykomlingar, mellanklass och proffs, så att de kommunicerar, påverkar varandra, lär sig och växer inom företaget. Jag är emot den onda cirkeln a la "ingen erfarenhet - inget arbete - ingen erfarenhet" och jag ser inga problem med att anställa en nybörjarutvecklare. Forward Telecom har länge haft ett praktikprogram, vilket har blivit en språngbräda för många nuvarande anställda.

Nu ska jag berätta hur jag ser på utvecklingsvägen för en faktureringsutvecklare, och i vilken ordningsföljd du behöver för att behärska professionella färdigheter.

1. Lär dig ett programmeringsspråk

Till att börja med, vem som helst. Prioriteringen är Java, Python och JavaScript, men Ruby, Go, C, C++ är lämpliga för att få grundläggande kunskaper. Hur undervisar man? Ta betalda och gratis kurser; jag kan rekommendera träning från Golang. Om din engelska nivå tillåter är det en bra ytterligare färdighet att titta på utländska videor.

Fury Road: The Billing Developer's Journey

2. Förstå OS-koncept

Operativsystem bygger på sju komponenter som du behöver känna till och kunna förklara funktionsprincipen:

  • Processledning;
  • Trådar och flertrådad kod;
  • Socket (mjukvarugränssnitt);
  • I/O-sändning;
  • Virtualisering;
  • Lagring;
  • Filsystem.

Jag rekommenderar att du tar en grundläggande Linux-administrationskurs. De andra operativsystemen i rad är Windows och Unix.

3. Vänj dig vid terminalen

I analogi med fobi för ett tomt ark, finns det en fobi för en tom svart skärm med en blinkande markör. Du måste övervinna det för att lära dig hur man skriver bra kommandon på kommandoraden.
Måste veta:

  • Bash och KornShell skal;
  • Kommandon find, grep, awk, sed, lsof;
  • Nätverkskommandon nslookup och netstat.

Fury Road: The Billing Developer's Journey

4. Nätverk och säkerhet

Fakturering är nära relaterat till nätverks- och dataskyddskrav. Du kan inte skriva onlinetjänster utan att förstå hur nätverket fungerar, så du måste lära dig de grundläggande begreppen och protokollen: DNS, OSI-modell, HTTP, HTTPS, FTP, SSL, TLS. När du sedan stöter på ett anslutningsfel, vet du vad du ska göra.

5. Servrar

Efter att ha studerat principerna för informationsöverföring på nätverket kan du börja grunderna för serverdrift. Börja med webbservrar: IIS, Apache, Nginx, Caddy och Tomcat.

Längre ner på listan:

  • Omvänd proxy;
  • Anonym Proxy;
  • Cachning;
  • Lastbalansering;
  • Brandvägg.

6. Lär dig infrastruktur som kod

Jag tror att denna etapp är en av de viktigaste. Du måste förstå tre breda ämnen:

  • Containers: Docker och Kubernetes
  • Konfigurationshanteringsverktyg: Ansible, Chef, Salt och Puppet
  • Backup: Terraform, moln.

7. Lär dig CI/CD

En annan användbar färdighet för en faktureringsutvecklare är att kunna sätta upp en pipeline för kontinuerlig integration och leverans. Inom CI/CD-området finns verktyg som Jenkins, TeamCity, Drone, Circle CI och andra. Spoiler: att lära sig den mycket använda Jenkins kommer att räcka till en början.

8. Kontroll av programvara och infrastruktur

Huvudmålet är att förstå grunderna för applikationsövervakning. Verktyg inom detta område är indelade i tre grupper:

  • Infrastrukturövervakning: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Övervakning av applikationsprestanda: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Molntjänster

Inom en snar framtid kommer varje applikation eller programvara att ha en molnmotsvarighet. Förr eller senare möter utvecklare molnet, så läs om populära molnleverantörer (AWS, Google Cloud och Azure) och grunderna i tekniken.

10. Arbeta med databasen

Alla pågående projekt använder databaser och erfarenhet av DBMS och SQL kommer att göra det lättare att komma igång. Lär dig att skriva SQL-frågor, använd förklara och lär dig hur index fungerar. Det enklaste sättet är att gå en kurs. Du kan också öva på dina Postgres-dokumentationsfärdigheter och leka med replikering.

11. Förbättra dina mjuka färdigheter

En punkt utöver det vanliga, men inte mindre viktig. Till att börja med, ha tålamod. Du vänjer dig snabbt vid situationer som "fixa ditt strykjärn, du är en programmerare", men du måste vara mentalt förberedd på deadlines för att lansera nya projekt. Om du är från noll till ett år i programmering och anses vara en Junior, förbered dig på kritik och lär dig acceptera den, är kodgranskning av en mentor ofta en smärtsam process. Men samtidigt är en obligatorisk färdighet förmågan att försvara sin åsikt och argumentera konstruktivt; ibland föds sanningen i ett argument. Utvecklare slutar aldrig lära sig, det finns praktiskt taget inget tak i yrket, så inlärningsförmåga och LUSTA att lära sig nya saker är grunden för din utveckling.

Fury Road: The Billing Developer's Journey

Jag får ofta frågan när en nybörjare når medelnivån och när han stolt kan kallas "senior". Jag tror att övergångsögonblicket från nivå till nivå inte bestäms av antalet arbetade år, även om praktiska färdigheter är ett nyckelkriterium. Det är just mjuka färdigheter som ofta avgör hastigheten för en utvecklares tillväxt: en tränad och hårt arbetande nybörjare kan skriva högkvalitativ kod på flera språk och kunna arbeta i ett team på bara några månader. En utvecklare med 10 års erfarenhet kanske inte kan lösa icke-standardiserade problem, hantera ett team och ha ensidig kompetens.

Det är så jag ser på utvecklingsvägen för en faktureringsutvecklare, det är så vi odlar kvalificerade specialister i vårt Forward Telecom-team. Verkar inte sakna något, men jag är alltid tacksam för användbara tillägg till saken.

Källa: will.com

Lägg en kommentar