А как бы мне «вайти»?

Эта статья — ответ на часто задаваемые вопросы и попытка дать примерный ориентир тем, кто хочет попробовать себя в одной из самых популярных областей нашего времени. А учитывая, что у нас тут постоянная нехватка умных людей, буду надеятся что обзор поможет хотя бы одному из них добраться и найти своё призвание здесь.

Специализации

В IT сейчас кого только нет. Есть специалисты широких направлений (мастера на все руки), есть люди более узкого профиля. Ранжирование простое: чем больше компания, тем более узкие специалисты требуются, чем компания меньше, тем больше требуются «швейцарские ножи».

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

Backend engineer

Занимается серверной частью приложений, это то что происходит на сервере. Грубо говоря, всё что скрыто за ширмой и не видимо для пользователя, обычно это разные расчёты, бизнес логика и тому подобные штуки. Поэтому тут используют более строгие правила разработки и более высокоуровневые языки программирования.

В определённый момент (обычно после джуниорства) кроме сухого знания языка, появляется необходимость разбираться в шаблонах программирования, структурах данных и прочих темах из обширной дисциплины «computer science».

Frontend engineer

Занимается клиентской частью приложений, это то что происходит на клиенте. Проще говоря, это про интерфейсы (морду) на сайтах и в приложениях. Может разбиваться на более узкие специализации, тех кто занимается созданием интерфейса (обычно HTML + CSS) и тех кто занимается проработкой логики и связкой с серверной частью (обычно JS). Распространено мнение, что в создание интерфейса порог входа минимальный, потому что HTML и CSS сравнительно простые языки, плюс результат написанного можно почти мгновенно увидеть в браузере. Сложности начинаются когда проект начинает масштабироваться, появляются целые системы интерфейсов, тогда требуется глубокое понимание технологий, подключается аналитическое мышление и поехали. Бытует мнение, что современный фронтенд сошёлся на реакте (React.js — популярный Фреймворк), но это лишь одно из мнений.

QA (QE, SDET) engineer

Занимается качеством приложения. Глобально можно поделить на ручное и автоматизированное, но сейчас тренд всё больше складывается в сторону т.н. «евангелистов” или “консультантов» по качеству, которые знают технологии и лучшие практики в этой среде и делятся ими с командой или компанией по необходимости. Здесь так же применяют технологии и языки программирования которые есть и в BE и в FE, но не так глубоко.

Software engineer

Некая средняя роль между тремя перечисленными выше. Это инженер программного обеспечения, был распространённый ранее, до широкого охвата веба, обычно относилась к разработчикам т.н. desktop apps (приложений, который устанавливаются на компьютер). Сейчас все меньше встречается в заголовках вакансий и ролей.

Full stack engineer

Очередная роль, объединяющая в себе FE и BE, обычно это специалисты, которые повидали многое и умеют и в то, и в другое. Их интерес не смог остановиться на чём-то конкретном.

DevOPS engineer

OPS — значит operations. Грубо говоря, они тащат на себе ответственность за инструменты для разработки. Требуются в командах от ~50 инженеров.

SysOPS engineer

Очередной OPS, только в этот раз он про инфраструктуру для приложения. В этой роли, люди занимаются подготовкой и настройкой железа к тому, чтобы оно тащило всё приложение и делало это максимально эффективно (опять же описание грубое).

Site reliability engineer

Загадочная роль, может включать в себя много разного, в зависимости от контекста. Обычно объединяет DevOPS и SysOPS в одном лице. Как говорит википедия их главная цель — создавать масштабируемые и очень надёжные системы для приложений.

Tech/team lead

Роль лидера, которая может появится в команде любых специалистов. Это как «вожак» команды, с опытом и хорошо развитыми софт-скиллами. Требования варьируются от компании к компании (впрочем как и для всех остальных ролей).

Engineering manager

Роль появляется в более крупных организациях ~50 инженеров, но тоже довольно распространённая в последнее время. Обычно это специалист из инженеров, глубоко разбирающийся в цикле разработке ПО, прокаченный в софт-скиллс. Каждая компания выставляет свои зоны внимания для таких менеджеров и они могут называться по разному, но обычно главное это создание эффективных команд разработки (через мотивацию людей, выстраивание процессов и множество прочих сопутствующих тем).

CTO

Chief Technology Officer, ключевой человек в инженерной организации. Обычно это люди с опытом от 10-15 лет в сфере, с опытом работы в различных организациях и хорошо разбирающиеся в технологиях в целом. Отвечают за развитие инженерной организации в целом (слишком много тем и специфик, даже нет смысла начинать перечислять).

