Колонки

«Начать карьеру в IT могут только избранные?» Как бывший массажист стал разработчиком без высшего образования

Колонки
Максим Золотой
Максим Золотой

Фронтенд-разработчик в ОКБ МЭИ

Полина Константинова

Максим Золотой, студент факультета веб-разработки GeekUniversity (GeekBrains) и фронтенд-разработчик в ОКБ МЭИ, на собственном примере доказывает, что нет ничего невозможного. Приехав из Петербурга, Максим успел поработать и массажистом, и в ночном клубе. Но в итоге стал веб-разработчиком. В колонке он рассказывает, как ему это удалось.

«Начать карьеру в IT могут только избранные?» Как бывший массажист стал разработчиком без высшего образования

Есть такая шутка: «Мне уже 28, а я еще не знаю, кем стану, когда вырасту». Вот это было про меня, с той разницей, что мне было 26. Определенной профессии к тому моменту я не приобрел: зарабатывал в основном в ночном клубе или массажистом.

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

У меня было впечатление, что начать карьеру в IT могут только избранные: надо обязательно окончить вуз по специальности либо потратить еще больше времени на самообразование.

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

Самообразование и курсы

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

Первая всероссийская премия в области AgroTech-решений. Участвуй сам или номинируй достойных!

За пару месяцев я накопил на нормальный ноутбук, а затем скачал курсы по HTML, CSS, JS, PHP и четыре месяца самостоятельно их изучал. Тогда у меня появилось чувство: «Вот оно — то, чем хочу заниматься!». 

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

Благодаря начальной подготовке я легко усваивал большие объемы нового материала, в то время как у многих одногруппников ломался мозг от новых слов и конструкций. Я уже знал многое из того, о чем они слышали впервые, поэтому погружение на более глубокий уровень давалось мне легче.

Еще очень важно, что у меня было достаточно свободного времени для учебы. На тот момент я работал в ночном клубе два раза в неделю — этого было достаточно, чтобы платить за еду и жилье. Все остальное время сидел дома и учился. А конкретнее, смотрел вебинары и одновременно делал практические проекты. 

К счастью, я мог выбирать, что мне интересно. Сначала сделал сайт родителям. Затем — сайт знакомств, где все было на AJAX и очень не хватало веб-сокетов. Из учебных проектов, которые мне до сих пор очень нравятся — написал браузерную игру «Змейка» и генератор лабиринтов.

На «Змейку» ушло, наверное, дней десять. Чтобы реализовать все свои задумки, пришлось выйти за рамки того, что требовалось по программе курса, но в итоге получилось здорово, на мой взгляд.

Я добавил в игру звуки, несколько уровней сложности и различные бонусы, которые выпадают на поле. Есть система начисления очков и возможность ставить игру на паузу.

Проект до сих пор хранится в моем DropBox. Файлы, необходимые для знакомства с игрой, вы найдете и загрузите по ссылкам: раз и два

Опыт работы над этим проектом очень пригодился мне впоследствии. Тогда я впервые столкнулся со многими типовыми проблемами веб-разработки и научился их решать.

Front или Back? Ответ — Fullstack!

Когда пошел учиться, решил не ограничиваться фронтендом, потому что без серверной части и баз данных ни одного приличного сайта не сделаешь.

Вопрос для меня был не в том, учить ли back-end, а, скорее, наоборот. 

Изначально мне не нравился front-end — он казался слишком сложным. Думал, вообще только серверной частью заниматься, но сейчас все изменилось: я глубже вник в оба направления и с удовольствием делаю все — фронт и бэк. Так ты меньше зависишь от других и лучше представляешь сайт как единое целое.

Сейчас на основном месте работы использую стек технологий React + MobX + PostgreSQL + Symfony. С React и МobX чувствую себя уже очень уверенно, а вот с postgresql и symfony пока на «вы». Чтобы как следует потренироваться в их использовании, пока не хватает подходящих задач.

Начальные трудности: как не бросить все сгоряча

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

Когда я изучал верстку, поначалу делал все на чистом CSS и сложно было перейти на препроцессоры типа SASS. Но потом я переборол стремление «оставаться в зоне комфорта» и теперь не представляю своей работы без использования SCSS.

Фото: Unsplash

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

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

То, что казалось недоступным, как письмена древней цивилизации, становится элементарным, и удивляешься, как вообще можно было этого не понимать.

В самом начале изучения JavaScript у меня пару раз были мысли все бросить. Но, несмотря на трудности, мне все еще было интересно. Я вспомнил, как загорелся идеей развиваться в этом направлении. Продолжил учиться, преодолел «пик непонимания» и окончательно решил сделать веб-разработку своей профессией.

Как я нашел работу: сначала фриланс, затем — удаленку 

Постоянную официальную работу я нашел недавно — на ней в основном создаю фронтенд-компоненты на React. А начинал я с заказов от знакомых.

Оказывается, веб-разработка — настолько востребованное дело, что достаточно всем рассказывать, чем занимаешься, и клиенты начинают появляться сами собой.

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

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

