Дорога люті: шлях розробника білінгу

Керівник компанії-розробника білінгу має два шляхи побудови команди. Перший – набрати вже готових «сеньйорів» і безперервно створювати такі умови роботи, щоб вони використовували навички та досвід по максимуму, розвивалися і при цьому не побилися. Другий – створити команду з міксу новачків, «мідів» та профі, щоб ті спілкувалися, впливали один на одного, навчалися та росли всередині компанії. Я проти замкнутого кола а-ля «немає досвіду – немає роботи – немає досвіду» і не бачу проблеми в наймі розробника-початківця. У Forward Telecom давно діє стажистська програма, яка стала трампліном кар'єри для багатьох співробітників.

Зараз розповім, як бачу шлях розвитку розробника білінгу, і у якій послідовності потрібно освоювати професійні навички.

1. Вивчити мову програмування

Для початку – будь-хто. У пріоритеті Java, Python та JavaScript, але для отримання базових знань підійдуть Ruby, Go, C, C++. Як учити? Проходити платні та безкоштовні курси, можу порадити навчання від 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

Додати коментар або відгук