От стажёра до сеньора в компании-разработчике биллинга

    У управленца компании-разработчика биллинга есть два пути построения команды. Первый – набрать уже готовых «сеньоров» и непрерывно создавать такие условия работы, чтобы они использовали навыки и опыт по максимуму, развивались и при этом не передрались. Второй – создать команду из микса новичков, «мидов» и профи, чтобы те общались, влияли друг на друга, учились и росли внутри компании. Я против замкнутого круга а-ля «нет опыта – нет работы – нет опыта» и не вижу проблемы в найме начинающего разраба. В 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. Кажется, ничего не упустил, но я всегда благодарен за полезные дополнения по существу.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 18

      0

      netstat вроде устарела, лучше использовать ss

        0
        Да, netstat уже несколько лет как устарел. Но ss не заменил netstat полностью, придётся ещё изучить работу ip. Поэтому мы считаем, что знать работу команды netstat нужно обязательно. Если разработчик умеет использовать связку ss и ip – ещё лучше.
        +5

        Если убрать из названия слово биллинг — то ничего в статье не поменяется. Не вижу ничего специфического в описанном, на мой взгляд это список вещей которые должны являться базой для любого современного человека в IT в принципе.

          0
          Спасибо за отзыв. Постараемся больше специфики давать.
          +2
          Может проще выучить php/Symfony и получать сравнимые деньги?
          P.S. Тестирование, видимо, в биллинге не в почёте, раз совсем не упомянуто.
            0
            Тестирование очень важная часть нашего рабочего процесса. Для on-prem решений каждый релиз проходит комплекс тестирования и документирования сначала у нас на оборудовании. Затем релиз устанавливается в тестовую среду заказчика, тот все перепроверяет и только после этого релиз переводится в продакшн.
            Для массовых облачных решений покрываем функционал автоматическими тестами, а все новое дополнительно дотошно проверяется нашими тестировщиками-людьми.
            Про php/Symfony – на вкус и цвет ¯\_(ツ)_/¯
            +8
            Судя по названию статьи, автор собирался написать другую статью, но в процессе передумал
              0
              Будем стараться подбирать более конкретные названия, чтобы не путать людей.
              +2
              А после изучения всего этого — в пенсионный фонд, оформлять пенсию.
                0
                Скорее на поверхностное изучение уйдет 2-3 года. Затем уже потребуется более узкая специализация.
                0

                Открыл статью чтобы посмотреть, почему "дорога ярости", но не нашел. Так почему дорога ярости?

                  0
                  Неудачное название. Слегка исправили.
                  0

                  Linux Is Not UniX?

                  0
                  из статьи создается впечатления что «разработчик биллинга» это какая-то новая каста, типа фронтендеров и бекендеров
                    0
                    Это от того, что мы биллинг много лет разрабатываем. Профдеформация.
                    0
                    Дико извиняюсь конечно, но эта статья о киборгах, а не о живых людях. Вот хотя бы: «Разработчики никогда не перестают обучаться, потолка в профессии практически не существует, так что обучаемость и ЖЕЛАНИЕ узнавать новое – основа вашего развития.» Почему-то менеждеры продолжают думать, что ЖЕЛАНИЕ учиться и узнавать новое это что-то вроде написания функции, получающей «бизнесс нужды проекта, серийный номер работника» в качестве инпута и выдающей «блестящее владение всем стеком технологий и бизнес логикой» в качестве аутпута, а в теле функции «пламенная речь менеджера раз в полгода.» Так не работает. Человек это не робот, и у него могут быть свои интересы, которые вносят свои коррективы в обучение. Нужно узнать своих девов как можно лучше, и строить комманду соответственно. Пример, есть ребята которые знают Java\DB\Shell на уровне бога, но ненавидят devops и frontend. Что дальше? Пламенная речь? Ещё очень доставляет «вашего развития».
                      0
                      Да, статья написана от лица менеджера, обращающегося к начинающему разработчику или стажеру. Пламенную речь обычно заменяет выбор специализации разработчика — в какую сторону человек сам расти хочет, тем и будет заниматься. За 2-3 года начинающий специалист понимает основы и расширяет кругозор, затем решает, какие знания углублять.

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое