Fury Road: Billing Developer's Journey

Norēķinu izstrādes uzņēmuma vadītājam ir divi veidi, kā izveidot komandu. Pirmais ir savervēt gatavus “seniorus” un nepārtraukti radīt tādus darba apstākļus, lai viņi maksimāli izmantotu savas prasmes un pieredzi, attīstītos un tajā pašā laikā neieslīgtu kautiņos. Otrais ir izveidot komandu no jaunpienācējiem, vidējiem un profesionāļiem, lai viņi sazinātos, ietekmētu viens otru, mācītos un augtu uzņēmumā. Es esmu pret apburto loku “nav pieredzes – nav darba – nav pieredzes” un neredzu problēmu pieņemt darbā iesācēju izstrādātāju. Forward Telecom jau sen ir bijusi prakses programma, kas kļuvusi par karjeras tramplīnu daudziem pašreizējiem darbiniekiem.

Tagad es jums pastāstīšu, kā es redzu norēķinu izstrādātāja attīstības ceļu un kādā secībā jums ir jāapgūst profesionālās prasmes.

1. Apgūstiet programmēšanas valodu

Iesācējiem jebkurš. Prioritāte ir Java, Python un JavaScript, bet Ruby, Go, C, C++ ir piemēroti pamatzināšanu iegūšanai. Kā mācīt? Apmeklējiet maksas un bezmaksas kursus; es varu ieteikt apmācību no Golangas. Ja angļu valodas līmenis atļauj, ārzemju video skatīšanās ir laba papildus prasme.

Fury Road: Billing Developer's Journey

2. Izprast OS jēdzienus

Operētājsistēmu pamatā ir septiņi komponenti, kas jums jāzina un jāprot izskaidrot darbības principu:

  • Procesu vadība;
  • Pavedieni un daudzpavedienu kods;
  • Socket (programmatūras interfeiss);
  • I/O dispečerēšana;
  • Virtualizācija;
  • Uzglabāšana;
  • Failu sistēmas.

Iesaku apgūt pamata Linux administrēšanas kursu. Otrās operētājsistēmas rindā ir Windows un Unix.

3. Pierod pie termināļa

Pēc analoģijas ar tukšas lapas fobiju pastāv fobija no tukša melna ekrāna ar mirgojošu kursoru. Jums tas būs jāpārvar, lai iemācītos rakstīt labas komandas komandrindā.
Jāzina:

  • Bash un KornShell čaumalas;
  • Komandas find, grep, awk, sed, lsof;
  • Tīkla komandas nslookup un netstat.

Fury Road: Billing Developer's Journey

4. Tīkls un drošība

Norēķini ir cieši saistīti ar tīkla un datu aizsardzības prasībām. Jūs nevarat rakstīt tiešsaistes pakalpojumus, nesaprotot, kā darbojas tīkls, tāpēc jums ir jāapgūst pamatjēdzieni un protokoli: DNS, OSI modelis, HTTP, HTTPS, FTP, SSL, TLS. Pēc tam, saskaroties ar kļūdu Connection Refused, jūs zināt, kā rīkoties.

5. Serveri

Izpētījis informācijas pārraides principus tīklā, varat sākt servera darbības pamatus. Sāciet ar tīmekļa serveriem: IIS, Apache, Nginx, Caddy un Tomcat.

Nākamais sarakstā:

  • Reversais starpniekserveris;
  • Anonīms starpniekserveris;
  • Kešatmiņa;
  • Slodzes balansēšana;
  • Ugunsmūris.

6. Apgūstiet infrastruktūru kā kodu

Uzskatu, ka šis posms ir viens no svarīgākajiem. Jums būs jāsaprot trīs plašas tēmas:

  • Konteineri: Docker un Kubernetes
  • Konfigurācijas pārvaldības rīki: Ansible, Chef, Salt un Puppet
  • Dublējums: Terraforma, mākoņi.

7. Apgūstiet CI/CD

Vēl viena noderīga iemaņa norēķinu izstrādātājam ir spēja izveidot nepārtrauktu integrāciju un piegādi. CI/CD apgabalā ir tādi rīki kā Jenkins, TeamCity, Drone, Circle CI un citi. Spoileris: sākumā pietiks apgūt plaši izmantoto Dženkinsu.

8. Programmatūras un infrastruktūras kontrole

Galvenais mērķis ir izprast lietojumprogrammu uzraudzības pamatus. Rīki šajā jomā ir sadalīti trīs grupās:

  • Infrastruktūras uzraudzība: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Lietojumprogrammu veiktspējas uzraudzība: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Mākoņpakalpojumi

Tuvākajā nākotnē katrai lietojumprogrammai vai programmatūrai būs mākoņa ekvivalents. Agrāk vai vēlāk izstrādātāji saskaras ar mākoni, tāpēc izlasiet informāciju par populārajiem mākoņa pakalpojumu sniedzējiem (AWS, Google Cloud un Azure) un tehnoloģiju pamatiem.

10. Darbs ar datu bāzi

Visi pašreizējie projekti izmanto datu bāzes, un pieredze ar DBVS un SQL atvieglos darba sākšanu. Iemācieties rakstīt SQL vaicājumus, izmantojiet skaidrojumu un uzziniet, kā darbojas indekss. Vienkāršākais veids ir iziet kursu. Varat arī praktizēt savas Postgres dokumentēšanas prasmes un spēlēt ar replikāciju.

11. Uzlabojiet savas mīkstās prasmes

Negaidīti neparasts punkts, bet ne mazāk svarīgs. Lai sāktu, esiet pacietīgs. Jūs ātri pierodat pie tādām situācijām kā "salabojiet gludekli, jūs esat programmētājs", taču jums ir jābūt garīgi sagatavotam jaunu projektu uzsākšanas termiņiem. Ja programmēšanas jomā esi no nulles līdz gadam un tiek uzskatīts par junioru, sagatavojies kritikai un mācies to pieņemt, koda pārskatīšana, ko veic mentors, bieži vien ir sāpīgs process. Taču tajā pašā laikā obligāta prasme ir spēja aizstāvēt savu viedokli un konstruktīvi argumentēt, dažreiz strīdā dzimst patiesība. Izstrādātāji nekad nepārstāj mācīties, profesijā griestu praktiski nav, tāpēc mācīšanās spējas un VĒLME apgūt jaunas lietas ir Tavas attīstības pamatā.

Fury Road: Billing Developer's Journey

Man bieži jautā, kad iesācējs sasniedz vidējo līmeni un kad viņu var lepni saukt par “senioru”. Uzskatu, ka pārejas brīdi no līmeņa uz līmeni nenosaka nostrādāto gadu skaits, lai gan praktiskās iemaņas ir galvenais kritērijs. Tieši mīkstās prasmes bieži nosaka izstrādātāja izaugsmes ātrumu: apmācīts un strādīgs iesācējs var uzrakstīt kvalitatīvu kodu vairākās valodās un var strādāt komandā jau dažu mēnešu laikā. Izstrādātājs ar 10 gadu pieredzi var nespēt atrisināt nestandarta problēmas, vadīt komandu un viņam ir vienpusīgas prasmes.

Tā es redzu norēķinu izstrādātāja attīstības ceļu, tā mēs savā Forward Telecom komandā izaudzējam kvalificētus speciālistus. Šķiet, ka nekas netrūkst, bet es vienmēr esmu pateicīgs par noderīgiem papildinājumiem.

Avots: www.habr.com

Pievieno komentāru