Решиться на перемены
Мой папа был военным, и мы много ездили по бывшему СССР. Он служил в звании подполковника, в должности заместителя начальника штаба мотострелковой дивизии в Забайкальском военном округе. Когда папа вышел в отставку, нам предложили поселиться в Пинске, в Беларуси, — там мы и остались.
Я учился в английской спецшколе, был хорошистом и точные науки не выделял. Думаю, что роль математики в работе программиста сейчас не так уж велика, если не рассматривать машинное обучение и искусственный интеллект. Языки программирования высокоуровневые, и тут скорее важно знать их алгоритмы, синтаксис. Для этого нужно изучать литературу, зачастую на иностранном языке. Поэтому знание английского мне помогает больше математики.
Интерес к компьютерам мне привил отец. В 90-е годы он организовал в Пинске курсы компьютерной грамотности — сидел ночами, составляя программы обучения. Я ему с удовольствием помогал.
В маленьком городе мне не хватало возможностей для самореализации. Я учился в академии на инженера, работал в типографии дизайнером, параллельно преподавал компьютерную графику у отца на курсах — но всегда знал, что способен на большее. В 2009 году мне позвонила переехавшая в Москву сестра и сказала, что у нее на работе открылась вакансия инженера. На вопрос, когда я смогу приехать на собеседование, я без раздумий ответил: «Завтра!». В 8 утра пришел на работу, уволился, и уже в час дня с двумя тысячами рублей в кармане сел на поезд в Москву.
Сделать первый шаг в разработке
Так я устроился в компанию «Секундочка» — это большая сеть мастерских по изготовлению ключей и ремонту обуви. Я занимался кассовым оборудованием, ездил по всей Москве. Работа шла отлично, начальство было довольно — но я стал осознавать, что застрял.
Отец предложил попробовать себя в программировании. Предложение выглядело неосуществимым — но он показал мне вполне приличный сайт, который сделал самостоятельно на HTML. И этим доказал, что для человека нет ничего невозможного.
Я перевелся в Минский университет на специальность инженера-программиста и перешел в компанию «Интегратор ИТ», где работал специалистом по внедрению CRM-системы. Нужно было писать документацию, внедрять ПО, помогать в его настройке и обучении персонала.
Это стало переходным этапом — с чего-то нужно было начинать в программировании. Ни тестировщиком, ни разработчиком меня тогда бы не взяли. Требовались знания, и как раз в «Интегратор ИТ» я мог учиться и погружаться в разработку. Первой задачей такого рода стало создание мобильной версии сайта. Еще не было смартфонов, и надо было просто сделать html-верстку для сайта — без функциональности и кнопок. Это был мой первый шаг, и я почувствовал, что это мое. Решил связать свой путь с языком PHP.
В компании во мне видели управленца, но я сказал, что буду расти в веб-разработке. И вскоре нашел место в «Региональном банке развития». К этому времени я уже защитил диплом в Минске. В банке я стал работать php-разработчиком и делать сайты на платформе «Битрикс». Я многого не знал, но не боялся трудностей, и руководитель в меня поверил. Углубленно изучал язык и сопутствующие технологии: каскадные таблицы стилей, JavaScript, гипертекстовую разметку, конфигурацию веб-окружения и многое другое — работы был непочатый край. Иногда за целые сутки я спал один час в метро перед работой
В интернете в начале 2010-х информации по программированию было мало. Очень помог форум hashcode.ru, где специалисты разбирали практические задачи. Сначала меня минусовали, когда я просто вываливал на людей свою проблему, но со временем пришло понимание, как грамотно задавать вопросы, чтобы получить ценные советы и подсказки.
Я пробивался наверх прямо как в фильме «Москва слезам не верит». Семьи тогда не было, поэтому я не заморачивался, работал днями и ночами. Иногда за целые сутки мог час поспать в метро перед работой. Я понимал, что мне надо догонять, что я опоздал. В Москве и тогда было много программистов, которые владели передовыми технологиями. Нужно было бежать вперед, не щадя себя.
В университете не преподавали и части того, что я рассказывал на защите диплома — я сделал сайт, используя то, чему научился на работе в Москве. Преподаватели слушали с открытыми ртами. Я много учился — но не оставляло ощущение, что знаниям требуется система. Мне нужен был наставник, который мог бы сесть рядом и помочь заполнить пробелы в знаниях.
Начать управлять командой
После банка я устроился в «Дочки-сыночки», где нужно было заниматься разработкой и поддержкой сайта, а также множеством других интернет-проектов компании. Если раньше я трудился как самостоятельный разработчик, то здесь впервые начал работать в команде.
Сначала доходило до смешного. В первый день мне сказали: «Вот компьютер — подключайся, клонируй исходный код, сейчас мы тебе задач накидаем». Какой код, куда и кого клонировать? Я понял, что вообще ничего не знаю.
Я снова начал учиться: среды разработки, новые веб-серверы. Поработал около года, и мне предложили должность руководителя интернет-магазина бытовой техники DomProm.ru. Это было очень круто — заниматься одним из самых высоконагруженных интернет-магазинов техники в Рунете.
Передо мной поставили задачу сформировать команду, чтобы отказаться от подрядчика и самостоятельно делать интернет-магазин. Было сложно — мне впервые потребовались навыки руководителя. Управлять командой — это же не «эй ты, когда закончишь?». Приходилось учить людей и самому многое осваивать.
Но потом обстоятельства для компании сложились неудачно и она обанкротилась. Я перешел в ПЭК, где нужно было собрать команду и разработать сайт. Через некоторое время меня с аналогичным запросом откровенно «схантили» в «АльфаСтрахование» — я давно хотел попасть в крупную компанию. Когда все задачи по созданию портала и других проектов были решены и все заработало, мне стало скучно.
И тогда я пошел на курсы GeekBrains изучать язык Java и систематизировать знания (пару лет до этого я уже учился здесь на системного администратора).
Мое стремление к новым вызовам удалось вполне удовлетворить, когда меня пригласили ведущим разработчиком в Объединение независимых учебных заведений Universal University. На позиции тимлида удалось применить знание и PHP, и Java.
Сейчас с командой мы занимаемся разработкой и поддержкой бизнес-процессов интернет- и интранет-проектов UU на платформе 1С-Bitrix (сайты, CRM и порталы), тестированием новых сервисов.
Наш стек технологий отчасти типичен для веб-разработки, но многое зависит от языка: для PHP один, для Java другой. Технологии для создания инфраструктуры выбираю в зависимости от принципов архитектуры будущего приложения, основываясь на best practices.
В будущем планирую развиваться в области искусственного интеллекта, именно там востребованы алгоритмы. Бог не тот, кто управляет, а тот, кто пишет код — и это более чем справедливо, когда речь идет об ИИ. За ним будущее.
Выбирать языки и технологии
Почему Java? Чтобы ответить на этот вопрос, можно просто перечислить, какие известные и популярные приложения разработаны на этом языке. Просто загляните в Google Play, и все станет понятно. Java внедряется повсеместно и решает любые задачи.
Вообще, чтобы изучить новый язык, нужно время и большой труд. Людям, далеким от программирования, возможно, представляется, что разработчик может сегодня на PHP покодить, завтра — на Java, а послезавтра на Python. Увы, это не так. Ты должен стать очень узким специалистом и, кроме собственно языка, изучить огромный стек сопутствующих технологий.
Важная составляющая этих технологий, когда речь идет о Java, — это алгоритмы. В университете нас этому не учили, а сейчас они очень востребованы. Раньше многие «костылили» код как могли. Но таким халявщикам все сложнее найти работу.
В интернете информации по алгоритмам не найти. Можно, конечно, взяться за фундаментальное «Искусство программирования» Дональда Кнута, но эта задача под силу единицам: три тома по тысяче страниц. Реальная возможность изучить такую сложную тему — образовательные курсы, если их организуют профессионалы и ведут практикующие специалисты.
Учиться нон-стоп
Я всегда чему-то учусь, а сейчас еще и вывожу английский на продвинутый уровень. Научился находить на это время параллельно с работой на руководящей должности.
Важно договориться с начальством, чтобы на время обучения вас хотя бы не заваливали дополнительной работой. Руководители должны понимать, что специалисту важно развиваться. Если не встречаете поддержки — задумайтесь, стоит ли держаться за такое место.
Организуйте время так, чтобы участвовать в занятиях и отводить два-три часа в выходные на разбор и закрепление материала. Делайте это рано утром, и тогда останется еще целый день на отдых и общение с семьей. Учитесь и в дороге: общественный транспорт — отличный карман времени. В среднем москвич добирается до работы минимум час, а это как раз одна лекция на онлайн-курсах.
Как договориться с семьей и объяснить, зачем нужна вся эта учеба нон-стоп? Обычно у меня занят весь будний день — сначала работой, потом обучением. Я нашел такой выход: даю и жене возможность развиваться. Сейчас она учится на курсах дизайна, мы растем вместе и лучше понимаем друг друга.
Кайфовать
У меня есть обожаемое хобби — мотоциклы, я ими даже сестру заразил. Мы живем и работаем недалеко друг от друга, и едем на работу вместе, на мотоциклах. Из дома в Щелково до офиса можно добраться примерно за час — летом это, кстати, оптимальный способ избежать пробок. Правда, лекции не посмотришь — наверстываю после мотосезона.
По правде говоря, я никогда не любил мотоциклы — считал их опасными. Пока однажды у коллеги не увидел чоппер Yamaha Drag Star 400 Custom: сначала оценил внешний вид, а потом сел на этот байк и понял, что влюбился. Записался в мотошколу и два года назад купил свой свой первый мотоцикл Yamaha Drag Star 400 Classic. Затем сменил его на более мощный, но того же класса — Yamaha Royal Star 1300 AT, который в сообществе называют «рояль». А весной этого года купил более комфортный круизер — тоже «рояль», но модификации Venture. У него есть круиз-контроль, встроенная стереосистема, множество кофров, анатомические сиденья — одним словом, шик!
Когда мне говорят, что водить мотоцикл опасно, я привожу цитату из фильма «Самый быстрый Indian»:
— Скажи, а ты не боишься разбиться насмерть?
— Нет. Когда мчишься на мотоцикле по равнине, пять минут твоей жизни бывают интересней, чем у многих людей вся жизнь.