Backend разработка с чего начать
Перейти к содержимому

Backend разработка с чего начать

  • автор:

С чего начинать обучение backend-разработчику и какой минимум знаний нужен на junior’а в 2016-2017?

Доброго времени суток. Небольшая предыстория. В этом году закончил вуз по специальности «Прикладная информатика». Вуз далеко не из топовых, поэтому, думаю, вы представляете какой уровень знаний в региональных вузах России в it-направлении дается. К тому же, я себя не оправдываю, сам тоже, сверх программы не занимался (о чем очень сожалею, конечно же). Знания в it настолько общие, что я беру примерный уровень «с нуля».
Сейчас я работаю не по специальности. И появилось желание стать разработчиком. Посмотрев востребованность программистов по направлениям, я понял, что сейчас в тренде веб-разработка (в моем регионе). Меня это интересовало в первую очередь не возможностью зарабатывания денег, а возможностью попасть на стажировку (или в перспективе джуниором).
В 70-85% вакансий backend-разработчиков указан php. но покопавшись немного в интернете, я встретил расхожее мнение, что не стоит начинать учиться программированию с данного языка (мой универский опыт с Delphi и просто Pascal’ем я, конечно,в счет не беру,а базовые знания разметки html/css мне вообще в этом деле не помощник). Мне больше по душе или .net или java (в крайнем случае).
Многие советуют начать изучение программирования с какой-то своей прикладной задачи и говнокодить до посинения, пока криво-косо не получится что-то более-менее похожее на ожидаемый результат, и уже в процессе изучать документацию и прочее. Может это и самый быстрый и удобный вариант с точки зрения уже опытных специалистов, но у меня, как у совсем новичка информация укладывается неструктурировано, отрывками, а хотелось бы, чтобы в голове все было разложено «по полочкам».
Есть неплохая «карта развития веб-разработчика» (https://github.com/zualex/devmap), но там только общий суповой набор для «каждого уважающего себя веб-разработчика». Хотелось бы похожу информацию получить для джуниора. Само собой, я понимаю, что не в таком развернутом виде, но хотя бы приблизительно.
И само собой главная дилемма для меня на данный момент: с чего начать само обучение. С изучения алгоритмов и дискретки, или архитектуры компьютера. Или сразу начинать учить синтаксис какого-то языка. Времени у меня много, поэтому я хотел бы все с азов понять и усвоить.
И, не менее интересующий меня вопрос: какими знаниями, помимо синтаксиса ЯП, нужно обладать, для того,чтобы попытать себя на собеседовании джуниор бэкэндщиком.
P.S. всем заранее огромное спасибо за ответы. так же сильно извиняюсь за «много букв», только учусь правильно формулировать вопросы

  • Вопрос задан более трёх лет назад
  • 15694 просмотра

Комментировать
Решения вопроса 2

Adamos

> информация укладывается неструктурировано, отрывками, а хотелось бы, чтобы в голове все было разложено «по полочкам»

Не существует курса обучения программированию, который раскладывает все по полочкам сразу, в теории. А если и есть — то он не работает.
Чтобы действительно разложить IT-знания по полочкам, нужны годы практического опыта.
Поэтому — погружаться и учить то, что получается изучить. Сразу пробуя то, что получается пробовать. А потом — переучиваться, с ужасом оглядываясь на то, что было сделано год назад. Потому что пришел опыт, и начался новый уровень сложности.

Ответ написан более трёх лет назад
Комментировать
Нравится 8 Комментировать

marrk2

Есть неплохая «карта развития веб-разработчика», но там только общий суповой набор

Вам этого общего супового набора на полжизни хватит

с чего начать само обучение

С языка, остальное вторично

какими знаниями, помимо синтаксиса ЯП

А тут уже специализации. Есть БД есть сисадминство, есть специалисты по узким сферам, REST API например

Ответ написан более трёх лет назад
Нравится 2 5 комментариев
toknow @toknow Автор вопроса

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

marrk2

toknow: Распыляться на протоколы и т.п. точно не стоит. Первый язык должен быть тот по которому инфы больше всего — это php или JS а потом остальные уже проще пойдут, просто поверьте ))

toknow: что значит минимум? Разработчик разрабатывает. Джун закрывает джунские задачи. Посмотрите требования в вакансиях и изучайте.

Как стать бэкенд-разработчиком: требования, пошаговая инструкция, полезные книги

Теневой генерал, пожалуй, так можно охарактеризовать специалиста в области backend. Именно от его усилий зависят функциональность и производительность веб-ресурсов и приложений. То есть всё то, что не видно глазу пользователя, но приносит ему комфорт в процессе пользования IT-продуктом.

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

Описание бэкенд-разработчика

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

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

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

Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains

Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.

Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains

Павел Симонов
Исполнительный директор Geekbrains

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

Получить подборку бесплатно
Уже скачали 23650

Задачи бэкенд-разработчика

Главной целью работы бэкенд-разработчика является написание сценариев работы приложения на специальном скриптовом языке программирования. Например, это скрипты, касающиеся интеграции сайта с платежным шлюзом, рассылки уведомлений, хранения данных в СУБД. Базы данных – самый понятный пример, то есть здесь хранится вся информация о пользователях, их комментарии, форум, жалобы и многое другое. Объем невероятно внушительный.

Бэкенд-разработчик отвечает за работу сервера, внутреннюю логистику сайта, улучшение функционирования приложения. Есть более локальные задачи для таких специалистов. Вот некоторые из них:

  • Продумывать и создавать бизнес-логику и бэкенд-системы, обеспечивающие постоянную поддержку продвигаемого продукта или услуги.
  • Работать над полезными API.
  • Создавать основу библиотеки компонентов, на базе которой будут работать дизайнеры и фронтенды.
  • Поддерживать в рабочем состоянии и развивать инфраструктурные инструменты, основанные на SourseJS.
  • Переводить дизайн-макеты на язык браузера при помощи кода.
  • Работать с интерфейсами.
  • Оптимизировать сайты, осуществлять мониторинг их работы на различных платформах.
  • Создавать модульные и интеграционные тексты.
  • Оптимизировать типичные задачи.
  • Знать правила оптимизации кода.

