Дорога ярости: путь разработчика биллинга

У управленца компании-разработчика биллинга есть два пути построения команды. Первый – набрать уже готовых «сеньоров» и непрерывно создавать такие условия работы, чтобы они использовали навыки и опыт по максимуму, развивались и при этом не передрались. Второй – создать команду из микса новичков, «мидов» и профи, чтобы те общались, влияли друг на друга, учились и росли внутри компании. Я против замкнутого круга а-ля «нет опыта – нет работы – нет опыта» и не вижу проблемы в найме начинающего разраба. В Forward Telecom давно действует стажерская программа, которая стала трамплином карьеры для многих работающих сотрудников.

Сейчас расскажу, как я вижу путь развития разработчика биллинга, и в какой последовательности нужно осваивать профессиональные навыки.

1. Изучить язык программирования

Для начала – любой. В приоритете Java, Python и JavaScript, но для получения базовых знаний подойдут Ruby, Go, С, С++. Как учить? Проходить платные и бесплатные курсы, могу посоветовать обучение от Golang. Если уровень английского позволяет, смотреть зарубежные видео – это неплохой дополнительный скилл.

image

2. Понять концепции ОС

В основе операционных систем семь составляющих, которые нужно знать и уметь объяснять принцип действия:

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

Рекомендую пройти базовый курс администрирования Linux. Вторые ОС на очереди: Windows и Unix.

3. Привыкнуть к терминалу

По аналогии с фобией чистого листа есть фобия пустого черного экрана с мигающим курсором. Придется ее преодолеть, чтобы научиться писать хорошие команды в командной строке.
Обязательно знать:

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

image

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, готовьтесь к критике и учитесь принимать ее, ревью кода наставником – процесс зачастую болезненный. Но одновременно обязательный скилл – умение отстаивать свою точку зрения и конструктивно спорить, иногда в споре рождается истина. Разработчики никогда не перестают обучаться, потолка в профессии практически не существует, так что обучаемость и ЖЕЛАНИЕ узнавать новое – основа вашего развития.

image

Меня часто спрашивают, когда новичок достигает уровня middle, а когда уже можно гордо именоваться «сеньором». Я считаю, что момент перехода от уровня к уровню определяет не количество отработанных лет, хотя практические навыки и являются ключевым критерием. Как раз-таки софтскиллз зачастую определяют скорость роста разработчика: обучаемый и трудолюбивый новичок уже через несколько месяцев может писать качественный код на нескольких языках и уметь работать в команде. А разработчик с опытом 10 лет может оказаться неспособным к решению нестандартных задач, управлению командой и иметь однобокие навыки.

Так я вижу путь развития разработчика биллинга, так мы растим квалифицированных спецов в нашей команде Forward Telecom. Кажется, ничего не упустил, но я всегда благодарен за полезные дополнения по существу.


ссылка на оригинал статьи https://habr.com/ru/post/459886/

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *