Как без высшего образования сделать карьеру в ІТ — опыт 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. Отдыхать и больше проводить времени с любимыми людьми.
Без отдыха вы просто устанете, у вас «сядут батарейки», а работа перестанет приносить удовольствие. Кто, как не родные и близкие, может по-настоящему искренне радоваться вашим достижениям?


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

Похожие статьи:
По данным ресурса Business Insider, компания Apple может продать порядка 2,5 или 3 миллионов планшетов iPad Pro. Это гораздо меньше цифр о которых...
Сфера embedded-розробок — одна з тих галузей IT, де не зросла конкуренція за вакансії під час повномасштабної війни. Ба більше,...
Ссылки, на которые лучше таки нажать (по мнению автора), отмечены знаком (!) Java 12 (!) Вышла Java 12. The Complete Guide to the Java SE 12 Extended Switch...
PyBursa открывает набор на 9-недельный курс «Веб-разработка на Python и Django». Алексей Радченко преподает с 2007 года и за это...
В субботу, 16 июля, Ciklum Одесса приглашает всех на четвертую встречу Odessa Android DevClub. Темы докладов: Саенко Василий, Mouseless...
Яндекс.Метрика