Как без высшего образования сделать карьеру в ІТ — опыт 23-летнего тимлида

Меня зовут Влад Пронский, мне 23, и я руковожу отделом разработки в Lucky Labs. В компанию пришел в январе 2014-го. Изначально планировал задержаться здесь максимум на полгода (хотел поработать, пока писал диплом в колледже), но, как говорится, человек загадывает, а высшие силы распоряжаются по-своему...

Еще в 9-м классе решил, что буду не моряком, как большинство моих друзей (родом я из Керчи), а буду программистом. После школы поступил в колледж на компьютерный факультет. В 18, пока писал диплом, устроился в Lucky Labs и переехал в Киев. Потом хотел продолжить обучение на факультете компьютерных наук и кибернетики КНУ им. Шевченка. Но документы в университет так и не подал. С одной стороны, работа завлекла, с другой — влюбился в очаровательную коллегу.

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

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

В 13 я получил свой первый опыт reverse engineering, в 14 изучил языки HTML, JavaScript и PHP, в 15 железно знал, что стану программистом.

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

Преимущества раннего программирования

Учишься не бояться своих желаний
У меня все началось с безумной одержимости игрой S.T.A.L.K.E.R. На форуме познакомился с ребятами, которые делали модификации для этой игры, я напросился к ним в команду. Что нужно делать, понимал смутно. Но меня взяли. Тогда я понял, что нет ничего невозможного. Я менял текстуры оружия в игре, и так в 13 лет я получил свой первый опыт reverse engineering.

Борешься с сомнениями, становишься решительным
В 14 я создал свой первый игровой сайт. Для этого пришлось посещать компьютерные курсы, где я изучил HTML, JavaScript и PHP. Мой первый проект — сайт, на который можно загружать картинки и голосовать за них. Поначалу много сомневался, кидался из крайности в крайность в поиске оптимального решения вопроса. Вечные сомнения заставляют перепробовать разные варианты, вынуждают докапываться до истины. Решительность приходит в тот момент, когда не остается места для новых попыток, и ты готов сделать четкий выбор (даже если этот выбор — бросить проект, так как «не твое»). Зато спустя годы все видится не в таком страшном свете — проекты выглядят вполне на уровне.

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

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

Важно не останавливаться, не лениться и впитывать максимум знаний. Параллельно я изучал другие языки программирования — Ruby и C++. Решал олимпиадные задачки на сайтах, выступал на топкодере. Обратите внимание на усиление алгоритмических навыков. Они позволяют браться за решение различных задач.

Правила первого собеседования

Мое первое собеседование в жизни в 2014 году (в компанию Lucky Labs, где работаю по сей день) было по скайпу. Готовился к нему тщательно, благо, что интернет завален статьями на эту тему.

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

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

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

Что важно в первый рабочий день

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

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

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

Книжная полка программиста

Книг для программиста не бывает много. Помню, читал все подряд и даже инициировал создание корпоративной библиотеки в Lucky Labs.

Мне понравились «Типы в языках программирования» Бенджамина Пирса, «JavaScript. The Good Parts» Дугласа Крокфорда и «Паттерны проектирования» от Банды Четырех. А книги «С++ за 21 день» Джесса Либерти или «Язык программирования С++» Страуструпа будут очень кстати для понимания того, как низкоуровнево работают языки программирования, что такое стек, куча, как работает память и т. п.

Также советую подкасты. Для меня самые крутые — Radio-T и DevZen, которые дали мне понимание того, что программирование — это не только код в IDE и коммиты. Программирование — это понять проблему и убедиться, что она действительно есть, выбрать правильные инструменты, написать код, проверить его, задеплоить и сообщить всем, для кого эта задача была критична. Со мной многие могут поспорить, что это не компетенции программиста, но именно желание брать ответственность немного шире позволит мне в будущем стать руководителем отдела.

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

Лайфхаки первого управленческого опыта

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

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

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

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

Тимлид по умолчанию

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

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

2. Не бояться быть перфекционистом. Это качество помогает выжать максимально возможный результат и выйти на новый уровень в работе.

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

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

5. Безвозмездно трудиться.
Считаю это важным личностным качеством — безвозмездно стараться делать мир вокруг себя лучше. В будущем это всегда возвращается!

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

7. Отдыхать и больше проводить времени с любимыми людьми.
Без отдыха вы просто устанете, у вас «сядут батарейки», а работа перестанет приносить удовольствие. Кто, как не родные и близкие, может по-настоящему искренне радоваться вашим достижениям?


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

Похожие статьи:
В выпуске: Бесплатные сертификаты от AWS, рейтинг языков программирования, статьи на тему параллельного программирования и Service...
С 20 декабря 2017 года по 25 января 2018 года мы проводили очередной анонимный зарплатный опрос, в котором приняли участие...
Китайская компания ZOPO объявила о старте предварительных продаж на свой, как она заявляет, первый в мире смартфон,...
Представляємо новий формат огляду літніх корпоративів українських ІТ-компаній — відео. Якщо ви хочете додати...
Бренд Alcatel OneTouch представил новый смартфон под названием Fierce XL. Это довольно простая по характеристикам модель,...
Яндекс.Метрика