Fury Road: The Billing Developer's Journey

Ang manager ng isang billing development company ay may dalawang paraan para bumuo ng team. Ang una ay ang pag-recruit ng mga handa na "seniors" at patuloy na lumikha ng gayong mga kondisyon sa pagtatrabaho upang magamit nila ang kanilang mga kasanayan at karanasan sa maximum, umunlad at sa parehong oras ay hindi makikipag-away. Ang pangalawa ay lumikha ng isang koponan mula sa isang halo ng mga bagong dating, mids at pro, upang sila ay makipag-usap, maimpluwensyahan ang isa't isa, matuto at lumago sa loob ng kumpanya. Tutol ako sa mabisyo na bilog na "walang karanasan - walang trabaho - walang karanasan" at wala akong nakikitang problema sa pagkuha ng baguhan na developer. Matagal nang nagkaroon ng internship program ang Forward Telecom, na naging career springboard para sa maraming kasalukuyang empleyado.

Ngayon sasabihin ko sa iyo kung paano ko nakikita ang landas ng pag-unlad ng isang developer ng pagsingil, at sa anong pagkakasunud-sunod ang kailangan mo upang makabisado ang mga propesyonal na kasanayan.

1. Matuto ng programming language

Para sa mga nagsisimula, kahit sino. Ang priyoridad ay Java, Python at JavaScript, ngunit ang Ruby, Go, C, C++ ay angkop para sa pagkakaroon ng pangunahing kaalaman. Paano magturo? Kumuha ng mga bayad at libreng kurso; Maaari akong magrekomenda ng pagsasanay mula sa Golang. Kung pinapayagan ng iyong English level, ang panonood ng mga banyagang video ay isang magandang karagdagang kasanayan.

Fury Road: The Billing Developer's Journey

2. Unawain ang mga konsepto ng OS

Ang mga operating system ay batay sa pitong bahagi na kailangan mong malaman at maipaliwanag ang prinsipyo ng pagpapatakbo:

  • Pamamahala ng proseso;
  • Mga thread at multithreaded code;
  • Socket (interface ng software);
  • Pagpapadala ng I/O;
  • Virtualization;
  • Imbakan;
  • Mga sistema ng file.

Inirerekomenda ko ang pagkuha ng pangunahing kurso sa pangangasiwa ng Linux. Ang pangalawang operating system sa linya ay Windows at Unix.

3. Masanay sa terminal

Sa pamamagitan ng pagkakatulad sa phobia ng isang blangkong sheet, mayroong isang phobia ng isang blangko na itim na screen na may kumikislap na cursor. Kailangan mong malampasan ito upang matutunan kung paano magsulat ng magagandang command sa command line.
Dapat malaman:

  • Bash at KornShell shell;
  • Maghanap ng mga utos, grep, awk, sed, lsof;
  • Network commands nslookup at netstat.

Fury Road: The Billing Developer's Journey

4. Network at seguridad

Ang pagsingil ay malapit na nauugnay sa network at mga kinakailangan sa proteksyon ng data. Hindi ka makakasulat ng mga online na serbisyo nang hindi nauunawaan kung paano gumagana ang network, kaya kailangan mong matutunan ang mga pangunahing konsepto at protocol: DNS, modelo ng OSI, HTTP, HTTPS, FTP, SSL, TLS. Pagkatapos, kapag nakatagpo ka ng error na Tinanggihan ng Koneksyon, malalaman mo kung ano ang gagawin.

5. Mga server

Pagkatapos pag-aralan ang mga prinsipyo ng paghahatid ng impormasyon sa network, maaari mong simulan ang mga pangunahing kaalaman sa pagpapatakbo ng server. Magsimula sa mga web server: IIS, Apache, Nginx, Caddy at Tomcat.

Susunod sa listahan:

  • Baliktarin ang proxy;
  • Anonymous proxy;
  • Pag-cache;
  • Pagbalanse ng load;
  • Firewall.

6. Alamin ang imprastraktura bilang code

Naniniwala ako na ang yugtong ito ay isa sa pinakamahalaga. Kailangan mong maunawaan ang tatlong malawak na paksa:

  • Mga Container: Docker at Kubernetes
  • Mga tool sa pamamahala ng configuration: Ansible, Chef, Salt at Puppet
  • Backup: Terraform, ulap.

