Одним из моих блоков ответственности на работе был сайт компании и мобильные приложения. Периодически приходилось взаимодействовать с разработчиками, которые их обслуживали. Обычно это происходило так: директор придумывал новую фишку, я писал клиентское техническое задание, передавал разработчикам на аутсорс, а они творили магию и воплощали мечты начальства в реальность. Для меня разработчики были кем-то вроде волшебников, писавших неведомые простым людям заклинания, которые как-то работают. Я всегда хотел стать одним из них, но каждый год говорил себе «Чувак, какой из тебя программист, уже слишком поздно начинать» и душил эту мысль на корню. Для меня портрет любого программиста, как и любого айтишника в целом, выглядел примерно так: в 9 лет собрал свой собственный комп из деталей, найденных на помойке, в 16 лет знал как работают любые операционные системы и несколько языков программирования в придачу, в 25 лет сам уже является ходячим компом и знает буквально всё. Этим себя и утешал — «слишком поздно…надо было думать раньше». А других сфер, которые бы хоть как-то меня привлекали, на примете так и не появилось.
Но поскольку запахло жареным, то я решил хотя бы попробовать, а там будь что будет. Что-то получится — отлично, не получится — сам виноват. Из опыта в этой сфере на тот момент были лишь короткие курсы HTML-верстки, которые я проходил в далеком 2003 году. Чуть позже я узнал, что HTML — это не язык программирования, как мне тогда казалось, но, тем не менее, было решено начать с освоения верстки и посвятить ей всё свободное время.
Практически каждый вечер и каждые выходные я стал проводить у ноутбука, изучая статьи и просматривая многочисленные видеоуроки на ютубе. Это доставляло мне истинное удовольствие! Вот я пишу «Привет, мир» в редакторе кода и вывожу эту фразу на экран красным цветом, что может быть прекраснее? И не так уж это и сложно, как казалось в самом начале. Но чем дальше я шел, тем с бо'льшим количеством проблем сталкивался. Иногда приходилось несколько вечеров подряд сидеть над одной и той же задачей и перечитывать кучу информации. Кстати, читая всевозможные форумы, я обратил внимание на неприятную вещь: стоит новичку задать вопрос, как на него сразу налетает стая коршунов с криками «Тебя в гугле что ли забанили??», «Ты совсем тупой что ли??» и т.п. Для меня так и осталось загадкой, зачем столь опытные всезнающие люди сидят на форумах и тратят своё драгоценное время на подобные ответы. Настоящий профессионал либо ответит по существу, либо пройдет мимо, либо ему в принципе будет не до посещения каких-то там форумов.
Глупо было рассказывать кому бы то ни было, кроме родных, что я решил встать на путь программиста, но с некоторыми людьми я поделился. Никогда так не делайте, кстати. «Пфф, в 30 лет решил прогером стать? Ну удачи» — вот что я в основном слышал и читал от людей. Это меня обидело, расстроило и подстегнуло одновременно, сдаваться без боя уже не хотелось.
Прошло два месяца. Я тратил уйму времени на самообучение, но чёткого плана не было и всё начинало превращаться в какой-то сумбур, да и дисциплина подводила. Я выучил самые основы HTML и языка стилей CSS, но на тот момент у меня даже не было ни одного захудалого проектика, который с грехом пополам можно было бы засунуть в портфолио и показать потенциальному работодателю или заказчику (ха-ха, если бы даже и был, то это ничего бы не изменило, знаю). Куда двигаться дальше-то? Какой план? Да фиг его знает, столько всяких языков и фишек, что глаза разбегаются, а многообразие меня всегда заводило в тупик и высасывало энергию. Это как битва с бесконечно-головым драконом — рубишь ему одну голову, на ее месте вырастают две новые. Учишь одну тему — понимаешь, что надо учить еще две…
Поскольку никаких знакомых менторов, которые были бы готовы со мной возиться и «тащить» в мир программирования и в помине не было, я начал подумывать о курсах (никакой рекламы не будет, не переживайте). Вскоре наткнулся на интенсив «Первый сайт за три дня» или как-то так— смотришь видео, повторяешь за наставником, в случае проблем просишь помощи у кураторов или у других участников интенсива и они, в отличие от динозавров на форумах, вежливо и по существу отвечают. Стоило это удовольствие 99 рублей. Мне понравилось, но повторять — это одно (и обезьяна сможет), а сделать что-то самому и с нуля — совершенно другое. На глаза попался другой интенсив, тоже за 99 рублей — «Три сайта для портфолио за три недели». Тут уже полностью самостоятельная работа (нужно было сверстать сайты по psd-макету), хоть и под условным присмотром куратора.
На первый макет у меня ушло две недели… Были истерики, слёзы (без преувеличения), психи, крики о том, что я тупой и ничего не добьюсь в этой жизни. Хотелось плюнуть и бросить это дело, ведь ничего толком не получалось, не сайт, а хрень какая-то! Спасибо девушке, что всё это вытерпела и замотивировала двигаться дальше, несмотря ни на что. Это был переломный момент, желаю всем именно таких людей рядом… И вот, на второй макет у меня уходит всего три дня, а с третьим я справился за сутки, чем сильно удивил своего куратора, которая уже, наверное, крест на мне поставила. В итоге, с интенсивом справились единицы (большинство сдалось на первом же макете, как чуть не сдался я), а мои работы понравились куратору и ее руководителю больше остальных. Мне было предложено бесплатно пройти полноценный полуторамесячный курс по верстке одновременно в качестве студента и помощника куратора (на курс записалось больше людей, чем планировалось, и банально не хватало рук на мелкие задачи). Это было странно и удивительно, особенно после постоянных мыслей о том, что я ни на что не годный старпёр-лузер. Конечно же, согласился.
И вот, наступил 2018 год и я уже не просто учусь, а по сути работаю на двух работах (пусть одна из них сначала даже не оплачивалась). Утром пашу в офисе, а вечером изучаю уроки и помогаю проверять домашние задания других студентов. Изучаю тему, делаю домашку, сдаю на проверку — на следующий день получаю обратку от кураторов и помогаю им с проверкой домашек других людей. Сил уходило немало, я практически не спал, не занимался спортом, никуда не ходил, но был полон энергии и с горящими глазами (ведь начал заниматься тем, что нравится и что держит мозг в постоянном тонусе!). Курс я закончил сильно раньше остальных студентов и к его концу уже был не просто помощником, а практически полноценным куратором. Конечно, часто приходилось спрашивать советов у гуру и далеко не на все вопросы я мог дать мгновенный ответ, но так или иначе справился.
В течение года я был куратором еще на двух подобных курсах (уже за символическую оплату, кстати) и мне даже доверили сделать «боевые» лендинги для данной организации. К сожалению, даже на такую ерунду, как одностраничные сайты, нужно в идеале обладать не только навыками верстки, но и навыками программирования. В частности, знать хотя бы основы JavaScript'a — я его знал на уровне «скопировать из гугла — вставить — удивиться, что ни хрена не работает — удалить». Так что над следующей ступенькой своего развития долго думать не пришлось.
На второй работе (для удобства назову ее «школой») как раз запускался пробный курс по основам JS и мне предложили его потестировать в шкуре студента. Потестировал, прошел… Это был уже абсолютно, абсолютно другой уровень. Однажды у меня была Рено 88 года и она дико ревела, когда я на ней разгонялся до 110 км/ч. Примерно то же самое происходило с моим мозгом, когда я пытался усвоить всякие там промисы, контексты вызова и прочие приблуды джаваскрипта. Я был помощником куратора и студентом на трёх курсах по JS подряд, но лишь на третий раз начал хоть как-то понимать базовые темы. Вернулись сомнения в правильности выбора будущей профессии, ведь если даже о основами языка полный треш, то что же будет дальше? И ещё я начинал перегорать... Обучение уже не доставляло мне особенного удовольствия, а каждая новая тема воспринималась как "Господи, ну что это хрень, зачем это придумали вообще?". Ну и основная работа никуда не делась. Кстати, дела там шли уже совсем грустно, просто отвратительно.
Очередной, но далеко не последний кризис я перетерпел, взял себя в руки. К концу 2018 года у меня в арсенале было несколько работ по верстке (заказы специально не искал — в основном ко мне обращались ученики школы или ее руководство, делал всякую ерунду типа лендингов), знания HTML/CSS и основ JS, я был полон сил и как-то излишне самоуверенно начал смотреть в будущее. Впервые за долгое время меня не пугало увольнение с основной работы, хотя полноценную занятость в новой для себя профессии я еще даже не искал, а в школе получал копейки.
Следующий переломный момент случился в ноябре-декабре, когда школа предложила мне стать старшим на курсе по основам языка программирования PHP уже за вполне приличные для частично-удаленной занятости деньги. Нужно было организовать работу кураторов, постоянно быть на связи с преподавателем, общаться с проблемными учениками + пройти курс самому, чтобы впоследствии высказать мнение, насколько всё было доступно и понятно (стоит ли продолжать сотрудничество с преподавателем дальше или нет). На тот момент мои знания в PHP равнялись нулю с хвостиком, а преподом был очень опытный тимлид с огромной зарплатой (то есть, чуть ли не богом в моём понимании). Я был в предвкушении.
Данное предложение я посчитал знаком свыше и написал заявление на увольнение на основной работе. Несмотря на полный треш в компании (выручки упали в два раза за год), директор отнесся к моему заявлению без негативных эмоций и подлянок, так что никаких проблем с получением заработной платы и компенсации за накопившиеся отпускные дни не было. Таким образом, финансовая подушка на несколько месяцев скромной жизни (пока я бы искал новую основную работу) была обеспечена.
Ну что ж, первая половина курса прошла неплохо. Большинство учеников были довольны, всё получалось, препод был всегда на связи и помогал отстающим, да и просто отвечал на любые вопросы, кураторы тоже не подводили. Но затем наступил треш под названием «объектно-ориентированное программирование». Это был какой-то прыжок из «2+2=4» в высшую математику. Думаю, практически все ученики (да и я в том числе) смотрели уроки по ООП с таким лицом:
И это не самое страшное. Да, тема сложная, но ведь на то и опытный преподаватель, чтобы её доступно разжевать, не правда ли? Так вот, опытный программист далеко, далеко не всегда является хорошим преподавателем. Объяснить тему доступным для понимания языком он так и не смог, с его колокольни всё было просто и понятно, ведь он это освоил и впитал много-много лет назад, а ученики рвали на себе волосы и просили вернуть деньги за курс… Ситуация усугубилась еще и тем, что преподаватель серьезно заболел (с его слов) и в итоге вообще пропал без вести. Как старшему на курсе, пришлось всё разгребать самому. Задача была непростая: вникнуть в тему, о которой узнал совсем недавно, разобраться хотя бы в ее основах и нормальным человеческим языком объяснить ее людям. С грехом пополам и с помощью кураторов (у которых был какой-то опыт в PHP, в отличие от меня, но не было желания преподавать) получилось. Я дико волновался, запинался, путался, но ученики смогли пойти дальше. Таким же способом нам удалось провести еще несколько лекций на более простые темы. Курс, на котором я должен был чему-то обучиться, превращался в курс, на котором чему-то обучал я. И да, это был полнейший маразм.
Преподаватель так и не объявлялся, а курс надо было либо как-то достойно закончить, либо вернуть всем деньги. Нового наставника так и не нашли (а, может, и не искали вовсе, я не знаю). Ситуация патовая. После новогодних праздников по плану была архисложная неделя — преподаватель должен был рассказать про один из фреймворков PHP (Yii2) и показать, как с его помощью можно сделать интернет-магазин. И если что такое PHP я хотя бы приблизительно знал и до курса, то в Yii2 был просто полный, полнейший ноль. Я даже толком не знал, что такое «фреймворк», о чём тут можно говорить вообще? Но руководство уговорило — попробуй за новогодние праздники что-нибудь придумать на эту тему. Получится — супер, нет — вернем людям бабки. Тебе, мол, заплатим в любом случае, главное постарайся.
Это был вызов, один из самых серьезных челленджей в моей жизни. В новогодние праздники я проводил у компьютера по 16-18 часов, плакал над документацией, пересматривал сотни видео (Боже, храни Ютуб), пытался зацепиться хотя бы за что-нибудь, что понимаю сам. Это было ужасно, странно и дико интересно одновременно. На выходе получился простенький интернет-магазин, я пошагово рассказал людям, как его делать и что за что отвечает, но шаг влево/шаг вправо от темы и я мог поплыть... Всё-таки за полторы недели изучить все нюансы фреймворка было нереально. Конечно же, не всем ученикам такой расклад понравился (представьте, что вы заплатили бабки за опытного гуру, а вам что-то пытается втирать какой-то нубяра-нонейм), возвраты были, но большинство всё-таки дошло до конца и оставило положительные отзывы. Кто-то даже сетовал, что я не был преподавателем с самого начала, а кто-то даже умудрился найти работу. Руководство школы не обмануло — я получил достойное вознаграждение и, кроме того, предложение записать свой собственный курс по основам PHP (настолько им понравилась обратка от учеников)… Я пожалел, что согласился, это было глупо и странно. Одно дело — это попытаться помочь в трудной ситуации, другое дело — изображать из себя ментора без опыта работы и солировать весь курс.
Да, я записал курс и поскольку никто не называл меня «синьор-помидором со столетним опытом работы в Яндексе» и не обещал трудоустройства по окончании курса, то ничего страшного не произошло, жалоб не было, людей не обманывали. Ожидания учеников примерно совпали с реальностью. На курс пришли в основном те, кого я и хотел увидеть, — зеленые-презеленые новички, которым нужно было максимально простым и доступным языком рассказать про самые-самые основы языка и вбить в голову, что это лишь 1% от всего, что нужно знать для работы в современных компаниях.
Параллельно курсу, весной 2019 года, я начал искать работу junior PHP-разработчиком…
Да, я по-прежнему был новичком в программировании, но мне казалось, что такой факт, как «собственный курс» и несколько работ в портфолио должны были мне дать хоть какие-то преимущества. А еще мне понравилось работать из дома и ой как не хотелось возвращаться в офис, поэтому сначала поиск ограничивался лишь вакансиями по удаленке.
Ну что ж, это было фиаско. Одно приглашение на интервью на каждые пятнадцать отправленных резюме. И я провалил все скайп-собеседования с тимлидами, на которые меня позвали. Я не ответил нормально практически ни на один вопрос. 90% тестовых заданий я не начинал делать, потому что не понимал даже в теории, как они делаются. А те тестовые задания, которые я вымучивал, забраковывали, ведь говнокод есть говнокод. Что касается возраста, то да, предвзятое отношение было в комплекте — прекрасно теперь понимаю, что чувствуют молодые девушки, которым втирают, что «нафиг нам тебя брать, вы скоро родите и уйдете в декрет». В моем случае это было «нафиг нам тебя брать, ты уже старый, ничего не знаешь и не справишься с нагрузкой». Пришлось понизить планку — теперь я стал искать удаленные стажировки, либо предлагал какое-то время поработать бесплатно («только научите»). Удалось получить несколько предложений, но практически во всех случаях стажировка предполагала самостоятельное обучение непонятной хрени без какой-либо поддержки, а это меня не устраивало. Лишь в конце мая, после очередного провального собеседования, надо мной сжалился один программист-ИПшник (его впечатлила история про Yii2 и он сказал что-то вроде «я сам люблю вызовы, поэтому попробую сделать из тебя разраба»). Кроме того, он категорически отказался от понятия «бесплатная стажировка» и установил мне ставку в 150 рублей/час по факту выполненных заданий. Для Санкт-Петербурга, где я проживаю, это не очень серьезные деньги (даже в МакДаке получают больше, если верить рекламе), но, чёрт возьми, надо же с чего-то начинать!
Поначалу всё было просто шикарно — за две недели я прокачался больше, чем за предыдущие полгода, вместе взятые. Но, начиная с июня, заданий для меня становилось всё меньше и меньше, обучение как таковое вообще прекратило существование, а на мой вопрос «что нужно сделать, чтобы выйти хотя бы на 30-40 тысяч в месяц» я получил ответ «ты сможешь выйти на эту сумму лишь через полтора года, у тебя слишком мало опыта». Думаю, он это сказал, чтобы я от него отвязался — свой челлендж по превращению меня в программиста он провалил, хоть я и старался изо всех сил. Наверное, просто не хватало времени нянчиться с какими-то там стажерами, обиды ни в коем случае не держу, наоборот. Расстались на нейтральной ноте.
Финансы, тем временем, пели романсы, поэтому пришлось спуститься с небес еще ниже и начать искать не только удаленную, но и обычную офисную работу. Еще с десяток неудачных собеседований и криво выполненных тестовых заданий и вот, наконец, повезло. Устроился на позицию Junior PHP-разработчика, как и хотел. По словам моего нынешнего руководителя, ему пришло очень много откликов. И хоть моё тестовое задание не было идеальным, оно было «лучшим из худших», поэтому он дал мне шанс. На испытательном сроке висел на волоске, много нервничал и даже психовал… Но что-то мне подсказывало, что если не зацепиться сейчас, то поезд реально может уйти навсегда. Зацепился.
В компании я работаю уже несколько месяцев. Мы участвуем в организации крупных мероприятий, отвечаем за веб-часть. Тяжело. Много туплю, задаю много вопросов, периодически косячу… Но с каждым днем опыта и знаний становится всё больше. В трудовой, наконец-то, написано «программист». Зарплата пока меньше, чем на предыдущем месте работы (всё-таки я пока всего лишь джун), но зато перспективы не ограничены. И, наверное, впервые в жизни я действительно занимаюсь тем, что мне нравится. При этом не скрываю, что мне по-прежнему страшно за своё будущее и я с ужасом вспоминаю все эти муки собеседований и череду унижений, но всё уже далеко не так печально, как пару лет назад.
Что касается преподавания, то пока завязал, конечно же. Сначала встану на ноги, а потом уже будет видно.
Кстати, я собрал в кучу вопросы, с которыми сталкивался на бесконечных собеседованиях на должность junior PHP-разработчика. С ними можно ознакомиться в конце данной статьи, если будет интересно: https://vk.com/@gribgribych-ustroistvo-na-rabotu-junior-php-...
Спасибо всем, кто дочитал до конца. При необходимости задавайте вопросы. Тем, кто сейчас находится в том же состоянии страха и неопределенности, в каком находился я два года назад, желаю успехов и терпения, ведь...