Зарплата и рост по карьерной лестнице бэкенд-разработчика

В интернет-пространстве, которое занимает в нашей жизни весомую часть, backend-разработчик может выстроить неплохую карьеру с высокой заработной платой и отличными перспективами.

Если брать статистику Соединенных Штатов Америки, то зарплата такого специалиста будет варьироваться от 49 до 118 тысяч долларов в год (по данным авторитетного рекрутингового портала PayScale). То есть средняя заработная плата в этой области – примерно 80 тысяч долларов.

Ситуация с зарплатой в других странах немного скромнее:

Британия – $37.5 тыс. в год.

Сингапур — $36 тыс.

Австралия — $48 тыс.

Канада — $49 тыс. в год.

Для вас подарок! В свободном доступе до 29.10 —>
Скачайте ТОП-10
бесплатных нейросетей
для программирования
Помогут писать код быстрее на 25%
Чтобы получить подарок, заполните информацию в открывшемся окне

В России бэкенд-кодеры получают около 100 тысяч рублей в месяц (или 1400$).

Но если вы специалист со знанием большого числа языков программирования и работаете с Java приложениями, то сможете заработать намного больше. В России эти цифры вырастут до 230-250 тыс. руб. (около $3200-3500).

Требуемые знания и навыки, чтобы стать бэкенд-разработчиком

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

  • Владение разными языками программирования.
  • Понимание устройства серверов и интернет-ресурсов.
  • Умение составлять юнит-тесты.
  • Обеспечение сетевой безопасности.
  • Знание веб-фреймворков.
  • Основы работы с СУБД.
  • Принципы совместной работы с фронтенд-разработчиком и верстальщиком.
  • Администрирование UNIX-подобных систем.
  • Знание API.
  • Умение правильно составить техническое задание (ТЗ).
  • Знание принципов и приемов кодирования.
  • Понимание методологии объектно-ориентированного программирования.
  • Понимание систем контроля Git.
  • Владение английским языком.

Дарим скидку от 60%
на обучение «Разработчик» до 29 октября
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей

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

Если вам показалось, что требования несколько завышены, то, по крайней мере, они не меняются так быстро, как, например, для фронтенд-специалиста. Вам не придется настолько часто учиться новому, следить за современными тенденциями.

Существует стереотип, что все IT специалисты – зацикленные на своей работе, необщительные люди, однако это не так. Список личностных качеств, выдвигаемый компаниями в поисках нового бэкенд-разработчика, тоже немаленький:

  • быстрая обучаемость;
  • умение не бояться просить помощи или настаивать на своей правоте;
  • быстрый поиск и овладение новой информацией;
  • коммуникабельность;
  • пунктуальность;
  • умение правильно распределять свое время;
  • логическое и аналитическое мышление;
  • инициативность;
  • ответственность;
  • упорство и целеустремленность;
  • умение открыто перенимать опыт коллег.

Преимущества и недостатки должности бэкенд-разработчика

Проанализировав все вышесказанное, отметим основные плюсы и минусы работы в сфере бэкенд-разработки.

Только до 2.11
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:

ТОП-100 площадок для поиска работы от GeekBrains

20 профессий 2023 года, с доходом от 150 000 рублей

Чек-лист «Как успешно пройти собеседование»

Чтобы зарегистрироваться на бесплатный интенсив и получить в подарок подборку файлов от GeekBrains, заполните информацию в открывшемся окне

Достоинства должности backend-developer:

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

Отрицательные стороны профессии:

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

8 шагов, чтобы стать бэкенд-разработчиком

  • Осваивайте новые языки программирования

Существует много языков программирования, одни более универсальны, другие применяются для узких задач. Перед backend-девелопером стоит непростой выбор, в отличие от того же frontend-разработчика, которому достаточно владеть HTML/CSS и JavaScript.Для новичков отлично подойдет Python, это скриптовый относительно несложный язык, по которому легко можно искать решения по своему вопросу, используя чужой код. Кроме того, это «хлеб насущный» для веб-сайтов и интернет-ресурсов, если вы ходите развиваться в этой области, этот язык обеспечит вам поток интересных проектов.

Язык с активным названием Go в 2020 году оказался победителем среди самых высокооплачиваемых языков. Согласно The State of the Octoverse, Go – один из самых развивающихся и растущих языков программирования. В backend-разработке он используется для создания микросервисов и высоконагруженных приложений, в которых одновременно работает много пользователей.

PHP, Ruby и Node.js – самые популярные языки Интернета, изучив их основы, можно сразу применять на практике, разрабатывая небольшие приложения. С помощью этих языков легко собирать веб-страницы по заданному тегу, проектировать алгоритмы для достижения целей и автоматизировать ежедневные задачи, имея лишь базовые навыки.

Популярные статьи

  • Познакомьтесь с пакетными менеджерами

Пакетные менеджеры (package manager) это набор программного обеспечения, позволяющего управлять процессом установки, удаления, настройки и обновления различных компонентов программного обеспечения. При помощи них вы также сможете предлагать свои библиотеки для использования другим разработчикам.

У каждого языка уникальный package manager. Например, в Python он называется pip, в PHP — Composer, в Ruby — RubyGems. Когда вы поймете, что перешли на новый уровень профессионального мастерства, вы сможете усовершенствовать ваши приложения, ускорить их работу, наладить логистику, поставить новые цели.

Поиск информации – основной хлеб любого программиста. Перенимая опыт коллег-разработчиков на различных профильных сайтах, вы сможете регулярно обновлять и совершенствовать собственные навыки. Например, некоммерческая организация OWASP (Open Web Application Security Project) систематически обновляет правила для создания безопасных веб-приложений, также вы можете обращаться к Github как крупнейшему веб-сервису для хостинга IT-проектов и их совместной разработки.

