Hey!
Все мы заглянули сюда, потому что нас заинтересовала работа в IT-сфере. Но вместо того, чтобы тыкать в первую попавшуюся IT специальность, возможно, стоит немного рассмотреть перечень возможных направлений в IT компании?
Это вторая часть, моего небольшого обзора.
В первой мы рассмотрели такие специальности, как Recruiter, HR, System admin, DBA, DevOps.
Сегодня мы рассмотрим специальности, которые являются "костяками" любой команды и, соответственно, проекта.
Если где-то что-то напутаю, сильно не ругайте, а лучше поправьте в комментах: я на всё смотрю со стороны Java-разработчика и нюансов всех специальностей могу попросту не знать.
6. PM — Project manager
Работа
менеджера проектов заключается в грамотном планировании, организации, управлении техническими проектами и улучшении взаимодействий между членам команды, чтобы обеспечить бесперебойное и максимально эффективное выполнение работы.
Эти специалисты должны знать потребности клиентов и преследуемые ими цели, максимально координировать действия сотрудников, чтобы довести проект до логического, положительно завершения. Положительного, потому что проекты не всегда можно успешно завершить из-за ряда причин: остановка финансирования, недовольство работой со стороны заказчика, и так далее…
Главная задача
PM — координация группы сотрудников для решения технических проблем, ведь разработчики не всегда супер общительны людьми и не всегда могут грамотно коммуницировать между собой, и это в свою очередь может играть только против проекта.
Ну или, к примеру, у разработчика произошел на чём-то затык: он может долго сидеть и не знать, как разобраться с какой-то проблемой. Все мы не любим признавать, что чего-то не знаем или не можем, а разработчики — тем более. Тут на помощь и приходит
PM, который поможет найти человека, к которому можно обратиться за дополнительной информацией, или который уже сталкивался с чем-то подобным.
В обязанности PM входит:
- постановка общих целей проекта;
- разработка планов для достижения этих целей;
- ведение сроков проекта, отчетов о текущем состоянии;
- управление ресурсами проектов (сотрудники и техническое оснащение);
- улучшение координации взаимодействия между членами команды проекта;
- отслеживание эффективности проекта и следования намеченному графику;
- проведение оценки рисков для проектов;
- организация различных собраний для обсуждения целей, текущего прогресса, положительных и негативных моментов проекта.
Необходимые навыки:
- английский Upper Intermediate и выше, так как ПМ коммуницирует со стороной заказчика от лица команды;
- широкие технические знания, но не сильно глубокие, чтобы можно было понимать, кто чем занимается, как происходит работа в целом, не сильно углубляясь;
- навыки управления проектами и участвующими в них командами;
- сильнейшие коммуникационные навыки, так как работа PM в основном состоит из коммуникаций с членами команды, руководством;
- развитые навыки ведения переписки. К примеру, часто нужно посылать письма на email заказчика от лица команды, компании, и письмо неправильно составленное или с ошибками никто не оценит;
- аналитический склад ума, который будет полезен при решении проблем, возникающих во время работы над проектом;
- навыки тайм-менеджмента, использование которых позволит держать проекты в рамках графика и бюджета (ведь время=деньги);
- навыки планирования ресурсов и задач.
Согласно dou, по Киеву средняя зарплата начинающего PM —
700$. Диапазон зарплат по Киеву для данных специалистов —
1200-4500$: всё зависит от опыта специалиста и компании.
В кого можно вырасти:
- delivery manager (DM) — прямое продолжение PM-a, стоит сразу над группой PM-ов и координирует их проекты на более высоком уровне;
- program manager — координирует несколько взаимосвязанных проектов, но я сам не сильно понимаю различие с DM-ом;
- chief technical officer (CTO) — технический директор, несущий ответственность за разработку продуктов и улучшение их процессов создания;
- chief executive officer (CEO) — главный исполнительный директор;
- account manager (AM) — менеджер по работе с клиентами;
- переучиться и перейти в другую специальность ))
Если люди вам интересны, вы любите с ними общаться и готовы принять на себя бремя ответственности за команду (а то и не одну) разработчиков, то это профессия явно для вас.
7. Frontend developer
Frontend developer — это разработчик, отвечающий за реализацию визуальной части приложения, которую пользователи видят и с которой взаимодействуют в веб-приложении.
Как правило эти специалисты сотрудничают с
Backend-разработчиками, отвечающими за логическую (серверную) часть приложения, которая продолжает визуальную часть приложения, создаваемую
Frontend разработчиками.
Frontend-разработчики, как и Backend-разработчики, — это костяк разработки любых проектов. Те, на ком проекты и держатся. Ведь какой бы ни был бизнес, он держится на обычных, так сказать, работягах.
Вот разработчики и выступают в роли таких работяг. Их, как правило, намного больше, чем представителей других специальностей, и они наиболее нужны в любом проекте.
В обязанности Frontend Developer входит:
- разработка нового функционала и улучшение старого;
- рефакторинг кода для улучшения производительности, которая иногда может сильно проседать; читаемости, чтобы другие разработчики быстрее могли вникать в код и его логику; расширяемости, чтобы в будущем было легче реализовать новый функционал благодаря переиспользованию частей старого;
- ревью (обзор) кода, отправляемого на сервер. Например, один разработчик написал код, другой его просматривает и может вернуть его первому с замечаниями по тому, что нужно поправить;
- коммуникация с клиентами и членами команды — как Frontend, так и с Backend разработчиками;
- техническая реализация графического UI/UX макета, составленного дизайнером;
- отслеживание производительности приложения;
- починка багов (ошибок).
Frontend-разработчики — это программисты, изучившие верстку в
HTML,
CSS,
JavaScript и взявшиеся за изучение определённого фреймворка, например, Angular-а или React.
Далее рассмотрим конкретные навыки, которые необходимы для становления,
Frontend-разработчиком, и в качестве примера возьмём
Angular направление.
Необходимые навыки:
- уровень английского — Intermediate;
- понимание всего процесса веб-разработки (дизайн, разработка и развертывание);
- работы с Angular 5+;
- знание JavaScript, TypeScript, RxJS, Sass, webpack;
- навыки верстки (HTML, CSS);
- навыки в работе с Git;
- понимание паттернов проектирования;
- хорошее знание Linux.
Согласно dou, по Киеву средняя зарплата начинающего специалиста данного профиля —
500$. Общая же медиана по Киеву для данных специалистов
1800-2700$. Ну а наибольшие показатели и вовсе могут достигать чуть ли не
5000$.
Но вы должны понимать, что это единичные случаи, и у специалистов, имеющих высочайшую квалификацию.
Если вы любите работать с технической частью, но так, чтобы она не сводила с ума своей сложностью, и при этом иметь профессию в популярном направлении, эта специальность может вас заинтересовать.
В кого можно вырасти:
- tech lead — технического специалиста (гуру) в данной области;
- team lead — руководителя команды разработки (полевого командира). Отсюда можно расти в менеджерское направление, например, в CTO;
- full-stack developer — разработчик, владеющий и backend-, и frontend-частью, то есть нужно подучить backend;
- solution architect — специалист, который принимает решения насчёт архитектуры внутреннего устройства и внешних интерфейсов продукта;
- tech consultant — технический консультант в какой-то технологии;
- переучиться и перейти в другую специальность.
8. Backend developer
Backend developer-ы — создают и улучшают серверную часть, отвечающую за бизнес логику приложения, которая соединяется с визуальной (интерфейсной) частью приложения (например, через
REST API).
Комбинация серверной части приложения (
Backend) + визуальная часть приложения (
Frontend) и образуют веб-приложение, с которым и взаимодействует конечный пользователь.
Backend-разработчики несут ответственность за создание, поддержку, тестирование и отладку всей серверной части.
Как правило, это включает в себя базовую логику приложения, взаимодействие с базами данных, взаимодействие с различными
API и другие внутренние процессы.
Специалист данного профиля, помимо знания синтаксиса своего языка и основных фреймворков, должен иметь общие знания по базам данных, в частности,
реляционным, уметь писать модульные и интеграционные тесты на свой код, иметь знания по сборщику приложения —
Maven или
Gradle, уметь пользоваться
Git-ом.
В обязанности
Backend developer входит:
- разработка нового функционала;
- рефакторинг кода;
- ревью кода других Backend разработчиков;
- написание документации, с помощью которой новые backend-разработчики,
- пришедшие на проект, будут быстрее вникать в логику приложения;
- починка багов;
- написание тестов (модульное, интеграционное тестирование);
- коммуникация с остальными членами команды.
Как и у
Frontend, у
Backend-разработчиков есть различные направления, а именно — конкретный язык разработки. Но мы, понятное дело, в качестве примера возьмем язык разработки Java.
Итак, каковы же необходимые навыки для Java-разработчика:
- уровень английского — Intermediate;
- знание Java Core — синтаксиса языка Java и набора базовых технологий;
- понимание всего процесса веб-разработки;
- знание языка SQL;
- знание реляционных баз данных, например PostgreSQL или MySQL;
- навыки взаимодействия с базой данных через JDBC, Hibernate;
- знание базовых фреймворков Spring (Spring Core, Spring Data, Spring Web);
- знание Git, Maven;
- навыки в модульном и интеграционном тестировании, например, с помощью JUnit и Mockito.
Для
Frontend и
Backend разработчиков, я ничего не говорил про высокие коммуникативные навыки. Везде вот пишут, что важны высокие коммуникативные навыки для данных специалистов, но это не совсем так. Да, важно адекватно общаться, но это важно в любом направлении и в любой другой профессии.
Но если сравнивать с
PM-ом или рекрутером, у которых вся работа и состоит из общения, то для разработчика иметь сверхразвитые
soft скиллы (навыки коммуникации) не так критично важно. Ведь они целыми днями работают именно в коде и, к примеру, раз в день участвуют в каких-то собраниях типа ежедневного митинга, на которых говорят буквально пару предложений: что делали, что делают, что будут делать. Ну и иногда созваниваются со своими коллегами для обсуждения некоторых технических моментов.
Поэтому данная профессия отлично подходит для интровертов — людей, которые любят уединенность. Вы можете получить свою задачу и работать над ней, не тратя куча часов на непонятные созвоны и обсуждения.
Также я написал что необходимый уровень английского языка —
Intermediate, так как с одной стороны, нет огромного количества коммуникаций с заказчиком, но при этом нужно уметь читать/писать на английском (документация, Jira) и, возможно, коммуницировать с разработчиками со стороны заказчика.
Заказчики могут смотреть на кривоватый английский со стороны разработчиков немного сквозь пальцы: главное, чтобы они были сильны непосредственно в разработке.
Возможности для роста у Backend такие же, как и у Frontend-разработчиков:
- tech lead;
- team lead;
- full-stack developer — нужно подучить frontend;
- solution architect;
- tech consultant;
- переучиться и перейти в другую специальность.
Зарплаты у Backend-разработчиков весьма приятные. Например, начинающий
Java Developer в среднем по Киеву может получать около
600$. Средняя зарплата по Киеву для данных специалистов варьируется в пределах
1950-2850$.
Ну а для сильных разработчиков Senior уровня зарплата может достигать
5000$ и выше. Но вы должны понимать, что этого можно добиться с колоссальным опытом за плечами и высочайшим уровнем навыков.
Мне в школе всегда хорошо давалась математика и физика, ведь там давали кирпичики в виде формул, и для решения каких-то задач нужно было выстраивать из этих кирпичиков логическую структуру.
Поэтому мне и нравится разработка — тот же принцип, только логических кирпичиков гораздо больше, да и структуры нужно строить посложнее.
Если вы не ищете легких путей и вам хочется настоящих вызовов, то смело выбирайте это направление.
9.QA Manual
Manual Quality Assurance — это специалист, работающий над обеспечением качества продукта, цель которого — улучшение самого процесса разработки приложения, анализ документации и на ее основании — выявление ошибок и неточностей в работе продукта.
Как правило, обеспечение качества, которым занимается
QA Manual, состоит из:
- проведения оценки рисков;
- анализа спецификаций и требований;
- генерации идей по улучшению качества продукта;
- составления планировок тестирования;
- анализа и документации полученных результатов тестирования.
На данный момент тестирование идет бок о бок с разработкой программного обеспечения и занимает важную роль в создании любого качественного IT продукта.
И верно, ведь помимо правильно написанного функционала, нам нужно быть уверенными, что он правильно отрабатывает и не содержит 100500+ багов.
Тут на помощь и приходит тестирование, которое служит неким контролем качества, чтобы его пройти мог только продукт, максимально отлаженный и отшлифованный.
В обязанности
QA Manual входит:
- изучение требований, спецификации и прочей документации;
- просмотр и проверка системы и её технических характеристик на соответствие спецификации (перечню требований);
- разработка эффективных стратегий и планов тестирования;
- написание сценариев тестирования (тест кейсов), по которым QA Automation создают автоматизационные тесты;
- ручное выполнение тестовых примеров, анализ результатов;
- в случае неудач или несоответствий при тестировании нужно составлять отчёт, заводить задания (заводить баги) и отправлять разработчикам на доработку;
- регрессионное тестирование продукта;
- документирования этапов тестирования;
- коммуникация с командами разработчиков о несоответствиях функционала и багах.
Необходимые навыки для становления
QA Manual:
- уровень английского — Intermediate;
- хорошее понимание методологий и практик обеспечения качества приложения;
- знание регрессионного тестирования;
- умение документировать ошибки;
- навыки подробного рассмотрения требований к ПО;
- базовое ориентирование в технической части;
- понимание JSON, XML;
- базовые знания SQL;
- навыки в работе с инструментами организации тестовой документации, например — Testrail;
- внимание к деталям;
- критичный склад ума.
Прямая возможность для роста такого специалиста —
QA Automation. Для этого нужно будет немного подучиться.
Также
можно вырасти в:
- QA lead — предводителя QA в команде;
- переучится и перейти в другую специальность, например, стать frontend- или backend developer-ом.
По Киеву зарплата
QA Manual новичка в среднем составляет
400$. Ну а в среднем зарплаты для данных специалистов находятся в пределах
1250-1650$. У самых матерых специалистов Senior уровня зарплаты могут достигать
3000$ и выше.
Это один из наиболее легкий путей “войти в айти”: можно начать с этой специальности, а потом перейти на что-то посложнее или же достигать вершин мастерства в данном направлении.
10. QA Automation
QA Automation — специалист, отвечающий за качество продукта, который использует в работе различные программные инструменты, чтобы создавать тесты по сценариям, написанным лично или
QA Manual.
QA Automation — это что-то вроде следующего уровня после
QA Manual. Если
QA Manual выполняет всё вручную, то
QA Automation использует какой-то язык программирования для написания тестов, проверяющих правильность работы функционала приложения. Эти тесты, как правило, автоматически запускаются при определенных условиях: при сборке приложения, или каждый день в какое-то время и так далее.
Как правило, в
обязанности AQA входит:
- изучение требований, спецификации и прочей документации;
- создание и настройка тестовых сред для выполнения тестовых случаев и сценариев;
- проектирование, создание и выполнение автоматизации тестовых сценариев (планов тестирования) с использованием Selenium в соответствии с определенными стандартами и методологиями обеспечения качества;
- изучение ручного тестирования приложения и внесение предложений по возможности автоматизации;
- поддержание актуальных автоматизационных тестовых случаев;
- написание документации;
- поддержание необходимого уровня тестового покрытия (test coverage);
- при необходимости — помощь с ручным тестированием. Может выполнять вручную тестовые примеры и сценарии для разрабатываемых продуктов с помощью инструментов управления тестированием;
- участие в разработке, а именно — в администрировании процесса контроля качества;
- коммуникация с командами разработчиков о несоответствиях функционала и багах.
Основная “фишка” автоматизационного тестирования заключается в том, что автоматические тесты позволяют тестировать ПО гораздо быстрее, чаще и, соответственно, ускоряют доставку продукта.
Во-первых, хорошо выполненная работа по автоматизации тестирования позволит запустить тесты быстро и предсказуемо. Это в свою очередь позволит избежать ситуаций, когда человек, выполняющий шаги вручную, может пропустить шаг или ввести значение, не предназначенное для тестирования.
Во-вторых, можно включить автоматизационные тесты в процесс сборки и запускать их каждый раз, когда сборка завершается. Это можно сделать с помощью инструмента
CI.
В-третьих, когда в приложении разработчиками изменяется некоторый функционал, то он может повлиять на совершенно другую часть системы и изменить и её поведение тоже. Но при запуске автоматизационных тестов изменения в поведении любой части системы сразу станет видно — это дополнительная страховка на тот случай, если мы починкой одного бага создадим новых три.
Необходимые навыки:
- уровень английского — Intermediate;
- хорошее понимание методологий и практик обеспечения качества;
- отличное знание синтаксиса одного языка (например, Java или JavaScript), ведь на чём-то нужно писать тесты;
- написание автоматизационных тестов с помощью Selenium;
- знакомство с CI/CD;
- умение работать с Git;
- внимание к деталям;
- критичный склад ума.
Прямая возможность роста для
AQA — развиться до разработчика того языка программирования, на котором вы уже пишете тесты. Также можно стать:
- QA lead;
- переучиться и перейти в другую специальность.
Средняя зарплата начинающего
QA Automation по Киеву —
600$. Средние показатели для данного направления —
1700-2500$, а у специалистов уровня Senior зарплаты могут достигать
4000$ и выше.
Если вы обладаете критическим складом ума, хотите писать код, но при этом не иметь “вызовов”, которые могут временами изрядно подпортить нервишки, а хотите более спокойную работу, вам стоит узнать об этой профессии поподробнее.
Во всех специальностях я указывал
английский язык как необходимый навык.
Но если у вас он не очень, не стоит расстраиваться. Это не приговор.
Есть довольно много различных российских и украинских продуктовых компаний, которые набирают специалистов без обязательного знания английского, так как людям не нужно будет общаться с иностранными заказчиками (клиентами), а только внутри команды.
Например, это может быть IT-отдел какого-то банка или оператора связи.
Так что найти работу можно и без языка, было бы желание.
А сегодня у меня на этом всё…
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