ПРОВЕДИТЕ ЛЕТО ЯРКО

со скидками и акциями от GeekBrains и ещё 15 компаний

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

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

Виталий Соловьёв — о пути к позиции техменеджера в конкуренте Reuters и Bloomberg, игровом проекте на libGDX и впечатлениях от факультета
8 минут68719

Привет! Меня зовут Виталий. В 2016 году я работал инженером в Huawei, занимался пусконаладкой DPI-платформ, техническим дизайном, архитектурой, поддержкой. Занимался крупными проектами. Получил много опыта, фактически поднял большой пласт пакетных сетей в разных уголках России. Я понимал, что сильно углубляюсь в сферу телекоммуникаций: знания у меня чересчур узконаправленные, а это опасно для будущей карьеры. 

Надо было что-то менять — начал искать, чего мне хочется. Даже подумывал бросить IT и заняться деревообработкой :) Вот несколько работ, чтобы вы понимали, что серьёзно подумывал:

Кухня: фанера, брус. Экономия пространства.

Kid working table. Ash+oil/wax. Countertop looks as huge cutting board. Другие работы можно посмотреть у меня в инстаграме.

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

Java я никогда не любил, он ассоциировался с серыми фреймворками из 2000-х, которые тормозят, и ты вместе с ними тоже начинаешь тупить. Но я тогда попал на курс JavaRush, который хорошо зашёл. Там графика в стиле «Футурамы», интересный интерфейс, а обучение проходит в формате комикса — читаешь истории и выполняешь задания. Привет Капитану Боброву!

Так я заинтересовался философией и историей этого языка. Потом посмотрел на TIOBE-рейтинг и понял, что у Java есть и огромное прошлое, и будущее. Это целая экосистема с гигантским сообществом и документацией. Ещё понравилось, что язык больше направлен на бэкенд, чем на фронтенд, — стало понятно, почему UI в нём не очень. 

Понял, что JavaRush мне мало, — надо что-нибудь ещё поизучать. Пошёл гуглить. Конечно, мне начали подсовывать контекстную рекламу.

Я увидел, что есть некий GeekBrains, который ещё и Mail.ru Group. Посмотрел отзывы — они были противоречивые, а курс стоил недёшево — 150 тысяч рублей. Но особых альтернатив не было — только разные «курсеры», которые выдают сертификаты на английском. Но я подумал, что там получу разрозненные знания, а такие мне не подходили. 

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

  

Просто в Брюсселе с женой, поддержавшей идею поступить в GeekBrains :)

Обучение

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

Расскажу, что мне понравилось.

  • Курсы «Введение в Java» и «Java. Уровень 1» вела Александра Лютикова — отличный преподаватель. Всё рассказывала так, как нужно новичкам: заботливо отвечала на все вопросы, даже самым дерзким из нас. 
  • Разработку игр на фреймворке libGDX вёл Алексей Кутепов. Вдохновил меня на идею проекта, которым занимаюсь по сей день!
  • Курсы «Java. Уровень 2» и «Java. Уровень 3» читал Александр Фисунов, сейчас он декан факультета. Очень крутой чувак. У него стопроцентный бэкграунд программиста. Он говорит — и одновременно пишет код на Java, а в Paint с помощью графического планшета быстро рисует логическую схему своих мыслей. Отвечает на все вопросы: любой сложности, по любой теме. Поэтому информация усваивается легко и бесконечно. С Александром мы до сих пор поддерживаем связь.

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

  • Курс по HTML/CSS. Преподаватель Алексей Кадочников — верстальщик от бога. Я много интересного для себя почерпнул: как правильно делать, куда смотреть, если что-то «пованивает», какие есть крутые фреймворки. Я не люблю фронтенд, но этот курс показал, что зря.
  • «Командную разработку на Java» вёл Денис Волненко. Шикарно! В технологиях Java EE и Java SE он как рыба в воде. Всё рассказывал, всё показывал, на любые вопросы отвечал. Некоторых ребят даже взял к себе на работу. По мощности сравним с Александром Фисуновым, хороший человек :)
  • «Подготовка к собеседованию», «Java Enterprise» тоже вёл Денис — было хорошо. Очень много давал нам делать самим и думать головой тоже учил. Вёл себя профессионально, но в целом не церемонился и ни с кем не носился.
  • Был факультативный курс «Операционные системы», вёл сисадмин из Mail.ru. Он много повидал в суровом продакшене. Без комментариев, огонь в огне!