Разобравшись с пакетными менеджерами, вы сможете создавать более сложные приложения. Для их основы можно взять проекты на GitHub и, добавив в них собственные функции, сделать что-то похожее. Хороший совет – используйте форумы, многие вопросы, которыми вы задавались, уже звучали на площадках для обсуждений и получили развернутые ответы.

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

Умение удалить багги (ошибки) из своего кода – важное качество для backend-девелоперов в крупных компаниях. Поэтому создание тестов для испытания приложений – навык, который ценят участники проектной команды, где вы будете работать с более сложными приложениями.

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

Еще в 70-х годах прошлого столетия SQL как язык программирования был создан для специалистов, которые не знали всех нюансов программного обеспечения. Поэтому освоить его не так сложно. Но базы данных в SQL Server, состоящие из коллекции таблиц, в которой хранится особый набор структурированных данных, не всегда можно понять сразу, они имеют множество секретов.

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

Для апробации собственных знаний в сфере баз данных можете создать мини-приложение с основными функциями хранения информации: регистрация и авторизация пользователей, просмотр и удаление старых постов, комментариев, разграничение доступах к различным файлам. Обязательно протестируйте свой проект на специально созданных тестах, когда код будет готов и зачищен.

  • Фреймворк – важный инструмент программиста

Дословно фреймворк переводится как «структура» или «конструкция», другими словами, некая система, где все элементы взаимосвязаны и взаимообусловлены. В данном случае это набор технических средств, упрощающий выполнение серверных задач.

Хотите стать мастером дизайна веб-пространства? На курсе Fullstack-дизайнера вы освоите искусство создания восхитительных интерфейсов и глубокий взгляд на верстку. Под руководством экспертов научитесь воплощать идеи в реальные проекты, владеть инструментами и вдохновлять мир дизайном.

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

  • Расширяйте спектр знаний в области базы данных

После изучения и работы над структурированными базами данных необходимо перейти к нереляционным или неструктурированным. Здесь все гораздо сложнее, поскольку имеет свой уникальный язык программирования. Вот список языков, которые следует изучить новичку: MongoDB, Cassandra, RethinkDB и Couchbase.

Путь в ИТ: бэкенд-разработчик

Меня зовут Саша, мне 30 лет, и я почти два года руковожу разработкой одной из бизнес-линий в Тинькофф.

Официально бизнес-линия называется Merchant Solutions, в ней несколько направлений: кэшбэк и рассрочки, обработка чеков и так далее. Под моим руководством сейчас порядка 70 человек, разбитых на семь команд. Сюда входят фронтенд- и бэкенд-разработчики, системные аналитики, QA-инженеры и автоматизаторы.

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

Я всегда хватался за любые возможности чему-то научиться и что-то узнать. Встретившись с программированием, понял: это то, что мне интересно и чем я хочу заниматься. Поэтому изучение Java у меня пошло быстро, увлеченно и взахлеб. Хорошие курсы по языку, трудолюбие, упорство и любовь к своему делу в итоге сформировали из меня неплохого разработчика. Главное — гнаться не за деньгами, а за интересным опытом и профессиональным ростом.

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

Расскажу

Мое рабочее место

Что такое бэкенд-разработка

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

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

Самые расхожие языки бэкенд-программирования — Python, Java, Ruby, C++, C#, PHP, JavaScript, Kotlin, Swift, Golang. Я пишу преимущественно на Java — это распространенный и объектно-ориентированный язык, один из самых популярных.

Термины

API (Application Programming Interface) — инструменты для создания приложений, благодаря которым одна программа будет взаимодействовать с другой.

Pascal — язык, который служит основой для многих других языков. Правда, сейчас на нем почти ничего не пишут, но всегда изучают в школе на уроках информатики.

Delphi — язык-преемник Pascal, который, в отличие от него, до сих пор широко используется разработчиками. На Delphi можно писать веб-сервисы , мобильные приложения и программы для разных операционных систем.

С++ — высокоуровневый язык программирования, один из популярнейших. С его помощью можно писать сложные мобильные приложения, работать с GPU-вычислениями , например для криптовалют, и даже разрабатывать игры и игровые движки.

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

Microsoft Visual Basic — язык программирования, а также интегрированная среда разработки ПО от Microsoft.

А вот зарплатные вилки бэкенд-разработчиков в России:

  • джуниор — от 80 000 до 140 000 ₽;
  • мидл — от 140 000 до 250 000 ₽;
  • сениор — от 250 000 ₽.

Суммы примерные, значения всегда разнятся от столицы к регионам и от одной компании к другой. Вилки, как правило, часто пересекаются.

Как выбрать лучший ИТ-курс
Сравнятор поможет: покажет, какие курсы есть на разных платформах и как отзываются о них люди

Баннер

Подобрать курс

Образование и первые шаги в программировании

Я из небольшого города Саяногорска в Хакасии. Он находится в 100 км от столицы республики — Абакана. В Саяногорске я родился и учился в школе, которая была слабой в плане образования. В шестом или седьмом классе, в начале 2000-х , мама отдала меня на курсы оператора ЭВМ, там мы программировали на алгоритмических визуальных языках. Строго говоря, это были не совсем языки: расставляешь фигурки, описываешь логику — и с ними начинает что-то происходить. Мне очень нравилось, я прошел курсы до конца.

Информатика в школе тоже была слабая. Уроки были построены так, что мы больше учились печатать, работать с «Вордом» и «Экселем». Но однажды учитель предложил заняться изучением Visual Basic. Я тогда написал небольшую программку: после первого же урока взял какой-то учебник, разобрался и сделал анимацию — плавающих в аквариуме рыбок, которые пускали пузырьки. Преподаватель так восхитился, что освободил меня от информатики на целый год. Потом меня с программированием долгое время ничего не связывало, максимум, что я делал на компьютере, — играл.