<specific> Engineer

Чуть не забыл про инженеров узкой специальности. Иногда бывают люди специализирующиеся на конкретных системах. Так например из популярных, сейчас есть Machine Learning или Block chain инженеры, которые конкретно разбираются в своих областях.

Дальше просто по группам с некоторыми ролями в скобках:

  • Product — люди работающие напрямую с продуктом, стратегией развития, проводят эксперименты, общаются с пользователями и как и все в этой сфере «делают жизнь людей лучше» (Product Owner, Product Manager, CPO и т.д.)
  • Analytics and data — близкое к продукту, но про данные, особенно когда их много (Big Data) требуются особые алгоритмы для обработки и понимания что присходит. Без этих ребят работа над продуктом идёт почти вслепую (Business Analyst, BI-analyst, Data scientist, Big data engineer и т.д.)
  • UX&UI — это направление про интерфейс продукта и опыт пользователя, иногда специалистов отсюда называют дизайнерами, но дизайн это слишком обширно (UX-designer, Product designer, UI-specialist, UX copy, и т.д.)
  • Creative — тут больше про дизайн в его классическом виде, обычно здесь люди занимаются графикой и фирменным стилем, а ещё, если рассмотреть некоторые из этих позиций в мире разработки игр, то откроется целая вселенная (Graphic designer, Motion designer, Asset designer и т.д.)
  • Marketing — здесь понятно, это про распространение и воронки пользователей, в IT маркетинг использует невероятное количество инструментов и подходов, это очень глубокая тема, осторожнее (Digital marketing, Marketing Operations, Field marketing, User Acquisition и т.д.)
  • Sales — продажи, думаю очевидно, но как и в маркетинге очень много своих IT-особенностей.
  • IT — неожиданно, но да. Направление в котором люди занимаются обеспечением техники и систем, ноутбуки, корпоративные сети, сервера, Wi-Fi, периферия, митинг-румы (оборудованные комнаты для переговоров) и т.д.
  • Support — поддержка, обычно это шире чем просто ребята на линии, тут тоже могут быть свои инженеры, свои маркетологи, свои сообщества и т.д.
  • HR — как и везде, тут тоже есть «отдел кадров». Основное отличие, что эти ребята стараются использовать самые передовые инструменты и подходы, и от этого всё меньше напоминают привычный отдел.

Список можно продолжать, но я предпочту остановится тут, если упустил что-то очевидное и важное, дополните в комментах плз.

Курсы и вообще их необходимость

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

С этим разобрались, теперь можно продолжить про курсы.

Не хотелось бы рекламировать конкретные (но похоже прийдётся), лучше напишу по группам как я их вижу.

Курсы от специалистов. От тех, кто уже разобрался, имеет опыт и готов теперь научить других. Обычно это ребята, которым в кайф преподавать, они приходят на youtube или на udemy и собирают свои уроки в плейлисты. Нужные вещи можно найти в поиске (слышал есть такая фича и вроде неплохо работает), либо спросить у друга программиста, он явно подскажет.

Курсы от компаний. Крупные IT компании всегда в поисках свежей крови. В случае когда есть возможность попасть на стажировку, курсы являются сравнительно недорогим способом найти лучших и вырастить их лояльными и с нужной конфигурацией скиллов для компании. В другом случае, это способ заработать деньги, научить людей чему-то годному и конечно инвестиция в бренд. Тут можно просто пройтись по крупнейшим (вы их хорошо знаете) и посмотреть что они предлагают.

Отдельные проекты. Тут знающие ребята объединяют усилия и создают что-то, чтобы и денег заработать и реально научить других тому, что знают хорошо сами. Они похожи на курсы от специалистов, но главное отличие это бóльший поток, а там где больший поток, обычно растёт качество материала. Попутно, если повезёт, будет приятный интерфейс и индивидуальный подход. Из тех кто мне лично симпатизирует это bangbang, html academy, hexlet, но возможно в комментариях подскажут ещё.

