Fury Road: The Billing Developer's Journey

Менаџерот на компанија за развој на наплата има два начини да изгради тим. Првата е да се регрутираат готови „сениори“ и континуирано да се создаваат такви услови за работа за да ги искористат своите вештини и искуство максимално, да се развиваат и во исто време да не влегуваат во тепачки. Вториот е да се создаде тим од мешавина на новодојденци, средни и професионалци, така што тие ќе комуницираат, ќе влијаат еден на друг, ќе учат и ќе растат во компанијата. Јас сум против маѓепсаниот круг a la „нема искуство - нема работа - нема искуство“ и не гледам проблем во ангажирањето на програмер почетник. Форвард Телеком долго време има програма за практикантска работа, која стана отскочна даска за кариера за многу сегашни вработени.

Сега ќе ви кажам како го гледам развојниот пат на развивачот за наплата и во кој редослед треба да ги совладате професионалните вештини.

1. Научете програмски јазик

За почеток, секој. Приоритет се Java, Python и JavaScript, но Ruby, Go, C, C++ се погодни за стекнување основни знаења. Како да се предава? Посетете платени и бесплатни курсеви; можам да препорачам обука од Голанг. Ако ви дозволува нивото на англискиот јазик, гледањето странски видеа е добра дополнителна вештина.

Fury Road: The Billing Developer's Journey

2. Разбирање на концептите на ОС

Оперативните системи се засноваат на седум компоненти кои треба да ги знаете и да можете да го објасните принципот на работа:

  • Управување со процесите;
  • Нишки и повеќенишки код;
  • Сокет (софтверски интерфејс);
  • I/O испраќање;
  • Виртуелизација;
  • Складирање;
  • Датотечни системи.

Препорачувам да земете основен курс за администрација на Линукс. Вториот оперативен систем во линија се Windows и Unix.

3. Навикнете се на терминалот

По аналогија со фобијата од празен лист, постои фобија од празен црн екран со трепкачки курсор. Ќе мора да го надминете за да научите како да пишувате добри команди на командната линија.
Мора да се знае:

  • школки Bash и KornShell;
  • Команди find, grep, awk, sed, lsof;
  • Мрежни команди nslookup и netstat.

Fury Road: The Billing Developer's Journey

4. Мрежа и безбедност

Наплатата е тесно поврзана со барањата за заштита на мрежата и податоците. Не можете да пишувате онлајн услуги без да разберете како работи мрежата, затоа треба да ги научите основните концепти и протоколи: DNS, OSI модел, HTTP, HTTPS, FTP, SSL, TLS. Потоа, кога ќе наидете на грешка „Одбиена врска“, ќе знаете што да правите.

5. Сервери

По проучувањето на принципите на пренос на информации на мрежата, можете да ги започнете основите на работењето на серверот. Започнете со веб-сервери: IIS, Apache, Nginx, Caddy и Tomcat.

Следно на листата:

  • Обратен прокси;
  • Анонимен прокси;
  • Кеширање;
  • Балансирање на оптоварување;
  • Заштитен ѕид.

6. Научете ја инфраструктурата како код

Верувам дека оваа фаза е една од најважните. Ќе треба да разберете три општи теми:

  • Контејнери: Docker и Kubernetes
  • Алатки за управување со конфигурација: Ansible, Chef, Salt и Puppet
  • Резервна копија: Terraform, облаци.

7. Научете CI/CD

Друга корисна вештина за развивачот на наплата е да може да постави цевковод за континуирана интеграција и испорака. Во областа CI/CD има алатки како Jenkins, TeamCity, Drone, Circle CI и други. Спојлер: учењето на широко користените Џенкинс на почетокот ќе биде доволно.

8. Софтвер и контрола на инфраструктурата

Клучната цел е да се разберат основите на следењето на апликациите. Алатките во оваа област се поделени во три групи:

  • Мониторинг на инфраструктурата: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Следење на перформансите на апликацијата: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Облак услуги

Во блиска иднина, секоја апликација или софтвер ќе има свој пандан во облакот. Порано или подоцна, програмерите се среќаваат со облакот, затоа прочитајте ги популарните даватели на облак (AWS, Google Cloud и Azure) и основите на технологијата.

10. Работа со базата на податоци

Сите тековни проекти користат бази на податоци, а искуството со DBMS и SQL ќе го олесни започнувањето. Научете да пишувате SQL прашања, користете објаснување и научете како функционира индексот. Најлесен начин е да земете курс. Можете исто така да ги вежбате вашите вештини за документација на Postgres и да играте со репликација.

11. Подобрете ги вашите меки вештини

Неочекувано невообичаена точка, но не помалку важна. За почеток, бидете трпеливи. Брзо се навикнувате на ситуации како „поправете си ја пеглата, вие сте програмер“, но треба да бидете ментално подготвени за роковите за започнување нови проекти. Ако сте од нула до една година во програмирање и се сметате за Јуниор, подгответе се за критика и научите да ги прифаќате, прегледот на кодот од ментор често е болен процес. Но, во исто време, задолжителна вештина е способноста да се брани нечија гледна точка и конструктивно да се расправа; понекогаш вистината се раѓа во расправија. Програмерите никогаш не престануваат да учат, практично нема плафон во професијата, така што способноста за учење и ЖЕЛБАТА да научите нови работи се основата на вашиот развој.

Fury Road: The Billing Developer's Journey

Често ме прашуваат кога почетник го достигнува средното ниво и кога гордо може да се нарече „постар“. Сметам дека моментот на премин од ниво на ниво не се одредува според бројот на одработени години, иако практичните вештини се клучен критериум. Токму меките вештини често ја одредуваат брзината на растот на програмерите: обучен и вреден почетник може да напише висококвалитетен код на неколку јазици и да може да работи во тим за само неколку месеци. Програмер со 10-годишно искуство можеби нема да може да решава нестандардни проблеми, да управува со тим и да има еднострани вештини.

Вака го гледам развојниот пат на развивачот на наплата, вака растеме квалификувани специјалисти во нашиот тим Forward Telecom. Се чини дека ништо не пропушта, но секогаш сум благодарен за корисните дополнувања на поентата.

Извор: www.habr.com

Додадете коментар