Обложка статьи

В 2006 году, в одиннадцатом классе, я ходил по репетиторам, чтобы хорошо сдать ЕГЭ и попасть в нормальный университет. Экзамены сдавал по трем предметам: математике, физике, русскому языку — и все сдал очень хорошо, каждый на 90 баллов или около того. По математике и физике у меня был лучший результат в школе. Поступить на бакалавриат было не особо сложно, со своими баллами я много куда проходил.

Сначала я подал документы в Абакан, но в итоге поступил в Томский политехнический университет. Комиссия вуза тогда приехала в Абакан на образовательную выставку. Университет неплохо себя разрекламировал и убедил меня поступать именно к ним. Позже я поехал в сам Томск, чтобы подать документы еще в ТУСУР и ТГУ, везде прошел на бюджет. Но в итоге выбрал автоматизацию технологических процессов и производств в томском Политехе.

ТУСУР — Томский государственный университет систем управления и радиоэлектроники, ТГУ — Томский государственный университет

Выбирал как пальцем в небо: тогда я толком не понимал, нравится ли мне это вообще, что за системы меня будут учить автоматизировать. На подаче документов что-то рассказывали про кибернетику, роботов и большие перспективы, само название специальности мне ни о чем не говорило. Плюс я попал как раз на начало эксперимента, когда вводили систему «бакалавриат — магистратура», ее решили протестировать на моей специальности. Бакалавриат на тот момент воспринимался как неполное высшее, и морально приходилось готовиться к шести годам учебы, а не к пяти.

В целом мной сильно двигало желание куда-нибудь переехать. Мне было 16 лет, и я нечасто выбирался из родного города. Разве что пару раз в Абакан — и никогда за пределы республики.

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

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

Программирования как такового у нас было мало, в основном все было на Pascal, Delphi, самостоятельно я пробовал изучать С++. По специальности мы больше занимались программированием контроллеров, что мне было интересно. Здесь необходимо оперировать сигналами и битами информации — это более низкоуровневое программирование, нежели классическая enterprise-разработка, где необходимо писать бизнес-логику, работать с базами данных.

Enterprise-разработка — это командная разработка крупных сервисов, которые непрерывно развиваются многие годы. Приложения банка, например

Магистратура, куда я поступил в 2011 году в тот же университет, называлась «мехатроника и робототехника»: якобы мы должны были проектировать роботов. Там я начал заниматься наукой и участвовать в разных мероприятиях, за заслуги на этом поприще мне платили суммарную стипендию около 30 000 ₽ в месяц.

К тому же я получил грант. Его я выиграл, написав софт для кинематики роботов и космических аппаратов в рамках конкурса от фонда «Умник», он развивает молодежное инновационное предпринимательство.

Давали в среднем 400 000 ₽ на два года, сумма выплачивалась равными долями поквартально, но по факту выплатили больше — около 500 000 ₽. При этом нужно было постоянно отчитываться о ходе исследования или работы, на которую тебе выделили деньги. Софт я написал в первые полгода, дальше были небольшие улучшения и применение ПО на практических задачах.

Обложка статьи

Еще я писал статьи, выступал на конференциях. Даже удалось поработать по договору: написал ПО для проектирования для компании «ИСС имени академика М. Ф. Решетнева» в Железногорске — наша кафедра у них была на подряде или субподряде.

Не могу сказать, что университет дал мне очень много знаний, скорее, я сам их набрал уже после магистратуры. Но вот дисциплину учеба во мне выработала. В какой-то момент, учась в магистратуре, пошел получать второе высшее — по экономике. Видимо, казалось тогда, что маловато нагрузки. Параллельно много занимался спортом, ходил на джиу-джитсу .

График у меня был всегда очень плотный. В 06:30 я просыпался на тренировку, которая начиналась в 07:30, потом шел на пары по первой магистратуре, потом сразу на пары по второму высшему, в 10 или 11 вечера приходил домой и сразу ложился спать. Не знаю, как мне тогда удавалось не выгорать. Я занимался многим в основном потому, что не знал, что мне нравится. Если появлялась возможность что-то попробовать или изучить, просто за нее хватался.

Обложка статьи

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

Первый рабочий опыт и стажировки за рубежом

Моя первая должность после магистратуры в 2013 году — инженер автоматизации. Занимался пусконаладкой — это когда ты не только пишешь софт, но потом едешь к заказчику внедрять его на месте.

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

Обложка статьи

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

Промышленный объект где⁠-⁠то на границе Ростовской и Волгоградской областей. Там пролегает маршрут нефтепровода и стоит один из контрольных пунктов, где я налаживал нашу автоматику. Жили мы в 100 км от места, в поселке Зимовники

Рабочий день инженера в полях: с ноутбуком на коленках разбираешься, почему не работает код, который ты написал в офисе для испытательного стенда. Или заказчик пришел и требует доработок на месте — приходилось отлаживать прямо в полях

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

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

Одновременно с работой в автоматизации я пошел в аспирантуру в том же томском Политехе: все пошло как по накатанной, была высокая стипендия — 20 тысяч рублей, мне давали гранты, хотя вовлеченность в учебу была уже не такая большая.

Главным преимуществом аспирантуры была возможность участия в программах обмена с европейскими университетами. На такие поездки всегда удавалось получать гранты. Деньги выдавал сам Политех, фонды, финансирующие научную деятельность, и даже принимающая сторона. Так я три раза выигрывал грант на поездку от фонда Прохорова и немецкую стипендию DAAD.

Обложка статьи

Еще в 2013 году, перед поступлением в аспирантуру, я поехал на стажировку в Португалию, в Новый университет Лиссабона, изучать разработку ERP- и CRM-систем. А через год, уволившись с работы по автоматизации, подал заявку на летнюю стажировку в Технический университет Дрездена уже в рамках аспирантуры.

