Уйти с работы в никуда. Загореться идеей написать свой сайт. И в итоге стать программистом

Здравствуйте! Сегодня смотрел ролик, как человек в 38 лет ушёл с завода, чтобы стать программистом и вспомнилось, что сам давно хотел написать статью о подобном. Как раз был повод — на этой недели прошёл ровно год с моего первого официального трудоустройства в отрасли.

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

Итак, начнём.

Стартовые возможности

На момент того, как я решил “с меня хватит”, мне стукнуло 28 лет. Я уже имел стаж официальной работы в 6 лет, из которых 3 года занимал не руководящую, но уже последнюю к руководящей должности ступень. Работал экономистом и 5 из 6 лет провёл в гос. структурах. Работал очень усердно, а работы было так много и всем было так плевать на прогресс, что за 6 лет просто сгорел в ноль. От суммарных факторов. Но больше от той мысли, что 6 лет занимался полнейшей ерундой и полученный мной опыт не будет релевантным на 100% уже вне моей области. А вне моей страны его релевантность не превысит и 10%.

Вообще, я по образованию инженер. И должен был работать в газовом хозяйстве, но Газпром меня не взял (что оказалось к лучшему). Поэтому смена сфер деятельности для меня была не новой. Я вошёл в экономику практически нулевым и за 2 года уже перерос многих моих профильных коллег. И да, ещё зачем-то получил вторую вышку. Теперь ещё и дипломированный мировой экономист.

Родился и вырос я в обычной семье. Очень близкой к бедному классу. Хотя в 90ых практически все были бедные, но вот очень сильно отложил в душе отпечатки этой бедности. Наверное поэтому смог вырастить в себе понимание ценности труда и денег. Мне повезло, что где-то в 2000ых родители нашли стабильный источник дохода и меня отдали учиться в одно из самых элитных заведений города по направлению — информационные технологии. Это сейчас оно полностью мажорное, а тогда туда можно было попасть любому смертному и стоило относительно копейки, главное было вывезти экзамены и обучение. В общем, если бы сказал, что пришёл в IT полностью нулевым — я бы слукавил. Даже если учесть, что нам преподавали программирование по программам, записанным в бумажном блокноте, люди, которые сами не понимали зачем учились на программистов, всё же выучился хоть чему-то. Я понимал алгебру логики, алгоритмы, базовые конструкции СИ-подобным языков и тд. Но писать программы я не умел.

Поэтому можно сказать, что компьютер появился у меня довольно поздно, где-то в 8 классе, но он всё же был. И да, для 8миклашки и мальчика, выросшего на денди и сеге, компьютер я использовал на 99% времени не по назначению.

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

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

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

Как это было.

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

За те 6 лет я достиг определенных навыков в саморазвитии и стратегиях развития и самообучения. Мне пришло в голову, а почему бы не поделиться этим с миром и не запустить какой-нибудь проект, который смог бы приносить мне хотя бы минимальные 30к в месяц, чтобы я смог оставаться на плаву и жить хотя бы в ноль. И я начал перебирать возможности. Отсеял три — 1) ютуб, т.к. я более-менее понимаю как он устроен 2) писательство, т.к. я имею определенный стиль письма, наработанный годами переписок на различных чатах и форумах 3) программирование, т.к. это самый перспективный способ охватить максимально широкую аудиторию.

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

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

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

Ютуб отлетел почти сразу, потому что его окупаемость была очень сомнительной, а рынок так сильно перегрет, что я очень сильно рисковал остаться неудел. А моей целью было смягчить риски от неудачи, которую я тогда уже оценивал процентов в 95, но всё же верил в эти оставшиеся 5.

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

Осталось программирование. Я как сейчас помню насколько это было тупо и смешно, но я открыл блокнот на рабочем столе, как нас учили в школе создал открывающийся и закрывающийся тег html, написал туда без всяких оберток “мой сайт” и открыл в браузере. И… получил удовлетворение что я начал великий путь, он правильный и осталось его только пройти.

Следующие несколько недель я провел в изучении верстки. У меня был большой excel файл, куда я выписал все теги, за что они отвечают и как их использовать. Таким образом мне удалось сверстать что-то похожее на главную страницу сайта из 90ых. Но как заставить это всё двигаться?

Я начал смотреть в сторону cms. Долго придумывал имя проекту, купил себе домен, оплатил хостинг на месяц. Поставил туда вордпресс и приступил делать своего монстра. Вордпресс меня очень быстро разочаровал, как и все остальные cmsки. Это было совсем не то, чего я хотел бы. А хотел я полного контроля над всей системой.

Также у меня была дальняя знакомая, оставившая большой отпечаток в моей жизни, которая занималась QA. Это сейчас я понимаю какие были у нее задачи, а тогда я думал, что она программист. Помню как до 2ух ночи писал ей большое предложение и разложил всю идею, я верил что ей понравится, потому что мы были крайне близки по духу. Также предложил разделить пополам объем работы. Она резонно задала вопросы, кто будет писать фронт, кто будет писать бек и какая у нее в этом роль, потому что она не кодер и ей не нравится кодить. В тот момент я узнал что программисты делятся на фронтендеров и бекэндеров. Это было… тупо. Но она не подала вида насколько тупо, однако забегая на год вперед, потом в нашем последнем разговоре мне это припомнит.

Это был большой удар, но не сломил мою силу воли. Я начинаю плотно искать себе кумиров и мотивироваться на достижение цели. Смотрю ролики про Илона Маска, читаю биографию Павла Дурова, заряжаюсь их идеями и построением рабочего процесса. К слову, именно выступления Илона Маска разожгли во мне такой пожар непоколебимости в том, что я смогу. Крутой мужик. До сих пор пересматриваю его отдельные выступления, когда он ещё был никем, срался в твиттере и заявлял что умрёт на Марсе.

Итак, я понимаю, что помню о программировании что-то, но по-сути ничего. И всё мне придётся делать самому. Потому что денег 0, идея сырая, то что она не выживет мои ставки, напомню, 95%. Начал я восстанавливать свои знания с языка СИ. На моей второй работе очень сильно процветало стукачество отдельных лиц, а я сидел позади зеркала, что в итоге каждый видел мой монитор. В свободное от задач время я открывал в малюсеньком окне СИ документацию и СИ онлайн компилятор, и начинал писать простые Hello world. В принципе, по час-два свободных в день, за две недели я понял многое о типах данных, их хранении и о разницах между высокоуровневыми и низкоуровневыми языками.

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

За этот месяц я по три раза пересмотрел каждый вариант развития. Я брался кодить, у меня ничего не получалось, я всё бросал. Метался к писательству, блоггингу, и обратно в программирование. И так каждый день я передумывал. Даже купил себе профессиональный микрофон, который с тех пор валяется в шкафу и был использован до 10 раз, в т.ч. на мой успешный собес.

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

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

На прошлой работе у нас был молодой парень, который учился в магистратуре и параллельно увлекался программированием, но тоже был в не в своей тарелке, что в итоге быстро ушёл. Я списался с ним и весь следующий год обсуждал различные аспекты программирования. К слову, я никогда не просил его меня чему-то учить конкретному, или объяснять то, что я не понимаю, потому что считал это неправильным, мы скорее общались как философ и слушатель на форуме. Он объяснял мне почему выбрал pyton, почему начал учить вторым языком js, чем хороши фреймворки, кидал мне книги которые читает сам и тд. А я с ним в свою очередь спорил и приводил аргументы почему я придерживаюсь того или иного языка, и что думаю на ту или иную тему. Ему я тоже предлагал сотрудничество, но мы были на разных уровнях развития и когда я догнал его, общение уже умерло.

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

В общем, да начнётся священная война, для бека я выбрал PHP. Здесь четверть аудитории подумает закрыть статью с возгласом: “А ну понятно, пыха, очередной говнокодер на cms, всё ясно, а как хорошо начиналось”. Но спешу остановить. На тот момент, когда я начал учить пыху уже релизнулась 7.4 версия и была доступна 8.0 альфа. 8+ пыха и то, что принято считать говнопыхой (5+ версии) уже абсолютно разные языки. Да, у языка есть проблемы, но не больше и не меньше чем у того же хайпового пайтона. Что касается CSM. Я выбросил их в помойку в первый же день знакомства и больше никогда не возвращался. Для фронта я естественно выбрал JS.