НО, курсы не пуля, в пистолет не зарядишь. Вообщем я буду рад, если курсы тебе помогут, но давай ради приличия накину ещё несколько мыслей.

  • Интернет — помойка, если не уметь им пользоваться. Кроме котов и слонов, здесь есть ещё множество образовательного материала. Если бы была статья, которая учила как пользовать поисковой строкой, я бы делился ею со всеми подряд. Даже youtube используют для обучения, правда всего 7% пользователей, источник. Научись пользоваться интернетом и поиском, здесь есть больше чем ты думаешь.
  • Самообучение — один из путей к успеху. Вспомни как тебе регулярно говорили в школе и универе, что самообучение это свет. В IT немало людей, который оказались здесь без всяческого образования, а по лихой случайности благодаря своей тяге к знаниям, правда потом некоторые из них начинают страдать синдромом самозванца, но это другая тема. 60% из 50 тысяч опрошенных Stackoverflow (популярный ресурс с вопросами и ответами) научились писать код благодаря онлайн ресурсам (видео, блог постам и прочему) источник, ещё вопросы?
  • Английский язык. Так уж вышло, что общепринятым языком в этой области является английский, так что его прийдётся знать по-любому. Как минимум для чтения и общения по переписке, как максимум для устного решения неоднозначных вопросов с участием разных акцентов. Всё зависит от того, насколько глубоко решишь забраться. Опять же, ресурсов для обучения английскому море, выбирай какой больше понравится.
  • Ментор. На первое время будет классно если у тебя появится кто-то, кто сможет хотя бы направлять тебя, а в идеале курировать и помогать в обучении, такие люди называются наставниками (по англ. mentor). У наставников своя мотивация помогать людям, но их не так просто найти с нуля. Однако для этого тоже есть ресурсы и отдельные продукты (чего только нет сейчас, и большая часть этого в интернете), всё так же легко ищется. Ещё наставника можно бесплатно получить на стажировке, возможно тебе ещё даже приплачивать будут за это.

Стажировка

Это как проба пера, иногда компаниям (обычно большим — от 1000 человек) выгодно брать к себе неопытных людей и натаскивать их на реальных задачах и инструментах, те кто успешно проходят стажировку обычно становятся лояльными постоянными сотрудниками. В такой схеме выигрывают все, поэтому вариант довольно распространённый. На мой взгляд тут два ключевых момента:

1. Определиться с тем что интересно (надеюсь первая глава хоть как-то поможет в этом)

2. Найти свою стажировку и подготовить себя к тому, чтобы на неё попасть

Я попробовал сейчас забить в поисковике «стажировка в it» и всё, на этом я думаю можно ставить точку.

Вместо заключения

Главное, чтобы то, что ты делаешь было тебе интересно. Тогда это становится меньше похоже на работу, и всё больше начинает напоминать «кайфовую жизнь».

7
23 комментария

"В IT сейчас кого только нет. Есть специалисты широких направлений (мастера на все руки), есть люди более узкого профиля."
Правильней будет сказать что в IT сейчас сборище недоумков который без 100500 открытых вкладок Гитхаба, Стака и им пододбных не в состоянии написать, к примеру, парсер тегов, тайтлов или кейвордов. Если сейчас отключат интернет - то 99% сеньоров, джунов или мидлов моментально превратятся в персонал по обслуживанию картриджей принтеров, да и то всего процента полтора.
Напишите по памяти в блокноте, без интернета, парсер DNS записей по массиву IP. те кто сможет - программист и молодец, остальные - диванные скрипткиди и до программистов им как раком до Марса

5

Позвольте, угадаю, вы тот самый админ, которого не берут в разработчики?

22

А давайте вы реально нужную задачу сделаете? Например показать список документов с разными типами по разным вкладкам, и разными доступными операциями с лоадерами, разными стейтами и прочим. И ни разу не зайдете в свагер вашего Бэка, через метод тыка.
А я буду делать в реальном мире с документаей и сравним кто быстрее 

5

Так суть не в том, что человек не может. Можно пройтись по доке из исходников, перелопатить десяток классов, методов и в итоге сделать это, а можно правильно ввести запрос и найти готовое решение уже кем то. Суть не в том, что люди не могут, а в том, что за тебя это уже делали и ты определенные задачи решаешь редко, а решение нужно сейчас.
В конце концов платят деньги за решение задачи, а не за написание 9999 либы для работы с csv и т.п.

1

Разработчик - не энциклопедия, а тот, кто может ответить на вопросы что, где и как.
Что применить, где применить и как.
А считать, что умение написать описанную фигню по памяти является признаком высокой квалификации - полная чушь.
Знаю людей, которые на собеседовании производили впечатление гуру, а потом сидели с утра до ночи чтобы их не уволили, т.к. последнее китайское уже было озвучено. Зато прошедший собеседование со скрипом приходил к обеду потому что делал все как надо и решал задачи устраняя проблемы.

По себе людей не судят :-Р

Ощущение, что писал контент менеджер, ещё и довольно неграмотный. Курсы да, но надо найти нормальные, в идеале ментор и тд, короче водяная мельница. Если это реальный разработчик, лучше бы написал: я использовал для обучения то и то, это дерьмо, этот ресурс годный. Задрали говно-статьи ниочем. 

9