Полезного в части академической работы в Португалии было мало, но время провели весело. В Германии к обучению относились серьезнее. Мы изучали основы низкоуровневого hardware-программирования на языке VHDL и кодили мобильных роботов на языке С. Было интересно, но практического смысла было мало: такие вещи, как правило, востребованы только в университетах. Зато я прочистил голову после напряженного рабочего года.

На одной выставке в Германии было много студентов, которые показывали свои проекты в сфере ПО. Я начал ходить по стендам представленных компаний и спрашивать, что мне нужно сделать как студенту из России, чтобы однажды устроиться к ним на работу.

Удалось узнать больше о карьерных перспективах в разных немецких компаниях и пообщаться с профессиональными разработчиками, которых в моем окружении никогда не было. Да и в целом мне Германия очень понравилась, я задумался о переезде. Тогда же узнал, насколько востребован язык Java. Возвращался с твердой мыслью о том, чтобы стать разработчиком, хотя в итоге пришел к этому занятию далеко не сразу.

Дело в том, что после Германии я проездом побывал в Москве, там жили бывшая одногруппница с другом. Они занимались аудитом в одной из компаний «Большой четверки». Я был заряжен после стажировки, на этом фоне ребята рассказали мне о жизни в Москве, красиво и ярко расписали ее перспективы и преимущества и убедили меня в том, что стоит попробовать переехать. Офис находился в Сити, и я спросил, можно ли прийти и посмотреть, как там все устроено и как они там работают.

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

В ночь перед мероприятием я читал, что такое аудит. На следующий день довольно неплохо порешал кейсы, пообщался с директором. Я им понравился и получил оффер. Вернувшись в Томск, пару недель подумал — и все же уехал обратно в Москву. На старте меня ждало обучение с глубоким погружением в финансы, данные, отчетность — для нее в компании требовался по большому счету только «Эксель».

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

Обложка статьи

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

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

После года работы я сломал ногу на игре в футбол. Восстановление получилось долгим и тяжелым как физически, так и морально. Перелом был сложным, с порванными связками, было непросто найти доктора, готового меня прооперировать. Сколько себя помню, я был физически активен, занимался спортом — тяжело в один момент этого лишиться. Кроме того, было непонятно, смогу ли я вообще делать что-то активнее хромой ходьбы. На фоне физических ограничений и работы, не приносящей удовольствие, я понял, что пора возвращаться к исходному плану и точно идти в программирование.

Обучение бэкенду

После того как у меня возник интерес к разработке, я смотрел разные видео по Java на «Ютубе», пробовал что-то писать, еще когда учился в университете, проходил онлайн-курс JavaRush и даже что-то на «Курсере». Но общего понимания о профессии я не имел и не знал, как туда войти.

Погуглить и быстро что-то научиться делать — это круто и полезно для разработчика, но мало. Суть разработки в другом — в умении погружаться в контекст, понимать детали. И если тебе не нравится, ты не сумеешь программировать на должном уровне. Чтобы преуспеть в области разработки, нужно ее любить и искренне ею интересоваться.

Поэтому в качестве первого шага выбрал серьезное, подробное и фундаментальное обучение. В какой-то момент я ввел в Гугле «получить работу Java», наткнулся на курс getJavaJob и записался на него. Он и стал отправной точкой в мир бэкенд-разработки.

Обложка статьи

Футбольная травма дала мне огромное количество свободного времени, которое я посвятил учебе на курсе по Java. Не нужно было изучать все ночью после работы, а потом вставать в шесть утра и отправляться в офис. Я кайфовал оттого, что поставил одну простую и понятную цель — стать разработчиком — и ни о чем лишнем больше не думал. Друзья говорят, что очень хорошо помнят меня в тот период: у меня буквально улыбка не сходила с лица. Вроде было так много проблем, но появилась классная цель, и поэтому я был очень счастлив.

В конце концов, меня прооперировали, была долгая реабилитация. Я продолжал учиться, одновременно закрывал другие дела. Затем отправился восстанавливаться в Красноярск, куда переехала мама. Там же доделывал финальный проект по Java и начал понемногу заниматься спортом.

Само обучение заняло где-то девять месяцев, еще два ушло на подготовку финального проекта и поиск нового места. Онлайн-курс делился на два модуля. Система была такой: за первый модуль ты платишь фиксированную цену — 10 000 ₽ в месяц, а за второй отдаешь первую зарплату. То есть организаторы были заинтересованы в том, чтобы как можно быстрее и дороже трудоустроить ученика.

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

Второй модуль был более прикладным. Начался он с подробного изучения многопоточного программирования. Потом мы плавно двигались в сторону enterprise-разработки, учились работать с базами данных, популярными фреймворками Spring, Hibernate и сборщиками кода проекта, проектировать архитектуру приложения. А в самом конце деплоили приложение на бесплатный хостинг Heroku. Потом я все использовал в банковской работе.

Обложка статьи

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

Так выглядит финальный проект на курсе: необходимо разработать социальную сеть

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

Здесь нужно отдельно отметить: хороший курс не гарантирует стопроцентное получение оффера. Найти работу, просто посмотрев курсы, на самом деле очень сложно, и это вряд ли это будет большая, серьезная и развивающаяся компания с сильной культурой. У человека должны быть мотивация и опыт. Если у тебя нет ИТ-образования , первое время все равно будет сложно, какими бы хорошими ни были курсы, — так случилось и со мной.

Чтобы перейти в ИТ, нужно проделать огромную работу. Научиться писать код не так уж трудно. Разбираться в процессе — уже совершенно другое. Тебе нужно научиться мыслить как разработчик и разбираться во всех уровнях абстракции.

Что делать в такой ситуации? Правильная стратегия — по-настоящему полюбить ИТ. Если детальнее, первое — постоянно заниматься образованием в самых разных направлениях, постоянно прокачивать хард-скиллы . Второе — не брезговать бесплатными или низкооплачиваемыми стажировками в хороших компаниях, это может стать трамплином. Третье — ловить удачу за хвост, когда это возможно. Удача любит подготовленных и появляется там, где подготовка встречается с возможностью. Возможности открываются для нас регулярно, но мы не всегда достаточно подготовлены, чтобы ими воспользоваться.