Обучение

Итак. Я начинаю учить уже по серьезному свой профильный язык программирования — PHP. Я философствовал с моим непризнанным в IT другом на тему фулстэка и пришёл к выводу, что фулстэк это всё сразу и ничего толком. Поэтому уже на тот момент я укрепился в своем мнении, что мне нужно оставлять за собой пути отхода и уходить в случае провала (напомню, с шансом 95%) в PHP бэкэнд разработку.

Тоже к слову, моя IT QA знакомая мне советовала вначале устроиться на работу, посмотреть как там выглядит всё изнутри, а потом уже рваться во что-то своё. Я тогда ей пшыкнул, типа, вздор, не хочу я работать программистом, я хочу просто написать свой сайт и развивать продукт. А программирование для меня инструмент. Знакомая как в воду глядела, в итоге я устроился программистом и в целом я не получил никакого отвращения от профессии, даже наоборот.

Но вернемся к теме. Я заказываю книгу PHP 7 в подлиннике Дмитрия Котерова. Это сочинение примерно на 1000 страниц по всем возможностям языка. Даже сейчас я думаю, что мне будет полезно перечитать эту книгу, если когда-нибудь найду время. И начинаю плотно учить PHP.

Понимаю, что времени на изучение я потрачу гораздо больше чем имею средств, возвращаюсь на первую работу на должность ниже, со своими условиями. Им нужен был человек на пол года, мне нужна была работа на полгода. Мы нашли друг друга. Я работал с крупняком, что обычно не делают на этой должности, но мне в ответку не дают тупые задачи и не тратят мое время на принеси-подай-с*би-не мешай. Таким образом, зная хорошо эту кухню я делал быстро и качественно свою основную работу, чтобы оставить себе где-то 1-2 часа в день на самообучение программированию.

Родители естественно были в шоке но поддержали мое решение, увидев что я всё распланировал и понимаю что делаю. То что я уже месяц как безработный был умолчал.

Итак, время летит, я учу PHP по книге. Дома сношу винду, ставлю впервые дебиан и переезжаю на следующий год исключительно на линукс. Ставлю связку nginx+php7.4 и начинаю делать первые наброски бека. У меня ничего не получается… Я не понимаю что такое ООП, чем отличается класс от объекта, что такое состояние объекта, чем процедура отличается от функции и тд.

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

Я провалился в депрессию, у меня не получается, я не понимаю как это работает. Решаю сменить направление. Если в PHP я не смог, значит нужно зайти со стороны JS. С JS гораздо проще, его можно запустить в любом браузере, что дает возможность больше практики. С PHP была проблема, что на работе я не мог его практиковать. А онлайн версии всего лишь гоняли один скрипт, а я уже дома гонял целые модули.

Таким образом я начал учить JS. И это будет забавным, но ООП я понял только благодаря JS и онлайн учебнику по js — learn.javascript. Здесь я уже начал писать простые скрипты, динамически подменяющие списки. Делал различные задачи из учебника. И следующие месяца 2 или 3 я провёл за js. PHP забросил и за всё это время ни разу к нему не вернулся.

Когда я достаточно набил руку в JS и получил ряд внутренних побед, что я справляюсь, вернулся в PHP победителем. Но опять же, проблема. На работе я не могу развернуть php веб сервер, а мне нужна практика. Я решил начать решать задачки на php на codewars. По-моему там 8 уровней сложности, где 1 — это олимпиадные задачи. Мой потолок был 1 раз я решил 6ой уровень задачи. Но в основном решал 8ые, даже их решение порой занимало до 3х часов. Но это почти всегда были проблемы платформы потому что я решал основную задачу, не понимал что от меня хочет платформа, когда она прогоняет рандомные тесты с ошибками.

На этом я провел ещё месяца 2. Со временем я набил руку и решил что потраченное время не стоит того. Я еще не совсем понимал как проектировать системы, но уже понимал хоть что-то в PHP и не уползал с позором проигравшим.

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