7. Matuto ng CI/CD

Ang isa pang kapaki-pakinabang na kasanayan para sa isang developer ng pagsingil ay ang makapag-set up ng pipeline para sa tuluy-tuloy na pagsasama at paghahatid. Sa lugar ng CI/CD mayroong mga tool tulad ng Jenkins, TeamCity, Drone, Circle CI at iba pa. Spoiler: Ang pag-aaral ng malawakang ginagamit na Jenkins ay sapat na sa simula.

8. Kontrol sa software at imprastraktura

Ang pangunahing layunin ay upang maunawaan ang mga pangunahing kaalaman sa pagsubaybay sa aplikasyon. Ang mga tool sa lugar na ito ay nahahati sa tatlong grupo:

  • Pagsubaybay sa imprastraktura: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Pagsubaybay sa performance ng application: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Mga serbisyo sa ulap

Sa malapit na hinaharap, ang bawat application o software ay magkakaroon ng cloud counterpart. Maaga o huli, makakatagpo ng cloud ang mga developer, kaya magbasa tungkol sa mga sikat na provider ng cloud (AWS, Google Cloud, at Azure) at ang mga pangunahing kaalaman sa teknolohiya.

10. Paggawa gamit ang database

Ang lahat ng kasalukuyang proyekto ay gumagamit ng mga database, at ang karanasan sa DBMS at SQL ay magpapadali sa pagsisimula. Matutong sumulat ng mga query sa SQL, gumamit ng ipaliwanag at matutunan kung paano gumagana ang index. Ang pinakamadaling paraan ay ang kumuha ng kurso. Maaari mo ring isagawa ang iyong mga kasanayan sa dokumentasyon ng Postgres at maglaro ng pagtitiklop.

11. Pagbutihin ang iyong mga soft skills

Isang hindi inaasahang hindi pangkaraniwang punto, ngunit hindi gaanong mahalaga. Upang magsimula sa, maging matiyaga. Mabilis kang masanay sa mga sitwasyon tulad ng "ayusin mo ang iyong bakal, programmer ka," ngunit kailangan mong maging handa sa pag-iisip para sa mga deadline para sa paglulunsad ng mga bagong proyekto. Kung ikaw ay mula zero hanggang isang taon sa programming at itinuturing na isang Junior, maghanda para sa pagpuna at matutong tanggapin ito, ang pagsusuri ng code ng isang tagapagturo ay kadalasang isang masakit na proseso. Ngunit sa parehong oras, ang isang ipinag-uutos na kasanayan ay ang kakayahang ipagtanggol ang pananaw ng isang tao at makipagtalo nang maayos; kung minsan ang katotohanan ay ipinanganak sa isang argumento. Ang mga developer ay hindi tumitigil sa pag-aaral, halos walang kisame sa propesyon, kaya ang kakayahang matuto at ang PAGHAHANGAD na matuto ng mga bagong bagay ang batayan ng iyong pag-unlad.

Fury Road: The Billing Developer's Journey

Madalas akong tinatanong kung ang isang baguhan ay umabot sa gitnang antas, at kung kailan siya maipagmamalaki na matatawag na "senior". Naniniwala ako na ang sandali ng paglipat mula sa antas patungo sa antas ay hindi tinutukoy ng bilang ng mga taon na nagtrabaho, bagama't ang mga praktikal na kasanayan ay isang pangunahing pamantayan. Ito ay tiyak na malambot na mga kasanayan na madalas na tumutukoy sa bilis ng paglago ng isang developer: ang isang sinanay at masipag na baguhan ay maaaring magsulat ng mataas na kalidad na code sa ilang mga wika at magagawang magtrabaho sa isang koponan sa loob lamang ng ilang buwan. Maaaring hindi malutas ng isang developer na may 10 taong karanasan ang hindi karaniwang mga problema, pamahalaan ang isang team, at magkaroon ng isang panig na kasanayan.

Ito ay kung paano ko nakikita ang landas ng pag-unlad ng isang developer ng pagsingil, ito ay kung paano namin palaguin ang mga kwalipikadong espesyalista sa aming Forward Telecom team. Mukhang walang nawawala, ngunit palagi akong nagpapasalamat sa mga nakakatulong na karagdagan sa punto.

Pinagmulan: www.habr.com

Magdagdag ng komento