Написать пост

Как десятиклассник устроился на работу программистом

Аватар Типичный программист

Обложка поста Как десятиклассник устроился на работу программистом

Сайт dou.ua опубликовал историю о том, как десятиклассник успешно трудоустроился программистом.

Ярослав Выговский — школьник из провинциального городка, которому так хотелось делать свои игры, что несмотря на отсутствие интернета, хорошей видеокарты и друзей из IT он начал самостоятельно изучать программирование и 3D.

Ярослав ходил к друзьям с интернетом, выкачивал книги по программированию, ждал наступления ночи, когда его никто не будет отвлекать, и читал их с маленького экрана Nokia N82, которую взял у брата. Нехватка денег, барахлящий 3G-модем, первый «кидок» заказчика, участие в Хакатоне от Microsoft, депрессии и опускающиеся руки — это далеко не все препятствия, через которые ему пришлось пройти на пути к своей первой работе в IT.

Ярослав, как тебе удалось в свои 16 устроиться на работу?

— Я бы и в 15 пошёл работать, но СПД можно оформить только с 16-ти. Пришлось ещё год кантоваться. Я тогда оформил портфолио, написал за три дня сайт-визитку без использования каких-либо фреймворков (кроме jQuery), написал тестовые проекты, научился работать с Github и начал отправлять резюме. Надеялся найти удаленную работу, хотя и не прочь бы найти и офисную — с коллективом легче, потому что есть у кого спросить.

С чего началось твое знакомство с IT?

— В 6 или 7 лет я увидел на прилавке еженедельник «Компьютер» и попросил родителей купить его. Ничего не понимал, но каждую неделю доканывал родителей купить новый номер. Так всё и началось.

Годам к 9 дома появился первый компьютер. Первым моим скриптом был .bat (из того же журнала), который я просто переписал и запустил — мне это тогда очень понравилось. В этом же журнале как-то вышла маленькая статья по HTML, так что я начал изучать верстку.

Ключевой проблемой было отсутствие интернета. Коростень — маленький городок, где с провайдерами всё гладко только если живешь в центре или если есть стационарный телефон.

У нас же дом в частном секторе, поэтому интернета долгое время не было. Только год назад мы подключили тарелку. До этого времени приходилось учить всё через мобильный интернет на маленьком экранчике старой Nokia N82, которую забрал у брата. Я тогда собрал последние деньги, купил карточку, пополнил счет и начал учить HTML.

В 11-12 лет я уже более-менее освоился с HTML и CSS, начал писать первые странички. Но у меня не получалось так красиво, как на некоторых сайтах в сети, которые тогда ещё верстались табличками. Мой мозг тогде еще не мог этого полностью понять, поэтому я взял паузу на полгода.

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

Со временем я освоил позиционирование, научился верстать хедеры, боковые панели, менюшки. Тогда я понял, что мне нужно нечто больше, и решил засесть за «пэху» (PHP).

Моя мать работала в банке. У них там был сисадмин, у которого я попросил для себя какие-нибудь материалы по PHP. Он дал мне курс, который состоял из двух частей — первая по PHP, вторая по CodeIgniter. Наверное, это был ещё неподходящий возраст, потому что я даже первую часть не осилил. PHP отбил у меня всё желание программить. Я тогда подумал, что это вообще не моё, и ну их к черту, эти сайты.

Как тебя потянуло в графику?

— Уже в 13 лет я случайно наткнулся на статью про компьютерную графику, 3D-моделирование, узнал про Blender, скачал очень криво переведенную книгу и начал текстурировать, моделить разные кубики и башенки. Изучил Photoshop, чтобы нормально резать текстуры. В какой-то момент я почувствовал, что нужно куда-то девать всё то, чему я к тому времени научился, и я решил пойти в геймдев. Тем более, что я был в восторге от Bethesda и выпущенных ими Morrowind и Oblivion. Хотелось сделать что-нибудь своё.

Хотел написать свою игру?

— Да. Вернее, не написать, а сделать, так как после опыта с PHP желание программировать начисто пропало. Нужен был программист. И я начал вербовать своего одноклассника. Говорил ему, что геймдев — это круто, что там крутятся большие деньги, и что это наш шанс (надо было как-то стимулировать человека). Мы тогда договорились, что через год начинаем свою игрушку писать — до этого времени я осваиваюсь в 3D, а он учится кодить.

Но я забросил Blender и 3D — слишком было сложно. Кроме того, всё осложнялось моим компом, чьей видяшки совсем не хватало. Рендер обычной сцены шел 2-3 часа, а для рендера анимации я оставлял его на пару дней.

Мой друг честно пытался освоить Джаву, но тоже выгорел. Нам было по 13 лет — что с нас взять?

Потом я снова начинал Blender и снова бросал, потому что ничего не получалось — то сетка кривая, то текстуры не ложатся, да и вообще художник из меня никакой. После этого я узнал про Maya и вдохновился тем, что на ней работает Pixar. Maya весила 3Gb. У меня всё еще был страшно глючный 3G-модем, поэтому я её выкачивал, бегая по друзьям. Также скачал книгу на 2 тысячи страниц, летом её читал и моделил.

С помощью digitaltutors я неплохо поднатаскался на Maya, и кое-что начинало получаться. В это же время я познакомился с креативщиками из одной кафешки — им нужна была анимация. Предложили 500 грн. Я неделю сидел, мучился, дизайнил — сделал красиво. И радовался так — первые деньги! Но они меня киданули. Такая печаль была. Зато получил опыт.

На том же digitaltutors я начал изучать Unity. А когда научился моделить автомобили, домики и самолеты, то начал впаривать другу Unity и C#. С джавой у него ничего не получилось, поэтому он согласился.

Ты не думал записаться на какие-нибудь курсы?

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

По моделированию нужно было придумать своего персонажа (нарисовать скетч), а также придумать его историю. По анимации — написать сценарий для мульта. Художник из меня (руками) вообще никакой, поэтому я решил пробовать силы в сценарии. К написанному сценарию я приложил ужасно нарисованный скетч и отправил. Через два месяца пришел ответ, что на задание по анимации было подано всего четыре работы и что все они неидеальны. Оказалось, что у меня хорошая идея и сценарий, но вот скетч — просто ужас. У другого человека были обалденные скетчи, но мульта, как такового не было. Поэтому всем четверым решили сделать скидку в размере 80%. Курс стоил 1000 долларов и длился год, но первые две недели нам дали бесплатно.

У них были интенсивный, напряжный, но интересный курс — нас даже учили работать в команде с помощью Trello-досок. Классные были и преподаватели. Первый день — лекции, второй день — практика, и так всё время — мне там очень понравилось. Но остальную сумму я потянуть не смог, да и очень не вовремя сломался модем.

Тогда я звоню другу и говорю: «Всё. Срочно делаем игрушку на Unity, продаем на FGL, выручку пополам, я иду на курсы, а ты делай что хочешь». Времени было — всего месяц.

Придумали мы гоночки — полу-horror. Я их задизайнил, нарисовал кнопочки, понаделывал модельки. Время от времени спрашивал друга о его успехах:

— Ты там как? Успеешь?
— Да, через неделю.

Но через неделю оказывалось, что мой друг ничего не сделал — у него всё что-то не получалось. Через пару недель я понял, что на курс уже не попаду, и начал впадать в депрессию.

«Что делать?», «Как развиваться?» — эти вопросы не давали мне покоя. В итоге я плюнул на всё и решил, что раз гора не идет к Магомеду, то я сам стану кодером, моделлером и сам сделаю игрушку. Выбор встал между C# и ActionScript для флеша. Тогда как раз начали ходить разговоры, что Flash скоро умрет и что его вытеснит HTML5. Я на эти толки внимания не обращал и стал учить ActionScript — мой первый серьезный язык программирования.

Кстати, как у тебя с английским?

— Когда я проходил курсы по Maya, то на слух кое-что разбирал, но в основном смотрел, куда там на видео клацают, и сам уже додумывал. Примерно в это время (мне было около 15), пришло осознание, что в IT без английского никуда и он мне нужен любой ценой.

Я нашел учителя, с которым мы начали с нуля, то есть с алфавита. Через два месяца я уже начал читать свою первую книжку по Flash на английском. По этой книге я написал сапера, тетрис и другие игры.

Как тебе удавалось находить на всё это время?

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

Откуда ты узнал про FGL?

— Прочитал на Хабре — там чувак рассказывал, как он сделал свою игрушку и продал её за 300$. Я думаю — ну, круто! Мне бы хоть за 100 баксов продать. Он смог — и я смогу. Пошел в кафе, сел, напился кофе (всегда так делаю, когда нужно что-то придумать) — и придумал — решил сделать игрушку вроде Alien Invaders, но полностью на рандоме.

Пришел домой, начал писать — ничего не получается. Раз написал — ноль — удалил проект; заново создал папочку, и по-новой. Ничего не получалось в плане архитектуры. Это был мой первый практический опыт без туториалов, то есть с нуля. Начал все перечитывать, искать в инете новые книги. Мой ноут не держал зарядку, поэтому я приходил в кафе, подключался к их розетке, выкачивал сайты и уже потом досматривал дома.

Так что там было с новыми папочками?

— Раз создал папочку — удалил, два создал — удалил, три — удалил. Уже кровь из носа идет. В последний раз пытаюсь — и таки за неделю написал. Все ассеты во флеше нарисовал (была простенькая векторная графика), вышло около 3000 строк на ActionScript. Но я там такого наворотил, что понял: если захочется что-нибудь поменять, проще будет переписать с нуля. Я тогда вообще не понимал зачем эти public и private, — хоть и прочитал три книжки, где всё это разжевывается. Только когда сам начал активно писать код, начало приходить понимание.

В итоге сделал игрушку и выложил на FGL. На неё сняли ревью, указали на баги и сказали, что нужно переделать, чтоб её можно было показывать спонсорам. Но изменить что-либо в игрушке я не мог, поэтому плюнул и решил написать вторую.

Мне тогда попалась статья про C# — о том, какой он обалденный и классный. Ладно, думаю, попробую — скачал книжку Шилдта и начал учить. Когда начал делать маленькие игрушки на Unity, меня это очень впечатлило: всего три клика — и не надо морочиться с архитектурой, ведь у тебя есть компоненты. По сравнению с флешем это просто рай. Поэтому я стал изучать C# более углубленно.

Ты снова хотел создать игру,чтобы продать её?

— Сделав пару игрушек на Unity, я думал устраиваться на работу в геймдев. Хоть на кого-нибудь, хоть на помощника, хоть бесплатно. Зашел на соответствующий сайт, смотрю вакансии, нахожу то, что нужно: «Помощник аниматора». Требовалось знание Photoshop, а также желательно знание 3D и HTML+CSS.

Звоню. На том конце провода говорят: «Да, да! Отлично! — Только мне 15 лет. — Ааа, ну извините, пожалуй, не получится».

Ладно, звоню во вторую компанию:

— Все ок?
— Да-да, приходите на собеседование.
— Только мне 15 лет.
— А, ну всё тогда, до свидания.

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

Ты не думал утаить свой возраст?

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

Освежив HTML+CSS и выучив JS, я начал писать на HTML5 игрушку (тачер), где по полю бегают зомбачки — тебе их нужно давить и не попадать на мирных жителей. Тогда мне попалась классная книга по геймдеву на JS — она пролила свет на то, как нужно писать код. Автор — Паскаль Реттиг, он же автор движка Quintus. Там парень тоже лет с 12 программит, на бейсике. Прочитав его книгу, я наконец понял, что значит всё продумывать и писать красиво. Потому что до этого из самостоятельного практического опыта у меня была лишь одна игра, и то я не до конца понимал все её тонкости. Я даже удивлялся, как она вообще работает!

Тогда Amazon запустил кампанию по спонсированию HTML5 игрушек. Суть в том, что тебе дают 200 баксов за любую HTML5 игру — это и побудило меня выучить JS и написать игрушку. Я её задеплоил, и всё вроде было хорошо — она работала почти во всех браузерах, но на их планшете не работала. У них был браузер на Kindle, назывался Silk. И как его дебажить — черт пойми. Ни эмуляторов для этого Амазона нет, ни планшета, ни даже браузер скачать нельзя. А мне говорят — «Игра у нас не работает. Давай ты её пофиксишь и мы тебе заплатим». Я отвечаю — «У меня нет возможности отладить её и посмотреть, что там. Скиньте мне лог консоли». Ответили они только спустя полгода, когда я уже про эту игрушку совсем забыл. Я тогда на них обиделся.