У PHP есть негласные рекомендации к оформлению кода и основных компонентов библиотек. Называются эти рекомендации PSR. Когда собрались все фреймворкоделы вместе и решили, что их подходы к проектированию должны быть стандартизированы, а модули взаимозаменяемы. Так родились PSR интерфейсы повседневных проблем, типа кеширования, http-клиента или контейнера внедрения зависимостей.

Я выбрал себе PSR, который буду реализовывать. Остановился на PSR-7 или http-message. Данный PSR описывает интерфейсы URI, Request, ServerRequest, Stream, File и тд. компонентов. Довольно серьезный интерфейс для старта, но я напомню, что писал свой движок, и мне нужно было сердце проекта, а в вебе http — это сердце.

Таким образом, чтобы понимать что вообще делать я скачал самую популярную php библиотеку http — guzzle. На её основе разобрал как люди реализовали этот интерфейс, и сел реализовывать свой вариант. Что-то мне не нравилось в этой библиотеке, писал по-своему, что-то я ещё не понимал и пока пропускал. В итоге понял что такое потоки входа и выхода, как считывать из файла, как манипулировать указателем, как работать с файловой системой, что я получаю от сервера, как обрабатываю запрос, как кодирую uri и так далее. Параллельно я отвисал на rfc соглашениях, переводя их в гугле и изучая стандарты http-протокола.

У php есть одна особенность — автозагрузка скриптов. В повседневных проектах эта работа полностью лежит на composer, но много лет назад люди писали свои собственные автозагрузчики. Мои скрипты отказывалась грузиться, поэтому я не использовал неймспейсы вообще. Как только я понял что такое неймспейсы и зачем они нужны, написал свой автозагрузчик. И был нереально доволен, что у меня хоть что-то начало получаться.

Всё следующее время до апреля 2020 года я занимался тем, что писал свой движок. У меня были наработки http-клиента, роутера, кеша и прочего говнокода. Тогда я ещё не знал что такое контейнер внедрения зависимостей и Dependency Injection. Мои скрипты занимали наполовину инициализацией. Из-за чего я начал писать какого-то дикого монстра, основанного на принципе работы процессора. У меня все скрипты превратились в процесс, потом по очереди гонялись на исполнение в цикле. В них из огромной коробки вкладывались собранные заранее объекты… короче рай для утечек памяти.

В общем. Апрель 2020 года, мой контракт заканчивается, меня увольняют, начинается пандемия. Она сыграла мне на руку, потому то что я бы не смог сэкономить столько денег, сколько я сэкономил. Я начинаю плотно писать с нуля новый движок уже как я думал “под чистую”. Работал я по 12 часов в день как завещал Илон Маск. Порой я выгорал в ноль и неделями ничего не делал.

Так продолжалось 5 месяцев. В Августе 2020 года мой проект не готов и на 20% от задуманного. Я запускаю что есть чтобы показать близким друзьям ради чего я вообще уходил. Кто-то поддержал, кто-то не понял но промолчал. Подводя итог, я написал на чистом PHP: http-клиент, роутер, модели, жалкое подобие орм, кеширование, ну и элементарный автозагрузчик. Делал в парадигме MVC, но думал что MVP и типа был горд что понимаю разницу, но на самом деле не понимал и писал обычный MVC только контроллеры называл презентерами.

На фронте я написал множество ajax скриптов, но все они провалились потому что я не сделал адаптивную верстку и мои поделки работали только в хроме.

Подводя итог. Это следует особо подчеркнуть и это будет полезно остальным. Считаю успехом именно выбранную стратегию обучения. Первое что я сделал — это выкинул ютуб ролики в мусорку. Не тратьте своё время. Я пересмотрел горы видеоуроков от “мастеров”. Да, они разжевывают азы. Но большая часть из авторов бездари (пламенный привет урокам Хауди Хо). Только личная практика и ничего кроме. Второе — это тщательный отбор источников информации. Я читал официальный php манул всегда, когда имел более 10 минут свободного времени. Подчеркну, всегда! Когда ехал в автобусе, когда поднимался по лестнице, когда сидел на обеде в парке. Я считаю, что php мануалу можно дать 5 из 5 в структурированности и понятности. Это сыграло большую роль. Скажем так, я получил автобусное образование, потому что за два часа пути до основной работы я прошел от и до по официальной документации не один раз. Третье, я учился хорошим практикам кодирования на чужих библиотеках. Там я понял как форматировать код, как именовать методы, как именовать переменные, как всё это заставлять работать и выглядеть красиво.

