Put bijesa: Put razvojnog programera naplate

Voditelj tvrtke za razvoj naplate ima dva načina za izgradnju tima. Prvi je regrutirati gotove “seniore” i kontinuirano stvarati takve uvjete za rad da maksimalno koriste svoje vještine i iskustvo, razvijaju se i pritom ne ulaze u svađe. Drugi je stvoriti tim od mješavine pridošlica, srednjih i profesionalaca, tako da komuniciraju, utječu jedni na druge, uče i rastu unutar tvrtke. Protivnik sam začaranog kruga a la "bez iskustva - bez posla - bez iskustva" i ne vidim problem u angažiranju programera početnika. Forward Telecom već dugo ima pripravnički program, koji je mnogim sadašnjim zaposlenicima postao odskočna daska u karijeri.

Sada ću vam reći kako vidim razvojni put programera za naplatu i kojim redoslijedom trebate svladati profesionalne vještine.

1. Naučite programski jezik

Za početak, bilo tko. Prioritet su Java, Python i JavaScript, ali Ruby, Go, C, C++ pogodni su za stjecanje osnovnih znanja. Kako poučavati? Pohađajte plaćene i besplatne tečajeve; mogu vam preporučiti obuku iz Golanga. Ako vam razina engleskog dopušta, gledanje stranih videa dobra je dodatna vještina.

Put bijesa: Put razvojnog programera naplate

2. Razumjeti koncepte OS-a

Operativni sustavi temelje se na sedam komponenti koje morate znati i znati objasniti princip rada:

  • Procesno upravljanje;
  • Niti i višenitni kod;
  • Utičnica (softversko sučelje);
  • I/O dispečiranje;
  • Virtualizacija;
  • Skladištenje;
  • Datotečni sustavi.

Preporučam pohađanje osnovnog tečaja administracije Linuxa. Drugi operativni sustavi po redu su Windows i Unix.

3. Naviknite se na terminal

Po analogiji s fobijom od praznog lista, postoji fobija od praznog crnog ekrana s trepćućim kursorom. Morat ćete to prevladati kako biste naučili pisati dobre naredbe u naredbenom retku.
Mora znati:

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

Put bijesa: Put razvojnog programera naplate

4. Mreža i sigurnost

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

5. Poslužitelji

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

Sljedeći na popisu:

  • Obrnuti proxy;
  • Anonimni proxy;
  • Predmemoriranje;
  • Balansiranje opterećenja;
  • Vatrozid.

6. Naučite infrastrukturu kao kod

Vjerujem 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
  • Sigurnosna kopija: Terraform, oblaci.

7. Naučite CI/CD

Još jedna korisna vještina za programera naplate je sposobnost postavljanja cjevovoda za kontinuiranu integraciju i isporuku. U CI/CD području postoje alati kao što su Jenkins, TeamCity, Drone, Circle CI i drugi. Spoiler: učenje široko korištenog Jenkinsa bit će dovoljno u početku.

8. Kontrola softvera i infrastrukture

Ključni cilj je razumjeti osnove nadzora aplikacija. Alati u ovom području podijeljeni su u tri skupine:

  • 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 će budućnosti svaka aplikacija ili softver imati svoj pandan u oblaku. Prije ili kasnije, programeri se susreću s oblakom, stoga pročitajte o popularnim pružateljima usluga oblaka (AWS, Google Cloud i Azure) i osnovama tehnologije.

10. Rad s bazom podataka

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

11. Poboljšajte svoje meke vještine

Neočekivano nesvakidašnja točka, ali ništa manje važna. Za početak budite strpljivi. Brzo se naviknete na situacije tipa “popravi peglu, ti si programer”, ali treba se psihički pripremiti za rokove za pokretanje novih projekata. Ako ste od nula do godinu dana u programiranju i smatrate se Juniorom, pripremite se na kritiku i naučite je prihvatiti, mentorski pregled koda često je bolan proces. Ali u isto vrijeme, obvezna vještina je sposobnost obrane vlastitog stajališta i konstruktivnog raspravljanja; ponekad se istina rađa u svađi. Programeri nikada ne prestaju učiti, u profesiji praktički nema gornje granice, stoga su sposobnost učenja i ŽELJA za učenjem novih stvari osnova vašeg razvoja.

Put bijesa: Put razvojnog programera naplate

Često me pitaju kada početnik dolazi do srednje razine, a kada se s ponosom može zvati “senior”. Smatram da trenutak prijelaza s razine na razinu nije određen brojem godina rada, iako su praktične vještine ključni kriterij. Upravo su meke vještine te koje često određuju brzinu razvoja programera: obučen i vrijedan početnik može napisati visokokvalitetni kod na nekoliko jezika i moći će raditi u timu u samo nekoliko mjeseci. Programer s 10 godina iskustva možda neće moći riješiti nestandardne probleme, upravljati timom i imati jednostrane vještine.

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

Izvor: www.habr.com

Dodajte komentar