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

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

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

На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

 

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

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

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

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

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

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

Годам к 9 дома появился первый компьютер. Первым моим скриптом был .bat (из того же журнала), который я просто переписал и запустил — мне это тогда очень понравилось. В этом же журнале как-то вышла маленькая статья по 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-досок. Классные были и преподаватели. Первый день — лекции, второй день — практика, и так всё время — мне там очень понравилось. Но остальную сумму я потянуть не смог, да и очень не вовремя сломался модем.

Придумали мы гоночки — полу-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. Это были первые деньги, и я тогда понял: это — верный путь.

Сделал себе сайт-визитку за три дня, выучил 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-проекты — ничего.

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

48831