На собеседования ходить пробовал?

— Год назад, когда звонил, меня сразу посылали. Даже этой осенью был случай — лежало где-то мое резюме Unity-девелопера, вместе с готовыми проектами — на меня вышла HR из Plarium. Она мне позвонила, я отправил ей свое портфолио, сказал, что могу совмещать работу и учебу. Но в итоге всё обломалось, потому что оказалось, что регистрация работника у них идет через СПД, а в 15 лет его открыть нельзя. А я ж так загорелся! Плариум, все дела.

Ладно, думаю, сделаю свою игрушку, продам её — и все. Благо, я тогда перечитал гору книг по C# и Unity, прошел массу туториалов и более-менее научился кодить.

Придумал игрушку — называлась SandBox. Сделал её за 1,5 месяца. Связался со своим другом, который сильно удивился, узнав, что я программирую на C#. Я ему сказал, что нужно раскручивать игрушку на плеймаркете, и что нам нужно 25$ на лицензию и 100$ на iOS. Он напряг своего отца, и тот купил нам лицензии. Игрушка вышла неплохая — я тогда как раз подсел на flat-графику, сделал трейлер. Наконец нормальный проект, я там даже синглтон использовал!

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

Суть монетизации заключалась в том, что если ты не можешь пройти уровень на три звезды (идеально), то можешь просмотреть видеорекламу, и тебе открывается следующий уровень. Идея показалась мне очень удачной, но она в итоге и положила всю игрушку — на втором клике на рекламу она начинала грузиться бесконечно. Я месяц просидел, промучился, но проблему так и не устранил, после чего удалил игру. Всё что от неё осталось, — ролик на ютубе.

Снова пришла печаль. Я понял, что денег нет ни на раскрутку игрушки, ни на художников — ни на что. Депрессняк «зачем весь этот кодинг» длился два месяца. Потом я прочитал Наполеона Хилла «Думай и богатей», и он меня вдохновил. Раньше я начинал дело с большим энтузиазмом, сидел целыми днями, но потом выгорал так, что противно было на всё это смотреть, бросал на пару месяцев — и шёл на новый виток.

Прочитал книгу — и думаю: куда бы дальше податься? В геймдев пути нет (нужны деньги). Как инди тоже не реализовался. На работу не берут. И решил — раз я в душе художник и раз мне нравится кодинг и дизайн, буду заниматься фронтендом и пойду во фрилансеры (тем более, что я уже знал JS и HTML).

Но сначала мне нужно было въехать во фронтенд. Мой двоюродный брат, который работает в Житомире контент-разработчиком, выделил целый день своего времени, чтобы рассказать мне про процесс разработки, а также про фреймворки и материалы, которые мне нужно было изучить. В итоге, чтобы получить Trial-доступ на курсы teamtreehouse, я открыл себе банковскую карточку.

И как, получилось зарабатывать фрилансом?

— Да, я выполнил один заказ для менеджера по продажам топлива — сделал ему landing page. Это были первые деньги, и я тогда понял: это — верный путь.

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

Сделал себе сайт-визитку за три дня, выучил React. За ту неделю Trial-доступа на teamtreehouse я прошел все курсы по фронтенду, которые там были, а также написал в поддержку и получил скидку для студентов на месячную подписку (было 50$, стало 10$). Так и отдал последние 10 долларов, чтоб разобраться с остальными курсами. И конечно, я выкачивал курсы с рутрекера и потом сидел на них целыми днями. Тогда же я начал более серьезно изучать JS, даже в какой-то степени полюбив его. Написал портфолио, тестовые проекты, научился работать с Github и начал рассылать резюме.

Так ты все-таки хотел на фриланс или в офис?

— Была надежда на фрилансе работать, но в офис тоже хотелось. Это уже было после зимнего хакатона Microsoft по геймдеву, в честь Windows 10. Там я познакомился с фронтендом в связке с Node.js и впервые повстречал других программистов (до этого я их не видел). Мы с моим другом тогда победили, выиграв пять тысяч гривен на обучение в CyberBionic. Я очень воодушевился победой, ведь нас там было 12 команд, и мы с другом заняли призовое место, будучи единственным школьниками (остальные участники были из КПИ и Шевченко).