Партнерам заказчика сайт понравился — они тоже захотели себе такой. И с ними я тоже договорился на зарплату. С обоими заказчиками сотрудничаем до сих пор.

Сейчас для работы с заказчиками использую Vue + Vuex + Laravel + MySQL. Не так давно начал изучать эти фреймворки — раньше делал все на чистом JS и PHP. Но чувствую, что настала пора идти дальше, и этот новый стек технологий мне очень нравится  — есть желание углубиться в его изучение.

Опыт собеседований на PHP-разработчика

В декабре 2018 года я решил, что у меня достаточно свободного времени и знаний, чтобы устроиться на официальную работу. Начал искать вакансии PHP-программиста, потому что фронтендом на тот момент я заниматься не хотел. По собеседованиям ходил около двух недель — много отказывали из-за недостатка теоретических знаний.

Сейчас, когда у меня уже есть опыт коммерческой разработки, считаю, что рекрутеры были не совсем правы. Не столь критично, знает ли кандидат, к примеру, какие заголовки приходят от сервера клиенту. Главное, чтобы он понимал, где это посмотреть, и, когда понадобится, легко мог решить задачу, связанную с обработкой ответов сервера.

Мне попалась вакансия, где нужно было выполнить тестовое задание — с нуля создать гостевую книгу. Я сделал ее за полдня, отправил на проверку, и после этого меня пригласили на личное собеседование.

На первый раз я попросил зарплату всего 50 тысяч рублей в месяц, потому что мне важно было получить стартовый опыт коммерческой разработки.

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

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

Я очень расстроился, но, как потом выяснилось, преждевременно. Через месяц они снова написали мне и сказали, что специально для меня открыли место без вышки. Так я начал работать.

Удаленная работа «на два фронта»

В ОКБ МЭИ я устроился на дистанционной основе. Мне так комфортнее: дома у меня хороший компьютер и монитор, плюс, не нужно каждый день тратить время на дорогу. А благодаря тому, что очень повезло с тимлидом, никто не требует от меня сидеть на рабочем месте с 9 до 18. График абсолютно свободный, главное — выполнять задачи.

Еще с двумя заказчиками я продолжаю работать как удаленный сотрудник — единственный в их командах специалист «по сайтам». :) Разработка и поддержка полностью на мне. Иногда даже делаю email-рассылки, обрабатываю картинки в Photoshop и выполняю другие сопутствующие задачи. Постоянно нужно что-то дорабатывать в соответствии с новыми идеями и пожеланиями клиентов.

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

Каждый день ездить в офис и обратно в часы пик я категорически не готов — для меня это пытка.

Поскольку работа удаленная, собираюсь попробовать путешествовать с ноутбуком и решать задачи в пути. Посмотрим, что получится. :)

Фото: архив автора

Флешбэк: переезд из Петербурга в Москву без подготовки

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

Для меня практически нет разницы между Питером и Москвой. Просто Питер уже надоел, потому что я там почти всю жизнь прожил.

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

Продолжаю развиваться: свои проекты 

В свободное время для себя стараюсь сделать побольше frontend- и серверных компонентов, из которых потом смогу за рекордные сроки собирать сложные высоконагруженные сайты, например, интернет-магазины.

Уже сделал много интерфейсных компонентов на Vue: кнопки, компоненты формы, красивый загрузчик изображений, который показывает прогресс загрузки и сразу же отображает загруженные пользователем файлы. Все элементы я постарался сделать в стиле material design — идеи стилей и анимации частично заимствовал у Google.

Фото: Unsplash

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

Путь велосипедиста

Я знаю, что есть 1С-Битрикс, какие-то готовые библиотеки типа vuetify. Но мне интересно развиваться и делать свое. Тем более, когда все сделано и поддерживается тобой, не нужно долго изучать документацию, вникать в чужой код — берешь готовое и кастомизируешь.

Еще я столкнулся с такой проблемой: всем заказчикам хочется иметь админку для сайта. А делать ее тяжелее и дольше, чем сам сайт. Поэтому я решил разработать единую систему, которую выложу на свой домен, чтобы любой заказчик мог зайти туда под своим логином и паролем и управлять данными своего сайта: товарами, заказами, заявками. 

Сделал это на основе Vue. Клиентская часть реализована как SPA, а для серверной части самой админки и серверных частей сайтов заказчиков использую Laravel.

Работаю над этим проектом уже около трех месяцев, и он близок к завершению: получается действительно круто. Главное — это помогло быстрее изучить Vue на хорошем уровне. А вот Laravel еще предстоит подтянуть.

Фото на обложке: архив автора

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Вы теряете заказы из-за своего снобизма — как разработчикам правильно работать с клиентами
  2. 2 «Долина — это большое село». Программист из Украины — о переезде в США и работе в Netflix
  3. 3 «Нам не нужны роботы, похожие на людей»: почему разработчики не должны наделять их человеческими чертами
  4. 4 5 признаков слишком опытного программиста
  5. 5 «Понизили цены на услуги в 10 раз. В этом аду мы жили несколько месяцев». История программистов, открывших свою студию
Насколько твой офис комфортный и безопасный?
Это можно проверить с помощью теста
Пройти тест