Что дальше

Я смотрю на свою говноподелку, моя бывшая коллега не может открыть скрипт регистрации с другого браузера, потому что адаптива 0, я понимаю что это всё. Фиаско, братан. Год подготовки, 5 месяцев плотной работы, около 150 тысяч суммарно потеряно за это время, и я имею то что имею. Код говно, идея очень сомнительна, я сам не понимаю до конца что хочу реализовать и как это будет выглядеть. Пора отступать подготовленными путями. По личным ощущениям я пересидел лишнее 2 месяца, я был готов по скилам выйти на рынок гораздо раньше.

Я выхожу на рынок HH, вступаю во все группы программистов в телеге и сканирую предложения. Первое предложение — зарубежная контора, держат русские, своя cms, крупная стриминговая платформа. Предлагают на старте 50+. Причем они спросили, сколько хочешь получать. Я парень скромный, говорю, ну 30ку было бы неплохо, а там как буду справляться. Мне сказали, что 30кой бы меня обидели, у них столько не получают. Сами подняли до 50. В конце разговора мне обмолвились что контент у них разный, в том числе для взрослых. Вобщем… разработка порно сайтов. Я долго ломался, деньги хорошие, вакансий почти нет в пандемию, мне нужно с чего-то начать. Но ключевым фактором было что мой коллега с прошлой работы начал меня подначивать что я ушёл чтобы сделать карьеру в порно и я сдался. Перезвонил им и отказался от собеса чтобы не тратить их время. Даже родителям как-то стыдно было сказать где работаю, не то что друзьям.

Второе предложение было почти сразу, меня позвали с HH в крупную веб студию. Bitrix+Laravel(cms + фреймворк php). Получилось очень забавно, меня взяли сразу, но вначале я им отказал, потом они мне, когда я сходил на собес о котором дальше расскажу и передумал. Я долго взвешивал стоит жалеть или нет, но нет, я не жалею. Если бы не было битрикса то жалел. Да и не отказал бы, скорее всего. Вкратце — слишком большой спрос за 30ку. Я всё же не хотел хоронить свой проект в который было вложено много сил и думал его по вечерам дома писать дальше, но там так складывалось что у меня не было бы этих вечеров дома.

Дальше пошло затишье, я ничего не делаю, мой раж со своим проектом закончился, я сдулся. Кидаю вакансии на все конторы в HH кто ищет джуна в районе 30к, чтобы сходу спрос не был большим, иначе я не вывезу. Вижу в телеге третью вакансию. Ошибкой было что сразу не спросил вилку. Еду через весь город. Контора якобы разрабатывает прорывные технологии, в мире нет аналогов. Вход в офис — дверь времен 90х с табличкой из А4 листа. Помещение грязное, программисты какие-то зашуганные, переговорка без окон, как бункер. Короче, меня должен был уже насторожить вопрос, сколько мне, php бекенд разработчику без опыта, нужно времени чтобы выучить (а я напомню, что фреймворки не учил) yii2 и vue js. Я опешил слегка. Говорю, понятия не имею, но вероятнее всего не менее месяца. Да и вообще я в фулстэки не планировал. В конце он спросил, может вопросы есть. Я говорю, да, какая зп. Он говорит, ну со старта 15к (все цены были и будут в рублях рф), а там посмотрим. И тут я чувствую как краснею от злости. 1.5 часа пути, полтора года страданий, 150 потерянных тысяч, чтобы услышать это великодушное предложение в 15к. Я сказал что это не серьезно и ушел.