Обложка статьи

Почти все вышеперечисленное помогло мне стать исключением из правил и получить рабочий оффер с приличной зарплатой от хорошей компании практически сразу после курсов. Но на старте пришлось приложить очень много усилий, чтобы соответствовать позиции и стать по-настоящему квалифицированным работником.

Как я попал в Тинькофф

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

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

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

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

Обложка статьи

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

Еще Тинькофф подкупил корпоративными бонусами, например тренажерным залом и групповыми тренировками в офисе. Я обожаю спорт, а тут можно потренироваться прямо в здании и не тратить время на поездки. Фрукты я по утрам люблю: приходишь на работу — и они всегда стоят. Столовая с вкусной едой, где сотрудникам можно поесть бесплатно.

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

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

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

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

Устроившись в банк, я сразу попал на проект, где руководил собеседовавший меня сотрудник. Проект назывался и называется Тинькофф Таргет, он отвечает за кэшбэк и лояльность. Сейчас Таргет — одно из направлений развития бизнес-линии, за разработку которой я отвечаю. Конечно, были у меня и другие проекты, но Таргет тянется красной нитью через всю карьеру.

Почти все направления бизнес-линии, включая Таргет, — B2B- и B2C-продукты , где мы работаем как с клиентами Тинькофф, так и с партнерами-юрлицами. Приходит к нам условный магазин спортивной одежды и говорит, что хочет поднять продажи. А мы много знаем о клиентах, их транзакционных активностях и можем сформировать таргетированные предложения от партнера. Иными словами, на основе большого количества параметров мы даем клиентам персонализированный кэшбэк, то есть у всех он формируется по-разному .

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

Обложка статьи

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

Со временем проект оброс дополнительными функциями на бэкенде и в мобильном приложении. Для примера: когда я пришел, я писал одно монолитное приложение, а сейчас у нас разрабатывается больше 30 сервисов. Команда тоже разрасталась: начинали мы втроем, считая меня, а сейчас только в разработке больше 70 человек — разработчики, тестировщики, системные аналитики. Плюс 30 открытых вакансий и несколько направлений в отделе.

В декабре 2021 года мы привезли почти всех разработчиков в Москву

Поначалу в сервисе было всего два менеджера, которые работали с партнерами, с десяток предложений для клиентов, а почти все идеи развития исходили от разработчиков — от меня и тимлида. Сейчас запускаем более 500 предложений в месяц.

Помню, одной из моих первых идей было сегментирование клиентов. Я на тот момент проработал в Тинькофф всего месяц и задался вопросом, почему мы всем показываем одинаковую ленту спецпредложений из 15 штук. Предложил сортировать их и высвечивать клиентам наиболее релевантные предложения. Идея невероятно вдохновила, я потратил все выходные на то, чтобы представить ее руководству. В итоге она себя не совсем оправдала в том исполнении, в котором была сделана. Конверсии не хватало.

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

Типичный рабочий день, когда я был разработчиком

09:30. Пришел с утра, кофе, печеньки.

09:45. Составил план на день, прикинул задачки.

10:00. Начинаю день с код-ревью, смотрю мердж-реквесты (MR) коллег, где меня добавили в ревьюеры, оставляю комментарии.

10:30. Поправил собственный MR, выкачал актуальный код из мастер-ветки, а там уже появились конфликты: кто-то в мастер-ветке менял тот же код, что и я в своей. Решили конфликт, смерджили код. Собрал проект из исходного кода на своем компьютере, прогнал юнит-тесты — они показывают, что код работает без ошибок и в принципе работоспособен. Выгрузил свой код в удаленный Git-репозиторий.

11:00. Дейли-мит, всей командой открываем канбан-доску, проходим по доске справа налево, обсуждаем каждую задачу, на ком они, когда закончим, какие сложности.

11:15. Переключаюсь на новую задачу, она только пришла от бизнеса, пока разбираюсь с ней и прикидываю, как буду делать, возникают вопросы.

12:00. Пишу в наш канал в «Слаке», созываю встречу из трех человек — «Три амиго», это бизнес-аналитик, QA и разработчик.

12:30. Встречаемся, начинаем вытаскивать из бизнес-аналитика детали, чтобы понять, что конкретно нужно сделать. Тестировщик начинает набрасывать, как задачу правильно тестировать, что нужно проверить. После встречи ее описание увеличивается раз в десять. Еще на встрече поняли, что нужна доработка в нескольких сервисах, декомпозируем задачу на две.

13:20. Спускаюсь в нашу столовую на обед, как обычно, набираю полный поднос еды — а еще вчера собирался худеть.

14:00. Поел и начинаю писать код по задаче, в целом уже все понятно, осталось только реализовать.

17:00. Почти закончил реализацию задачи, даже начал отлаживать. Осталось написать тест-кейсы: на проекте используем подход test cases as code — все тестировщики и разрабы пишут тест-кейсы в коде на всех уровнях пирамиды тестирования. Скорее всего, завтра первую половину дня буду писать тест-кейсы, чтобы на задаче не возникло приемочных багов и мне не пришлось их фиксить.

17:05. Иду на кухню пить чай с коллегами, шутим, громко смеемся — немного спадают усталость и рабочее напряжение.

17:30. Пишу болванки для тест-кейсов, чтобы завтра осталось написать только мясо.

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

18:30. Увидел, что бизнес завел на вики еще один новый проект, скоро придут к нам, чтобы начать реализовывать. Читаю про проект, интересно, кто в команде будет его делать.

19:15. Спускаюсь в зал на тренировку, в зависимости от дня недели это BJJ, йога или фитнес, ходить стараюсь каждый день, но получается раза три в неделю.

21:00. После тренировки иду наверх, взял на фуд-корте еды.