Конечно, были и недостатки.

  • Курс «Алгоритмы и структуры данных» был слабенький, преподаватель читал по методичкам — не хватило глубины. А ведь это основа, на мой взгляд.
  • «Разработка сетевого хранилища на Java» был отвратительным. У нас произошёл серьёзный конфликт с преподавателем. Человек готовил сэмплы кода дома и показывал, как презентацию: читал, что там написано. Иногда очень дерзко отвечал. Из-за хамства мы начали жаловаться на него и добились, что вместо него пришла Александра Лютикова. А его самого уже уволили, если не ошибаюсь.
  • Курс «Архитектуры, паттерны и шаблоны проектирования» вёл Дмитрий Зинкевич — рассказывал не так хорошо, как мог бы. Есть прекраснейший сайт — refactoring.guru, там изображены все дизайн-паттерны в виде инфографик в едином стиле. Мне кажется, он немного копипастил оттуда и с открытых источников.
  • «Компьютерные сети» вёл Максим Акинин. Не очень понравилось: многое было по методичке, а на занятиях это скучно. Я до этого семь лет занимался сетями и знаю: можно лучше.
  • Не в курсе, что сейчас, но четыре года назад методички в GeekBrains были ужасны. Копипасты из популярных книжек, форматирование не то, ошибки. Сначала я оставлял очень много фидбэка — потом забил.

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

Общее мнение о GeekBrains и советы студентам

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

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

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

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

О моей игре на libGDX

Мой проект — игра-аркада. Космический корабль собирает космонавтов, главная задача — выжить. Его атакуют аномалии, он может собирать всякий лут. А механика там как у обычного пакмена. Только без стен и привидений — всё это заменено, космос же. 

Когда я представил проект Алексею Кутепову, он сказал, что это лучшее, что было за всё время, и интересно посмотреть, во что оно превратится. Я продолжил разрабатывать, исследовать libGDX. Всё-таки фрейм вот-вот настолечко отстоит от низкого уровня. Ниже только OpenGL. С другой стороны, он поддерживает работу с Box2D, на котором было сделано немало культовых игр (например, Limbo).

За месяц сделал всё, что мог. Сбросил игру Саше Фисунову. Спустя время он говорит: «Ты там скидывал игру, моей дочке нравится, есть продолжение?» Я: «Блин, нет… Давай вместе?» И он согласился.

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

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

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

Сейчас в игре накопилось около 18 000 строк кода, порядка 160 уникальных спрайтов и где-то 80 разных звуков — их пишет профессиональный звукорежиссёр. Готова механика, эстетика, практически реализована функциональность, осталось доделать логику. Потом нас ждёт настройка игрового баланса. Там около 600 конфигураций, которые влияют на игровой мир, — и мы пока не знаем, как всё правильно сделать. 

Работа над игрой — та ещё задачка, вкладываешь в неё много души и времени. Шлифуешь и полируешь, как в старые добрые времена, когда работал с деревом.

Трудоустройство после GeekBrains

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

Изначально я хотел стать программистом и шёл к этому. На момент окончания GeekBrains работал в «МегаФоне» экспертом по пакетным сетям. Ходил на собеседования в разные компании на позицию разработчика — в EPAM, в Яндекс и другие.

В офисе Яндекса в СПб

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

Компания небольшая, порядка 50 человек, но в своём сервисе мы тягаемся с Reuters и Bloomberg. Хотя у них сидят этажи людей в нескольких странах, хе-хе. Работы много, она плотная, интенсивная и требует высокого уровня ответственности и отдачи. Пока мне это подходит. 

Пара слов о планах

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

Хотите больше историй с факультета Java-разработки GeekUniversity? Вот они!

Самоизоляция закончилась, а значит — самое время освоить новую профессию, чтобы уверенно смотреть в будущее при любых обстоятельствах! Мы хотим помочь вам и с 1 по 31 августа 2020 г. дарим скидку 40% почти на все программы обучения GeekBrains. Будьте здоровы и успешны! :)

 

программированиеjavaистории успеха
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!
Posts popup