Тут меня совсем накрывает депрессия. Водитель автобуса получает под 70к. Я сейчас грузчиком на 30ку могу пойти, вы там совсем охренели что ли. Параллельно пишу в телегу одному человеку из айти чатиков, которого тоже жизнь потрепала по рабскому труду, только в веб студиях. Рассказал историю, он свою, там и заообщались.

Потом было ещё два собеса. Одно я подал на удаленку. Там был крупный продуктовый проект на Symfony(php феймворк), команда из 3х человек на беке + 1 фронт, нужен был джун на мелкие поручения. Я прошёл собес, меня взяли, но нужно было пройти службу безопасности. В общем, меня кинули в конце спустя месяц ожиданий. Сказали что передумали, и будут искать мидла. Могли бы сказать гораздо раньше. Второе там разработка быстрозаймов, они в итоге не перезвонили после разговора с hr да и я не расстроился в принципе, я сильно сомневался туда идти и меня уже в другое место взяли.

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

Phpшники — не повторяйте этой ошибки — не учите симфони первым фреймворком, если не знаете как работают веб фреймворки вообще. Будет очень больно. Начинайте с Ларавель. Лара прощает ошибки, Симфони нет. Симфони — это фреймворк, который будет тебя унижать. Ларавель дал мне огромный прирост к скилам, Симфони лишь тратил моё время. Но на Симфони стоит вернуться уже после получения базового опыта на Ларавель. Потому что Ларавель это универсальная отвертка и из-за этого у фреймворка масса проблем с расширяемостью.

Итак. Ситуация начинает усугубляться. Я перестаю делать свои поделки, теряю деньги без работы. Тут мне прилетает репост вакансии от человека, с которым я познакомился в телеге, что мне стоит сходить на собес, там ламповая атмосфера и нет рабства. Но есть минус — зп сильно ниже рынка.

В общем, вакансия опубликована образно в 14:00 в 15:00 я пишу человеку подойду ли я им, в 18:00 у нас собес по скайпу, на следующий день в 8:30 я у них выхожу на свой первый рабочий день в айти. Веб студия искала симфониста на большой проект. Если бы мне не дали рекомендации, я бы не пришёл к ним на ту зп, которую мне дали со старта. Я потерял ещё тысяч 30 пока не начал работать в ноль, но в целом всё сложилось очень удачно. Да, я мог бы сейчас получать в полтора раза больше в других местах, но не факт что мне бы там нравилось по атмосфере. А коллектив решает всё.

Подводя итоги. Я загорелся написать большой проект, который принес бы пользу обществу, а мне какой-то минимальный заработок чтобы жить, полтора года упивался этой идеей и шёл через страдания но в итоге зашёл в тупик, что было очевидно ещё в самом начале и я понимал что шанс моего успеха 0-5%. В итоге не зря вкладывал в пути отступления с помощью накопленного опыта смог попасть на позицию джуна PHP вполне себе крепко середнячковую веб студию. Скажем так мы нашли друг друга, им нужен был программист на адовый проект, а мне нужен был опыт. Я выстрадал этот ад и меня перевели на нормальный проект, а от старого отказались.

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

А стоило ли оно того

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

Во-первых, стоит сразу отметить — я не получил отвращения от работы программистом, как это бывает у многих свичеров в районе 30. Я не шёл сюда за зарплатой хоть и ожидаю достойный заработок. Я понимаю почему так получается, что люди сгорают, но мне это действительно нравится. Я развиваюсь в сторону архитектора и хочу проектировать приложения. Сам код и язык программирования для меня инструменты. Цель — проекты. У меня есть свои идеи, которые я вынашиваю в голове и уже около 5 выброшенных в мусорку проекта на которые я потратил немало личного времени. Но именно эти проекты позволяют мне апать мои скилы, заниматься различными исследованиями и экспериментировать. Если проект мне нравится, я просто использую инструменты, вот и всё. Первый мой проект в веб студии мне не нравился и я очень сильно уходил в отрицание из-за этого и покинул бы контору, если бы меня не перевели на проект, бизнес модель которого мне по душе.