23:00. Поел и посмотрел лекцию, пора домой.

Про работу руководителем и выгорание

Не скажу, что сильно стрессую. Максимум может быть нехватка обратной связи в команде или со стороны бизнеса. Но тут ты просто идешь и добываешь ее посильными способами: пытаешься делать работу измеримой, проверяешь, нет ли неопределенности в сроках, объемах работы при реализации бизнес-фич . С сотрудниками и руководителем продуктовых направлений у меня регулярные синки, где мы обмениваемся обратной связью, идеями, проблемами и планами.

Синки — это, грубо говоря, планерки, сокращенно от «синхронизация». Цель — синхронизировать понимание контекста между разными людьми

Поэтому и рутины в работе тоже мало. Даже до того, как стать руководителем, я особо ее не чувствовал. Наверное, все потому, что мне искренне интересна моя работа. Хотя, когда дорос до тимлида, у меня был шок.

Я не совсем понимал свою зону ответственности на старте, все было новым, непривычным. Потом осознал, что отвечаю вообще за все: за стабильность работы сервисов, процесс поставки фич на продакшен, ожидания бизнес-заказчика, мотивацию команды.

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

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

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

Обложка статьи

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

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

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

Обложка статьи

В итоге мы вышли на очень хороший темп и качество работы в команде. По мере того как реализовывали бизнес-фичи , число идей развития нашего продукта тоже росло. Было множество предложений у бизнеса, у меня было много идей о том, в какую сторону развивать продукт и какие технические улучшения необходимы для масштабирования.

Плюс появилось отчетливое понимание, что нам нужен дополнительный ресурс разработки. Мы регулярно брали в команду стажеров, но они приносили полноценную пользу только спустя 6—12 месяцев , требовались готовые разработчики.

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

По воле случая, когда Таргет требовал дополнительных вложений, одно из направлений в Тинькофф решили поставить на паузу, а его команду распределить в другие продукты. На меня вышел их руководитель и сказал, что слышал о моем проекте и команде позитивные отзывы, и предложил рассказать о продукте его группе. Я успешно «продал» направление: к нам присоединились человек десять. С каждым я провел мини-интервью — и так заполучил в команду сильных и перспективных ребят. Некоторые спустя время успешно стали тимлидами.

Обложка статьи

Так нас стало около 15 человек, и команда уже состояла из разработчиков и тестировщиков. Таргет начал быстро развиваться, я регулярно синхронизировался с бизнесом и понял, что наше направление по-прежнему недоинвестировано. Нам не хватало ресурса на самые приоритетные и прибыльные идеи, тогда как аудитория и сумма выданного кэшбэка быстро росли.

Тогда я открыл еще больше рабочих вакансий для разработчиков, тестировщиков и аналитиков. Мы начали набирать людей с рынка. Было довольно легко продавать наше направление на собеседованиях, среди всех открытых и предлагаемых проектов кандидаты почти всегда выбирали именно наш. Команда снова разрослась, но главное — она была к этому готова, ее архитектура свободно и легко трансформировалась под расширение.

С ростом команды работы становится больше, хотя своими руками ты делаешь с каждым днем все меньше. Вместо этого постоянно нужно принимать решения и распределять ответственность в команде, помогать всем формулировать правильные цели, которые соотносятся с общим развитием. Для этого нужно анализировать много информации, а также постоянно коммуницировать — иногда возникает ощущение, что ты ничего не делаешь, кроме как языком молотишь.

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

Книги, которые мне порекомендовал прочитать мой бывший руководитель при переходе на роль тимлида

Хотя выгорание, кажется, в моей жизни все-таки было. Думаю, примерно год назад. В 2020 году я стал руководителем отдела. Первые полгода после назначения работал каждые выходные, полный рабочий день. Да и в целом я почти всегда приходил первый, уходил последний.

В Тинькофф мне нравится то, что тебе всегда дают ответственность ровно по твоим собственным возможностям и желаниям. В какой-то момент я сам перегнул палку — возможно, сказался университетский максимализм. Наметил себе очень высокую планку и всеми силами пытался до нее дотянуться.

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

Например, не все были вовлечены и проактивны, в процессах было много «бутылочных горлышек» — из-за этого порой не попадали в сроки. В тестировании мне хотелось больше автоматизации, а в культуре команды — чтобы никто не боялся выходить за пределы зоны ответственности, все были «предпринимателями» на работе и обладали T-shape-компетенциями. О последнем расскажу ниже. И у меня было непреодолимое желание сделать в команде место работы мечты.

Баланс между работой и личной жизнью, естественно, был никакой. Нельзя заниматься только делом, нужно обязательно уделять время и самому себе. Как бы ты ни любил свою работу, в таком режиме деятельная энергия просто покидает тебя. Помню, я просыпался утром и мне ничего не хотелось — только лежать. Но понимал: нужно взять себя в руки и идти делать то, что должен. Начинаешь переступать через себя, все выполняешь, а вечером, когда основной массив тяжелой работы закончен, просто садишься и задаешься вопросом: «Что со мной происходит и почему?»

Обложка статьи

Когда истощение стало хроническим, я понял, что упустил точку невозврата. Решил больше отдыхать, стал добавлять больше спорта, времени в компании друзей в привычное расписание, больше внимания уделять себе. Через какое-то время мне удалось вылезти из состояния постоянной усталости.

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

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

Кроме того, я слежу, чтобы мои специалисты по возможности занимались тем проектом, который им нравится. Добиться этого удается далеко не всегда, но это нормально. Нужно вовлекать людей в развитие именно продукта, чтобы коллега мог сказать, что он не Java- или фронтенд-разработчик, а разработчик конкретного продукта.

О backend-разработке и с чего начинать новичку

