Дарога лютасьці: шлях распрацоўніка білінгу

У кіраўніка кампаніі-распрацоўніка білінгу ёсць два шляхі пабудовы каманды. Першы - набраць ужо гатовых "сеньёраў" і бесперапынна ствараць такія ўмовы працы, каб яны выкарыстоўвалі навыкі і вопыт па максімуме, развіваліся і пры гэтым не перадраліся. Другі - стварыць каманду з мікса пачаткоўцаў, "мідаў" і профі, каб тыя размаўлялі, уплывалі адзін на аднаго, вучыліся і раслі ўнутры кампаніі. Я супраць замкнёнага круга а-ля «няма досведу - няма працы - няма досведу» і не бачу праблемы ў найманні пачаткоўца распрацоўніка. У Forward Telecom даўно дзейнічае стажорская праграма, якая стала трамплінам кар'еры для шматлікіх працуючых супрацоўнікаў.

Цяпер раскажу, як я бачу шлях развіцця распрацоўніка білінгу, і ў якой паслядоўнасці трэба асвойваць прафесійныя навыкі.

1. Вывучыць мову праграмавання

Для пачатку - любы. У прыярытэце Java, Python і JavaScript, але для атрымання базавых ведаў падыдуць Ruby, Go, З, З++. Як вучыць? Праходзіць платныя і бясплатныя курсы, магу параіць навучанне ад Golang. Калі ўзровень ангельскай дазваляе, глядзець замежныя відэа - гэта нядрэнны дадатковы скіл.

Дарога лютасьці: шлях распрацоўніка білінгу

2. Зразумець канцэпцыі АС

У аснове аперацыйных сістэм сем складнікаў, якія трэба ведаць і ўмець тлумачыць прынцып дзеяння:

  • Упраўленне працэсамі;
  • Патокі і шматструменны код;
  • Сокет (праграмны інтэрфейс);
  • Дыспетчарызацыя ўводу/высновы;
  • Віртуалізацыя;
  • Сховішча;
  • Файлавыя сістэмы.

Рэкамендую прайсці базавы курс адміністравання Linux. Другія АС на чарзе: Windows і Unix.

3. Абвыкнуць да тэрмінала

Па аналогіі з фобіяй чыстага ліста ёсць фобія пустога чорнага экрана з мігатлівым курсорам. Прыйдзецца яе пераадолець, каб навучыцца пісаць добрыя каманды ў камандным радку.
Абавязкова ведаць:

  • Абалонкі Bash і KornShell;
  • Каманды find, grep, awk, sed, lsof;
  • Сеткавыя каманды nslookup і netstat.

Дарога лютасьці: шлях распрацоўніка білінгу

4. Сетка і бяспека

Білінг цесна звязаны з сеткай і патрабаваннямі абароны дадзеных. Нельга пісаць анлайн-сэрвісы, не разумеючы, як працуе сетка, таму трэба вывучыць асноўныя паняцці і пратаколы: DNS, мадэль OSI, HTTP, HTTPS, FTP, SSL, TLS. Тады пры сустрэчы з памылкай Connection Refused вы будзеце ведаць, што рабіць.

5. Серверы

Пасля вывучэння прынцыпаў перадачы інфармацыі ў сетцы можна прыступіць да асноў працы сервераў. Пачніце з вэб-сервераў: IIS, Apache, Nginx, Caddy і Tomcat.

Далей па спісе:

  • Зваротны проксі-сервер;
  • Ананімны проксі;
  • Кэшаванне;
  • Балансіроўка нагрузкі;
  • Файрвол.

6. Вывучыць інфраструктуру як код

Лічу, што гэты этап - адзін з самых важных. Прыйдзецца разабрацца ў трох шырокіх тэмах:

  • Кантэйнеры: Docker і Kubernetes
  • Інструменты кіравання канфігурацыямі: Ansible, Chef, Salt і Puppet
  • Рэзерваванне: Terraform, аблокі.

7. Вывучыць CI / CD

Яшчэ адзін карысны навык для распрацоўніка білінгу - умець наладжваць канвеер для бесперапыннай інтэграцыі і дастаўкі. У вобласці CI/CD ёсць прылады Jenkins, TeamCity, Drone, Circle CI і іншыя. Спойлер: вывучэння шырока выкарыстоўванага Jenkins на першую пару будзе дастаткова.

8. Кантроль ПЗ і інфраструктуры

Ключавая мэта - разабрацца ў асновах маніторынгу прыкладанняў. Інструменты ў гэтай галіне дзеляцца на тры групы:

  • Маніторынг інфраструктуры: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Маніторынг прадукцыйнасці прыкладанняў: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Хмарныя сэрвісы

У недалёкім будучыні кожнае прыкладанне або ПЗ будзе мець хмарны аналаг. Рана ці позна распрацоўшчыкі сутыкаюцца з аблокамі, так што пачытайце аб папулярных хмарных правайдэрах (AWS, Google Cloud і Azure) і асновах тэхналогіі.

10. Праца з БД

Усе бягучыя праекты выкарыстоўваюць базы дадзеных, і вопыт узаемадзеяння з СКБД і SQL аблегчыць пачатак працы. Навучыцеся пісаць SQL запыты, выкарыстоўваць explain і вывучыце прынцыпы працы index. Самы просты шлях - прайсці курс. А яшчэ можна папрактыкаваць навыкі па дакументацыі Postgres, пагуляцца з рэплікацыяй.

11. Прапампаваць софтскілз

Нечакана які выбіваецца з агульнай канвы пункт, але не меней важны. Для пачатку - назапасьцеся цярпеннем. Да сітуацый тыпу «паправі прас, тыжпраграміст» абвыкаеш хутка, а вось да тэрмінаў запуску новых праектаў трэба быць маральна гатовым. Калі ў праграмаванні вы ад нуля да года і лічыцеся Junior, рыхтуйцеся да крытыкі і вучыцеся прымаць яе, рэўю кода настаўнікам - працэс часцяком балючы. Але адначасова абавязковы скіл - уменне адстойваць свой пункт гледжання і канструктыўна спрачацца, часам у спрэчцы нараджаецца ісціна. Распрацоўнікі ніколі не перастаюць навучацца, столі ў прафесіі практычна не існуе, так што навучальнасць і ЖАДАННЕ даведвацца новае - аснова вашага развіцця.

Дарога лютасьці: шлях распрацоўніка білінгу

Мяне часта пытаюцца, калі пачатковец дасягае ўзроўня middle, а калі ўжо можна ганарліва менавацца "сеньёрам". Я лічу, што момант пераходу ад узроўня да ўзроўня вызначае не колькасць адпрацаваных гадоў, хоць практычныя навыкі і з'яўляюцца ключавым крытэрам. Як раз-ткі софтскіллз часцяком вызначаюць хуткасць росту распрацоўніка: які навучаецца і працавіты пачатковец ужо праз некалькі месяцаў можа пісаць якасны код на некалькіх мовах і ўмець працаваць у камандзе. А распрацоўшчык з вопытам 10 гадоў можа аказацца няздольным да вырашэння нестандартных задач, кіраванню камандай і мець аднабокія навыкі.

Так я бачу шлях развіцця распрацоўніка білінгу, так мы гадуем кваліфікаваных спяцоў у нашай камандзе Forward Telecom. Здаецца, нічога не выпусціў, але я заўсёды ўдзячны за карысныя дапаўненні па сутнасці.

Крыніца: habr.com

Дадаць каментар