Fury Road: The Billing Developer's Journey

De manager fan in bedriuw foar fakturearringûntwikkeling hat twa manieren om in team te bouwen. De earste is om klearebare "senioaren" te rekrutearjen en sokke arbeidsomstannichheden kontinu te meitsjen sadat se har feardigens en ûnderfining maksimaal brûke, ûntwikkelje en tagelyk net yn gefjochten komme. De twadde is om in team te meitsjen fan in miks fan nijkommers, mids en pros, sadat se kommunisearje, inoar beynfloedzje, leare en groeie binnen it bedriuw. Ik bin tsjin de vicieuze sirkel a la "gjin ûnderfining - gjin wurk - gjin ûnderfining" en ik sjoch gjin probleem yn it hieren fan in begjinnende ûntwikkelder. Forward Telecom hat lang in staazjeprogramma, dat is wurden in karriêre springplank foar in protte hjoeddeistige meiwurkers.

No sil ik jo fertelle hoe't ik it ûntwikkelingspaad sjoch fan in fakturearringûntwikkelder, en yn hokker folchoarder jo profesjonele feardigens moatte behearskje.

1. Learje in programmeartaal

Om te begjinnen, elkenien. De prioriteit is Java, Python en JavaScript, mar Ruby, Go, C, C ++ binne geskikt foar it krijen fan basiskennis. Hoe lesjaan? Nim betelle en fergese kursussen; Ik kin training fan Golang oanbefelje. As jo ​​​​Ingelsk nivo it talit, is it besjen fan bûtenlânske fideo's in goede ekstra feardigens.

Fury Road: The Billing Developer's Journey

2. Begryp OS begripen

Bestjoeringssystemen binne basearre op sân komponinten dy't jo witte moatte en it prinsipe fan wurking kinne ferklearje:

  • proses behear;
  • Threads en multithreaded koade;
  • Socket (software ynterface);
  • I/O-ferstjoering;
  • Virtualisaasje;
  • Opslach;
  • Bestânssystemen.

Ik advisearje om in basiskursus foar Linux-administraasje te nimmen. De twadde bestjoeringssystemen yn line binne Windows en Unix.

3. Wenne oan de terminal

Nei analogy mei de foby fan in leech blêd, is der in foby foar in leech swart skerm mei in knipperende rinnerke. Jo moatte it oerwinne om te learen hoe't jo goede kommando's skriuwe op 'e kommandorigel.
Moat witte:

  • Bash en KornShell skelpen;
  • Kommando's fine, grep, awk, sed, lsof;
  • Netwurk kommando's nslookup en netstat.

Fury Road: The Billing Developer's Journey

4. Netwurk en feiligens

Billing is nau besibbe oan easken foar netwurk- en gegevensbeskerming. Jo kinne gjin online tsjinsten skriuwe sûnder te begripen hoe't it netwurk wurket, dus jo moatte de basisbegripen en protokollen leare: DNS, OSI-model, HTTP, HTTPS, FTP, SSL, TLS. Dan, as jo in Connection Refused-flater tsjinkomme, sille jo witte wat te dwaan.

5. Tsjinners

Nei it bestudearjen fan de prinsipes fan ynformaasje oerdracht op it netwurk, kinne jo begjinne de basis fan tsjinner operaasje. Begjin mei webservers: IIS, Apache, Nginx, Caddy en Tomcat.

Folgjende op 'e list:

  • Reverse proxy;
  • Anonime proxy;
  • caching;
  • load balancing;
  • Firewall.

6. Learje ynfrastruktuer as koade

Ik leau dat dit poadium ien fan 'e wichtichste is. Jo moatte trije brede ûnderwerpen begripe:

  • Containers: Docker en Kubernetes
  • Tools foar konfiguraasjebehear: Ansible, Chef, Sâlt en Puppet
  • Reservekopy: Terraform, wolken.

7. Learje CI/CD

In oare nuttige feardigens foar in ûntwikkelder foar fakturearring is om in pipeline yn te stellen foar trochgeande yntegraasje en levering. Yn it CI / CD-gebiet binne d'r ark lykas Jenkins, TeamCity, Drone, Circle CI en oaren. Spoiler: it learen fan de breed brûkte Jenkins sil earst genôch wêze.

8. Software en ynfrastruktuer kontrôle

It wichtichste doel is om de basis fan tapassingsmonitoring te begripen. Tools yn dit gebiet binne ferdield yn trije groepen:

  • Ynfrastruktuermonitoring: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Monitoring fan applikaasjeprestaasjes: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Wolk tsjinsten

Yn 'e heine takomst sil elke applikaasje of software in wolk tsjinhinger hawwe. Ier of letter komme ûntwikkelders de wolk tsjin, dus lês op populêre wolkproviders (AWS, Google Cloud, en Azure) en de basis fan 'e technology.

10. Wurkje mei de databank

Alle hjoeddeistige projekten brûke databases, en ûnderfining mei DBMS en SQL sil it makliker meitsje om te begjinnen. Learje SQL-fragen te skriuwen, brûk útlizze en learje hoe't yndeks wurket. De maklikste manier is in kursus te nimmen. Jo kinne ek jo Postgres-dokumintaasjefeardigens oefenje en spielje mei replikaasje.

11. Ferbetterje jo sêfte feardichheden

In ûnferwachts bûtengewoane punt, mar net minder wichtich. Om te begjinnen, wês geduld. Jo wurde gau wend oan situaasjes lykas "fix jo izer, do bist in programmeur," mar jo moatte mentaal taret op de deadlines foar it lansearjen fan nije projekten. As jo ​​​​fan nul oant in jier binne yn programmearring en wurde beskôge as in Junior, tariede jo op krityk en learje it te akseptearjen, is koadebeoardieling troch in mentor faaks in pynlik proses. Mar tagelyk is in ferplichte feardigens de mooglikheid om syn eachpunt te ferdigenjen en konstruktyf te arguminten; soms wurdt de wierheid berne yn in argumint. Untwikkelders stopje noait mei learen, d'r is praktysk gjin plafond yn it berop, dus learfeardigens en de DESIRE om nije dingen te learen binne de basis fan jo ûntwikkeling.

Fury Road: The Billing Developer's Journey

Ik wurd faak frege wannear't in begjinner it middennivo berikt, en wannear't hy mei grutsk in "senior" kin wurde neamd. Ik leau dat it momint fan oergong fan nivo nei nivo net bepaald wurdt troch it oantal wurke jierren, hoewol praktyske feardichheden in wichtich kritearium binne. It is krekt sêfte feardigens dy't faaks de snelheid fan 'e groei fan in ûntwikkelder bepale: in oplaat en hurdwurkjende begjinner kin koade fan hege kwaliteit yn ferskate talen skriuwe en yn in pear moannen yn in team kinne wurkje. In ûntwikkelder mei 10 jier ûnderfining kin miskien net-standertproblemen oplosse, in team beheare en iensidige feardigens hawwe.

Dit is hoe't ik it ûntwikkelingspaad fan in fakturearringûntwikkelder sjoch, dit is hoe't wy kwalifisearre spesjalisten groeie yn ús Forward Telecom-team. It liket neat te missen, mar ik bin altyd tankber foar nuttige tafoegings op it punt.

Boarne: www.habr.com

Add a comment