Мирас Лес, ведущий backend-разработчик Kolesa Group Разработка делится на два направления: это frontend и backend. Frontend — это то, что вы видите, то, с чем взаимодействует пользователь. Интерфейс, анимация, визуальные элементы на сайте или в приложении.​ Backend — это процессы, скрытые от глаз юзера, происходящие вне его браузера и компьютера на каком-то удаленном сервере. Backend включает в себя все компоненты и функции, которые недоступны напрямую пользователю, но доступны через интерфейс. Это сертификации, аутентификации, фоновые скрипты, автоматические взаимодействия. Если сайт — это машина, то frontend — это руль, колеса, салон, приборная панель. А backend — это вся начинка автомобиля. То есть коробка передач, мотор, механизмы и все, что заставляет машину двигаться с места.​ ​ ​ ​ ​ ​ Кто может стать backend-разработчиком У backend-разработчика много задач. Причем цена ошибки довольно высокая. Тогда возникает вопрос: Зачем же становиться backend-разработчиком?​ Программирование — однозначно творческая деятельность. Каждый день backend-разработчик будет сталкиваться с различными рода задачами, которые будут требовать все более изящных и элегантных решений. При этом чем выше становится ваш уровень backend-а, тем более сложные профессиональные цели будут перед вами ставить. Но когда вы увидите, что под вашими пальцами создается результат, который приносит пользу многим людям, вы поймете, что это того стоит. Это будет вашим двигателем делать еще больше и лучше. Если вы получаете удовольствие от такого интеллектуального труда, то эта профессия определенно для вас.​ ​ Однако важно понимать, что помимо творческих задач, деятельность программиста заключается в видении малого. Будьте готовы к тому, что вам понадобятся усидчивость и терпение. Большая часть времени будет уходить на кодинг, поиск погрешностей, написание кода и его исправление. Это естественный рабочий процесс. Помните, что стать программистом не так-то просто. Здесь нужен особый склад ума. Вам пригодятся такие качества, как умение системно мыслить, аккуратность, кропотливость. Если вас это не пугает, то добро пожаловать в профессию.​ С чего же начать​ Здесь надо признать, что изучить нужно намного больше инструментов и технологий по сравнению с другими направлениями. В той же frontend-разработке работает куча вещей, и необходимо еще много всего. Главный инструмент backend-разработчика — это язык программирования. Если сравнить с frontend или мобильной разработкой, то по этим направлениям нужно всего один-два языка. В backend-е же это огромное количество языков, и есть из чего выбирать. Это могут быть Python, Golang, PHP, Java Script. И это список лишь самых популярных языков программирования. А есть еще С++, Кобол и так далее.​ Однако не стоит забывать, что язык — это лишь инструмент. Какой из них использовать, зависит от поставленной цели и от количества ваших знаний. Если вы уже работаете и используете Python, то прекрасно, продолжайте изучать его более углубленно. Изучите, на что он способен, какие проекты на нем можно и нужно писать, а какие нет. Если вы во Frontend-разработке и хотите попробовать себя в Backend, то лучше использовать Java Script.​ Но если вы только начали и хотите попробовать себя в этой сфере, то моя рекомендация — начинайте с языка PHP. Он неизменно классика в backend-разработке. Ведь именно на нем написана большая часть сервисов. К слову, в Kolesa Group мы тоже используем либо PHP, либо Golang.​ Язык программирования: Какой выбрать начинающему backend-разработчику? PHP по ряду причин — отличный язык для начинающих. Первое — этот язык постоянно развивается. В конце прошлого года вышла обновленная версия, которая принесла набор уникальных возможностей, которые вы не найдете в других языках.​ PHP позволяет полность писать приложения и изучать все, что необходимо для современного разработчика. За счет своей простоты порог входа достаточно низкий. Его синтаксис понятен, и писать, и читать код на нем легко. У вас не займет много времени его изучить. Второе — это сообщество и разнообразие материалов. Один из ключевых пунктов при выборе любой технологии — это наличие сообщества и курсов, презентаций, чтобы ознакомиться с ней. У PHP есть огромное сообщество, и оно к тому же активно. На любой вопрос вы без труда найдете ответ в Интернете. Помимо этого, на PHP есть огромное количество материалов для самостоятельного изучения. Это интенсивы, видеооуроки, статьи и лекции. PHP позволяет начинать с малого и переходить к большему, к более сложным проектам.​ Третье — PHP отлично интегрируется со всеми языками базы данных. У него есть все необходимые расширения для работы backend-разработчиком. На нем даже можно экспериментировать.​ Мода на языки программирования меняется постоянно, но PHP всегда остается в десятке самых лучших.​ База данных. Backend-разработчику обязательно знать, как работают базы данных.​ Освойте транзакцию. Нужно понять разницу между реляционными и объектно-реляционными БД. Вам нужно понимать, когда использовать индексы и так далее. Работы с базами очень много. Есть такие популярные базы данных, как SQL и mongoDB. Изучите их. Веб-серверы. Ко всему прочему разработчику нужно знать, как настраивать такие популярные серверы, как Apache и Nginx.​ Фреймворки.​ Не стоит недооценивать важность и преимущества использования фреймворков.Фреймворки вам дадут понимание всех принципов построения современных веб-приложений. Для PHP действуют два самых популярных фреймворка: Laravel и Symphony.​ Вывод Backend-разработчик — важнейшее звено в работе сайтов и приложений. Именно от него зависит, насколько стабильно, быстро будет работать сам сервис, какие там будут функции и возможности для пользователя.​ Он делает так, чтобы push-уведомления отправлялись именно на ваш телефон, а не другого пользователя, чтобы все работало исправно, чтобы данные сохранялись. Именно благодаря ему ваши фотографии, отзывы и просмотры именно у вас, а не у другого человека.​ Советы ​Backend-разработчику нужно постоянно улучшать свои навыки и непрестанно учиться новому, так как IT-сфера постоянно меняется. Важно уметь работать в команде. Уметь нести ответственность за свои действия, быть осторожным и искренне любить то, что делаешь.

Метки записи: # backend # IT # KolesaGroup # казахстан # цифровизация

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

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