Fury Road: Putovanje programera za naplatu

Menadžer kompanije za razvoj naplate ima dva načina da izgradi tim. Prvi je da se regrutuju gotovi „seniori“ i da se kontinuirano stvaraju takvi uslovi za rad da maksimalno iskoriste svoje veštine i iskustvo, da se razvijaju i da pri tome ne upadaju u tuče. Drugi je stvoriti tim od mješavine novopridošlih, srednjih i profesionalaca, tako da komuniciraju, utiču jedni na druge, uče i rastu unutar kompanije. Protiv sam začaranog kruga a la “bez iskustva – nema posla – nema iskustva” i ne vidim problem u angažovanju programera početnika. Forward Telecom već dugo ima program stažiranja, koji je mnogim sadašnjim zaposlenima postao odskočna daska u karijeri.

Sada ću vam reći kako ja vidim razvojni put programera za naplatu i kojim redoslijedom trebate ovladati profesionalnim vještinama.

1. Naučite programski jezik

Za početak, bilo ko. Prioritet je Java, Python i JavaScript, ali Ruby, Go, C, C++ su pogodni za sticanje osnovnih znanja. Kako podučavati? Idite na plaćene i besplatne kurseve; mogu preporučiti obuku na Golangu. Ako vam nivo engleskog jezika dozvoljava, gledanje stranih videa je dobra dodatna vještina.

Fury Road: Putovanje programera za naplatu

2. Razumjeti OS koncepte

Operativni sistemi se baziraju na sedam komponenti koje morate znati i znati objasniti princip rada:

  • Upravljanje procesima;
  • Niti i višenitni kod;
  • Socket (softverski interfejs);
  • I/O dispečiranje;
  • Virtualization;
  • Skladištenje;
  • Sistemi datoteka.

Preporučujem pohađanje osnovnog kursa administracije Linuxa. Drugi operativni sistemi u nizu su Windows i Unix.

3. Naviknite se na terminal

Po analogiji sa fobijom od praznog lista, postoji i fobija od praznog crnog ekrana sa trepćućim kursorom. Morat ćete to savladati da naučite kako pisati dobre komande na komandnoj liniji.
Mora znati:

  • Bash i KornShell školjke;
  • Komande find, grep, awk, sed, lsof;
  • Mrežne komande nslookup i netstat.

Fury Road: Putovanje programera za naplatu

4. Mreža i sigurnost

Naplata je usko povezana sa zahtjevima zaštite mreže i podataka. Ne možete pisati online usluge bez razumijevanja kako mreža funkcionira, tako da morate naučiti osnovne koncepte i protokole: DNS, OSI model, HTTP, HTTPS, FTP, SSL, TLS. Zatim, kada naiđete na grešku Connection Refused, znat ćete šta trebate učiniti.

5. Serveri

Nakon proučavanja principa prijenosa informacija na mreži, možete započeti s osnovama rada servera. Počnite s web serverima: IIS, Apache, Nginx, Caddy i Tomcat.

Sljedeće na listi:

  • Reverse proxy;
  • Anonymous proxy;
  • Caching;
  • Balansiranje opterećenja;
  • Firewall.

6. Naučite infrastrukturu kao kod

Smatram da je ova faza jedna od najvažnijih. Morat ćete razumjeti tri široke teme:

  • Kontejneri: Docker i Kubernetes
  • Alati za upravljanje konfiguracijom: Ansible, Chef, Salt i Puppet
  • Rezervna kopija: Terraform, oblaci.

7. Naučite CI/CD

Još jedna korisna vještina za programera naplate je da bude u stanju da postavi cevovod za kontinuiranu integraciju i isporuku. U CI/CD području postoje alati kao što su Jenkins, TeamCity, Drone, Circle CI i drugi. Spojler: učenje široko korištenog Jenkinsa će biti dovoljno na početku.

8. Kontrola softvera i infrastrukture

Ključni cilj je razumjeti osnove praćenja aplikacija. Alati u ovoj oblasti podijeljeni su u tri grupe:

  • Praćenje infrastrukture: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Praćenje performansi aplikacije: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Usluge u oblaku

U bliskoj budućnosti, svaka aplikacija ili softver će imati pandan u oblaku. Prije ili kasnije, programeri se susreću s oblakom, pa pročitajte o popularnim dobavljačima oblaka (AWS, Google Cloud i Azure) i osnovama tehnologije.

10. Rad sa bazom podataka

Svi trenutni projekti koriste baze podataka, a iskustvo sa DBMS-om i SQL-om će olakšati početak. Naučite pisati SQL upite, koristite objašnjenje i naučite kako funkcionira indeks. Najlakši način je pohađati kurs. Također možete vježbati svoje vještine izrade Postgres dokumentacije i igrati se replikacijom.

11. Poboljšajte svoje meke vještine

Neočekivano neobična tačka, ali ništa manje važna. Za početak budite strpljivi. Brzo se naviknete na situacije poput „popravi peglu, ti si programer“, ali morate biti psihički spremni za rokove za pokretanje novih projekata. Ako ste od nule do godinu dana u programiranju i smatrate se juniorom, pripremite se za kritiku i naučite je prihvatiti, pregled koda od strane mentora je često bolan proces. Ali u isto vrijeme, obavezna vještina je sposobnost da se brani svoje gledište i konstruktivno raspravlja; ponekad se istina rađa u svađi. Programeri nikada ne prestaju da uče, praktično ne postoji plafon u struci, tako da su sposobnost učenja i ŽELJA za učenjem novih stvari osnova vašeg razvoja.

Fury Road: Putovanje programera za naplatu

Često me pitaju kada početnik dostigne srednji nivo i kada se može s ponosom nazvati “senior”. Smatram da trenutak prelaska sa nivoa na nivo nije određen brojem godina rada, iako su praktične vještine ključni kriterij. Upravo meke vještine često određuju brzinu razvoja programera: obučen i vrijedan početnik može napisati visokokvalitetan kod na nekoliko jezika i biti sposoban raditi u timu za samo nekoliko mjeseci. Programer sa 10 godina iskustva možda neće biti u stanju da reši nestandardne probleme, da upravlja timom i da ima jednostrane veštine.

Ovako vidim razvojni put razvojnog programera za naplatu, tako uzgajamo kvalifikovane stručnjake u našem Forward Telecom timu. Čini se da mi ništa ne nedostaje, ali uvijek sam zahvalan na korisnim dodacima.

izvor: www.habr.com

Dodajte komentar