Что касается уплаченной цены. Я сильно потерял в софт скилах. 5 месяцев я просидел на карантине 95% времени в одиночку. Я кодил глубокой ночью, сбил себе график, ложился в 12 дня, спал до 8 вечера и так по кругу. Я не спал сутками чтобы выровнять график но в итоге всё равно просыпался среди ночи и более не мог уснуть. Нагрузка была настолько колоссальной что это уже никогда не пройдет бесследно для нервной системы. Когда я задаю вопрос, стал ли я лучше как человек за это время, то нет, я заметно сдал позиции.

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

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

За деньги не жалею. Деньги просто инструмент, который мне позволил пройти путь.

Послесловие

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

Профессия программиста без цели или ради денег — это боль и разочарование. Как говорила моя бывшая одноклассница перед тем как забрать документы с 1ого курса универа “Мозг превратился в системную плату, не подпускайте детишек к мехмату”. Даже профильные программисты горят за 5-10 лет, которые не нашли в своей профессии цель, кроме обогащения. Всё дело в ответе на вопрос — зачем? Как говорил Илон. Главное задать себе правильный вопрос. Я нашёл для себя ответ на вопрос зачем. Мне программирование нужно как инструмент в реализации своих идей. Я получаю какой-то жизненный опыт и хочу вкладывать свою долю в развитие общества, при этом ведя достойную жизнь. Я хотел стать архитектором в детстве, но не умел рисовать и плохо учился. Я вижу иронию в том, что архитектором я стал, но только не тем, каким планировал. А ведь смысл был не в том, что я хотел проектировать здания. Я просто хотел проектировать новые вещи и в этом видел своё удовлетворение в жизни. Ни первая ни вторая работа не давали мне право творить. Они давали мне право существовать. Что в корне меня не устраивало.

Что касается языка программирования. Я пошёл по хардкору в бек-енд разработку. Но у меня была цель. Слышал, что люди есть ещё жестче — идут в СИ++. И у них тоже была причина. Там будет больно. И по зп и по обучению. Я считаю так. Если человек хочет попробовать свои силы, ему стоит начать с js и вложиться в следующий стэк: js+html+css+vue и не в коем случае не реакт. Реакт — это Симфони мира PHP. Это самый лайтовый и быстрый способ попасть в IT и проверить понравится ли тебе это. Потому что, спойлер, скорее всего нет. В бекенде самый лайтовый способ PHP+mysql+laravel. За пайтон не знаю, но я PHP выбрал чисто по историческим причинам — мне нужен был язык для веба. Пайтон же язык общего профиля.

Фронтенд vs бекенд и десктоп/мобилки/веб это чистая вкусовщина. Если что мы своих фронтов не называем программистами 🙂 Это шутка. Просто смысл в том, что vue, например, под капотом делает львиную часть работы. И оператору vue (читай фронтед программист), остается только натянуть свою реактивность на верстку. Думать практически не надо. И это удручает. Я сам учил вью для общего развития не так давно. А если серьезно, фронты должны больше иметь творческого мышления, бэк системного. Бек — это прослойка между пользователей и данными, интерфейс к БД так сказать. Чистые схемы и таблицы. Кому-то это покажется унылым и они будут правы. Фронты вечно говорят нам “Опять вы пялитесь в свои таблички”. А фронт — это слайдеры, всплывающие окна, отрисовка данных без перегрузки страницы ну и… верстка. Я не люблю верстать и отбитый на творческое мышление. Мне вот таблички по душе, схемы, связи.

Что касается прочей инфраструктуры. Обязательно попытайтесь освоить сходу систему контроля версий гит. Гит это прям сердце любого проекта. Если вы не умеете работать с гитом, будут большие проблемы с командой. Я учил гит уже в студии, но до этого прошёл по теории раза три. Запороть проект не запорете, а вот время разработчиков потратите.

И всегда развивайтесь в сторону качества кода. Прочтите Чистый код Роберта Мартина. И если зайдет, его же Чистую Архитектуру и Совершенный код Макконела.

На этом всё.

P.S. Оставьте, пожалуйста, обратную связь о грамотности текста. Было ли интересно читать в целом. Что не понравилось по посылу. Где я грублю и т.д. Может быть я продолжу писать статьи в дальнейшем на другие темы.

Источник: портал vc.ru

Добавить комментарий