4 пути юного регионального разработчика, которые я прошел в студенческие годы
Я рос в депрессивном поселке городского типа, где большинство парней, повзрослев, выбирало путь уверенной деградации. Лет с 11 меня преследовал страх, что я буду таким же, как это большинство.
Но в 13 лет родители купили мне компьютер, и жизнь начала меняться: я быстро стал местным эникейщиком, у которого взрослые дяди и тети спрашивали, как установить «виндоус на процессор». В 15 я задался вопросом, как написать свою игру. Спросил двоюродного брата, который уже стал «уважаемым человеком» и делал сайты в Москве. Брат привез учебник Лафоре по C++ и сказал: «Осваивай программирование».
Программирование стало для меня тем самым светом в конце туннеля: я четко знал, что вот закончится школа, — и я уеду в большой город, чтобы работать в хорошей компании. Но путь наверх оказался более извилистым, чем я ожидал.
«С подключением» — и вместо подготовки к ЕГЭ я рубился в Half-Life по сети. В игре познакомился с Луисом — студентом на два года старше, который уже неплохо разбирался в «плюсах» и стал помогать мне в изучении теории программирования. В общем, я играл и пробовал что-то писать, подзабив на экзамены.
В итоге, баллов хватило только на институт в небольшом городке под Ростовом.
Предисловие: как использовать ВУЗ, если тебя особо ничему не учат
Быстро стало понятно, что уровень ИТ-подготовки и требования тут низкие, и чтобы сдать любой предмет, достаточно будет посидеть над ним перед сдачей. После первой сессии я оказался в топ-3 по баллам на потоке. С тех пор у меня появилась куча времени, чтобы делать свои проекты.
К чести института, если ты хотел пилить что-то своё, тебе давали полную свободу действий и повышенную стипендию, сравнимую с зарплатой JS-джуниора.
Для начала достаточно было, например, поехать на студенческо-стартаперский форум (дорогу оплачивали), рассказать о своей разработке, получить диплом или благодарственное письмо. Потом ты брал презентацию проекта (листа два) и переписывал ее на 8 листов для публикации в каком-нибудь журнале. Сканировал дипломы и статьи, подшивал все это в увесистую папочку и относил в деканат. В общем, нужно было проявлять активность и повторять процедуру c папкой раз в полгода.
Это давало 25 тысяч в месяц: для начала 2010-х совсем неплохо. Советую узнать, есть ли что-то подобное в вашем региональном вузе.
Путь первый: «ты не Павел Дуров»
Еще на первом курсе мы с Луисом решили делать свою социальную сеть с 3D-эффектами и стали разрабатывать на Web-GL движок, который мог перемещать и соединять картинки.
Опыт в вебе у нас был небольшой, но я ехал на стартаперский форум, нужно было сделать какой-нибудь доклад, — и я решил рассказать про эту затею. После презентации меня поймал дядька из Москвы, сказал:»Идея ваша фигня. Но если согласны переделать платформу под интернет-магазины, дам денег на аренду серверов и жизнь». Я впервые общался с человеком, у которого был доступ к ресурсам, которые я никогда в жизни не видел и не трогал. Он бросался словом «миллион» и вообще производил впечатление.
Мы быстро собрали из наших заготовок демо-сцену с телефончиками, договорились, что отдаем инвестору 30% — и все стало, по сути, проектом дядьки с деньгами. Я привлек еще пару студентов-программистов, которых знал по клану в Half-Life: каждый сидел в своей общаге и пилил какую-то часть — мне достался плагин на «Битриксе» под браузеры, остальные разрабатывали конструктор, чтобы пользователи могли собирать витрины товаров и вставлять их к себе на сайты через фрейм.
Нам привели первого клиента — девушку с интернет-магазином флешек. Инвестор говорил, что как только мы сделаем пилот, его люди будут связываться с производствами и магазинами по всей стране и предлагать им 3D-витрины.
Мы подготовили демо-сцену с флешками, попытались связаться с заказчицей, …, а она пропала. Я месяцами звонил ей, писал в скайпе, но ответа не было. Мы сделали то, что обещали, но отдавать оказалось некому. Инвестор сказал, что ему все это уже неинтересно, но посоветовал обратиться к его питерскому знакомому. Я поехал в Питер, где услышал: «Давайте вы создадите студию и будете заниматься региональным продакшеном, где вы там сидите, а не пытаться что-то великое пилить, а?»
Проект, который и так, по сути, далеко отошел от наших целей, в таком виде продолжать вообще не хотелось. Хорошей новостью было, что от нас тоже уже ничего не хотели. А мы собрали [как тогда казалось] команду.
Путь второй: вчетвером на зарплату верстальщика
Сама идея «запиливать стартапы», чтобы развиваться в разработке, нам понравилась. Мы решили продолжать, но на свои.
В это время я общался с двоюродным братом, который и привел меня в программирование. Он спросил — мол, что нужно вашей команде, чтобы быть эффективнее?
Я ответил, что хорошо бы всех собрать в одном месте, а не ютиться по общежитиям в разных городах. Он спросил: «А сколько вам нужно денег для этого?» Мы прикинули — 60–70 тысяч в месяц должно хватить, чтобы оплачивать хостинг, снимать квартиру, где мы будем работать, покупать еду и т.д. До заветной суммы не хватало 25 тысяч. Брат согласился переводить их нам, а остальное шло из наших стипендий.
Мы начали снимать квартиру в Таганроге, где тогда жил Луис — самый опытный из нас. Чтобы получать стипендии, на 2–3 дня в неделю ездили на учебу под Ростов, а остальные дни проводили в «штабе»: писали код, ложились спать, просыпались — и снова писали. В перерыве варили яйца в сковородке и давили тараканов тапками.
Тогда был тренд игр-песочниц, и мы решили делать свой survivor horror: ты пробуждаешься в лесу, рубишь деревья, строишь дом, забор, копаешь ров, заливаешь воду, защищаешься от опасных мутантов. В общем, свой «Майнкрафт», только не кубический, а с плавными переходами и более реалистичной землей.
Мы взяли старый, зато бесплатный графический движок Irrlicht, написали для него инстансинг, алгоритмы сглаживания, генератор карт. Сделали мир, который нужно было наполнить контентом — чтоб все было тепло и лампово. Но рук, чтобы выдавать код и контент в нужном объеме и с нужной скоростью, у нас не хватало.
Так что мы решили написать сеть, чтобы можно было хотя бы запустить первых игроков рубиться друг против друга. На три месяца все замерло — мы не успевали ничего, кроме как разрабатывать сетевую архитектуру. И это раскололо команду: один из парней, не согласный с нашим видением архитектуры, саботировал проект и ушел, попытавшись удалить свою часть работы. Конечно, мы все восстановили.
А до альфы, в которую было бы реально интересно играть, все еще оставался путь, равный примерно что бесконечности. Мы поняли, что ни денег, ни сил для продолжения проекта у нас нет.
Путь третий: фундаментально-научное имитирование деятельности
В это время Луис стал искать вариант, куда пойти в аспирантуру, и я предложил ему перевестись в мой институт — там как раз учредили лабораторию бионических интеллектуальных систем. Мы смогли попасть туда всей оставшейся командой.
В лаборатории мы занимались симуляцией физики мягких тел. Чтобы оживить результаты наших исследований, собрали физический движок из шариков и ниток, кистью выделяли объекты, назначали их как мышцы, кости, глаза, а затем подавали на вход нейросети и передавали её ответы.
Быстро повторив простые примеры из книжек, стали делать большую абстрактную библиотеку с модными алгоритмами HTM (Hierarchical temporal memory) по мотивам книг и статей Джеффа Хокинса. С этого момента мы начали публиковать более-менее серьезные и осмысленные статьи, показывать реальные симуляции и визуализации, — и могли бы относительно легко выигрывать гранты в 250–2000К на исследования.
И тут нас встретил бюрократический аппарат во всей красе. «Благодаря» ему, сумма реального гранта таяла почти вдвое, а мы вместо работы должны был составлять бесконечные отчеты о своей бурной деятельности.
Нам улучшили условия работы — после трех «человекомест» в компьютерном классе мы по-царски заняли зал в 70 квадратов с четырехметровыми потолками. Но тут же начались истории вроде «послезавтра у нас день шахтера — и вы берете компьютеры из лаборатории и несёте показывать достижения».
Мы оказались на распутье. С одной стороны, хотелось научиться мотивировать нашу нейросеть: известно, как обучить ее что-то распознавать, и очень большая проблема — научить ее чего-то хотеть. С другой стороны, оказавшись в ситуации «экспонаты в красивой комнате», даже человеческие нативные нейросети обычно не имеют мотивации работать.
В итоге решили, что чем отбывать несколько дней в неделю на какой-то бесполезной фигне, лучше идти заниматься нормальной коммерческой разработкой: пора было пробиваться в Ростов, ближайший к нам «большой город с ИТ-компаниями» из юношеских планов.
Путь четвертый: реальный продакшен в местной ИТ-компании
Пока я искал работу в Ростове, то познакомился с Пашей, одним из тимлдов в uCoz, и спросил, что нужно, чтобы попасть к ним. Он ответил, что есть спрос на клиентсайд, скинул мне примеры заданий — и я засел изучать мир веб-технологий. Способ обучения «брать новую задачу и наращивать знания по мере ее решения» был мне привычен и понятен.
Через пару месяцев в скайп упало сообщение от Паши: «Помнишь, ты хотел к нам? Мы запускаем конструктор сайтов для малого бизнеса, нужно верстать шаблоны. Готов показать, что выучил?» Я сказал, что да.
Это был мой первый опыт собеседования. И когда меня вдруг спросили: «Почему ты хочешь работать у нас?» — я честно выпалил: «Я знаю, что я буду работать у вас. Потому что я уже справился с тестовым заданием».
В конце собеседования я не забыл рассказать, что у меня есть толковый друг-программист. Мне сказали, что программисты нужны. Луис приехал, прошел собеседование, нам сняли квартиру — и мы перебрались в Ростов.
А уже через полгода я получил людей в подчинение (что очень импонирует моему эго).
История была веселой. Во всех проектах, где я участвовал, было так — все ребята интроверты, а я экстраверт. Тут получилось также: команда расширялась, все ребята любили свое дело, даже программировали лучше меня, — но, грубо говоря, не знали, что программировать. Нужен был посредник между менеджерами и новыми ребятами, тут пригодился мой опыт работы с командами. С этими ребятами я осознал разницу между сообществом людей, которых просто собрали по месту нахождения или признаку (как наш клан геймеров-кодеров), и сообществом тех, кто попал на свое место, потому что этого заслуживает.
Мы смогли добиться улучшения качества производства шаблонов, описали и запустили бизнес-процессы, которые позволяют декларировать, что и как мы делаем. Сейчас я смотрю на сайты пользователей и знаю, что я часть этого всего. Приятно это осознавать.
Послесловие
Надеюсь, статья будет полезна тем, кто хочет вырваться из небольшого городка. Объединяйтесь — так выше шансы пробиться. Ищите связи и пользуйтесь ими. Используйте время с умом — как можно больше развивайтесь самостоятельно. Если делаете свой проект, старайтесь не завязывать все на конкретных людях (хотя в студенческих стартапах почти всегда и все — незаменимы). Ищите задачу по душе — не бросайтесь в ту же аспирантуру, потому что так кажется проще.
И главное — бойтесь. До последнего я боялся, что не состоюсь в отрасли, и этот страх гнал меня вперед.
Я убеждал себя, что лучше получить кучу неудач и пережить, что не получилось, не скомпилилось, не понравилось, не заработало, чем прийти к тому, что перед расставанием советовал инвестор нашего первого проекта: «Накупи пластмассовой фигни в Китае за $1, а затем продай за $10 у себя на родине. Профит».
А как вы «выбивались в люди»?