И вот, после этого хакатона, я на таком подъеме снова захожу на сайт по поиску вакансий. Смотрю — требуется трейни-фронтенд, джуниор-фронтенд. Возраст в этот раз я решил не указывать. Если пригласят на собеседование — там уже попробую уговорить. Тем более что как раз в это время вышла статья про девушку, которая в 19 лет работает тимлидом. Меня эта статья здорово вдохновила, я ей даже в Twitter написал «Спасибо!».

Потратил день, составил красивенькое резюме, указал последние работы (фриланс-заказы) и наработки на Github. Отправил 14 резюме — на те вакансии, куда реально подхожу. Например, на одну вакансию нужно было знать лишь CSS+HTML, JS, а также было указано — «Большим плюсом будет знание bootstrap, опыт с Sass».

Оказалось, что из тех 14 писем было просмотрено только 3-4, и только одна HR добавила меня в Linkedin. Никто больше ничего не написал. Я думаю — ну блин, бред какой-то. Вроде ж нигде не указывал возраст.

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

Для того, которое в офис, мне нужно было отправить своё портфолио и ссылку на Github, показать примеры кода. Им всё понравилось, и меня пригласили на собеседование.

Я пришел, поговорил с руководительницей, она рассказала, чем они занимаются. Оказалось, что вся работа сводилась к написанию виджетов и приложений для Jive. Их фронтенд-разработчик посмотрел мое тестовое задание по JS и сказал «Добро».

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

— Ну, как бы, у меня его нет.
— Почему?
— Ещё не пришлось.
— Сколько тебе лет?
— 16.

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

Собирались оформить меня через СПД (я задавал этот вопрос на форуме). Но мне не очень нравилось, что вся работа — это писать костыли для Jive.

Потом я поговорил с руководителем, который предлагал удаленную работу (второе предложение) — мне оно понравилось больше. Они посмотрели мой Github, примеры работ, сказали, что работа будет затачиваться на верстке, React + Reflux, и что самое главное — быстро учиться и быть инициативным. Я сразу согласился, тем более что это удаленная работа, да ещё и с последними библиотеками и перспективой роста. О чем еще мечтать? Хотя, конечно, я больше хотел бы работать в офисе — ведь в коллективе все-таки легче, чем одному.

Как на твое трудоустройство отреагировала семья?

На протяжении всего процесса поиска работы я информировал маму:
— Мам, я резюме отправил.
— Ну да. (Мол, кто ж тебя в 16 лет возьмет на работу). Ты лучше учись.

Потом вдруг прихожу и говорю:
— Ну всё, мам, меня приняли на работу, я с первого числа уже работаю.
— Ого! Ничего себе!

Но меня в основном поддерживал брат (экономист, 25 лет). Когда я рассказал ему новость, он сказал: «Я ж говорил тебе!». Он и правда всегда говорил мне: «Не сдавайся, иди».

Ты думаешь куда-ни будь поступать?

— Да, хочу на заочный, либо в КПИ, либо в Шевченко. На прикладную математику. Те знакомые, которые заканчивали эти ВУЗы (да и куча статей в интернете) говорят, что единственное, чему тебя нормально научит ВУЗ — это математика и физика, а кодинг — это уже сам. Ну, сам, так сам.

Какие технологи планируешь изучать в ближайшем будущем?

— Чтобы удержаться на этой работе, мне нужно научиться работать с Flux, библиотеками. Хочу научиться нормально работать на Node.js (немного пробовал, жутко понравилось), постепенно дорасти до full-stack веб-девелопера, стать сеньором, набраться опыта.

Твое слово напутствия юным коллегам

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

У меня также была проблема, когда я не знал, что писать и что показать в портфолио. Ни проектов, ни даже идей на pet-проекты — ничего.

Мне ничего не хотелось, меня тошнило, я шел в кафе и писал. После этого момента, когда пересиливаешь себя, идет следующая ступенька — и ты опять начинаешь получать от этого кайф. И начинаешь смотреть на вещи иначе.

История успеха
Для мотивации
48861