Стать программистом я мечтал ещё лет в 5-6, когда отец привёл на работу, а там местный «компьютерщик» загружал с дискет игры и показывал, как играть. Хотя, скорее всего, этот я компьютер где-то уже видел. Это казалось магией и будоражило воображение. Помню, как узнал, что в программировании есть логические ветвления (if, then, else), и начал развлекать себя тем, что в голове придумывал сценарии с кучей «если».
В 6-м классе (1996 год), после уговоров, родители подарили мне ПК. Дальше началось погружение: курсы ПК в «доме пионеров», обмен компьютерными играми, переустановки «глючной винды» раз в неделю, Интернет в Netscape Navigator. Затем, не смотря на мое желание идти в «Политех», в 9-м классе я очутился в техникум связи — возможно родители хотели ещё одного связиста в семье.
Потом учёба, женитьба, работа. Каким-то образом мне удалось упросить родителей оплатить курс unix-windows администрирования в местной «Компьютерной академии». Там сильно повезло и с сокурсниками, и с преподавателем. И после окончания курса я попал на работу в местный интернет-провайдер линейным монтёром, а когда генеральному директору надоело заниматься администрированием, меня повысили до помощника системного и сетевого администратора (Junior-NA). Тут пригодились оба моих образования.
Читайте также: Haskell — язык, позволяющий глубже понять программирование. Как он устроен и почему его выбирают разработчики?
Как обычно водится в системном администрировании, приходит время — и встает вопрос об автоматизации. Тогда меня опять спас генеральный директор (олдскульный программист) — сначала я начал подсматривать у него скрипты на bash, задавать вопросы о C/С++ и PHP, на котором написан биллинг, потихонечку написал NMS (систему управления сетью), которая умела рисовать топологию сети, настраивать оборудование, искать абонентов по реквизитам.
Мечта программировать никуда не делать с детства, а практика показала, что автоматизировать можно много чего, и это приносит только пользу. Начал искать место, где можно систематизировать накопленные знания в PHP, и заодно изучить какой-то модный Фронтенд Framework. Тыкался то в иностранные обучающие сайты, то в видео на YouTube, но это приводило только к скуке. Так я пришёл к выводу, что бесплатное обучение не для меня, и мне нужна систематическая помощь кого-то опытного. Начал смотреть, что есть на рынке, и обнаружил какие-то сумасшедшие цены в Yandex, GeekBrains. В «Яндексе» смутила цена — порядка двух месячных зарплат, которые нужно было отдать сразу же. В GeekBrains цену не помню, но там было очень «цветастое оформление» — меня показалось, что оно веет инфоцыганством. Потом какие-то «умные алгоритмы» поймали меня в рекламе в Facebook, в результате чего я наткнулся на Хекслет. Цена за месяц была подъемная, дизайн — аскетичный, в общем — то, что и было надо.
Попав на Хекслет я думал, что потрачу несколько месяцев, пройду профессию «Фронт», потом может и PHP. И так стану полноценным FullStack-программистом. Но не тут то было, помню, что уже где-то на 3-4 курсе с функциями и рекурсией начал потеть. Прям сильно. Специально шёл домой пешком, чтобы обдумывать решения задач. Засыпал с задачами, просыпался тоже с ними. Хекслет вернул на землю с одной стороны, а с другой — показал, насколько код может быть понятнее и лаконичнее. Стало понятно, что до полноценного разработчика мне нужно ещё 5-6 месяцев поработать.
Дальше по личным причинам мне пришлось уехать в Москву, запаса средств было не много, потому искать работу времени не было, да и ни одного проекта из профессии ещё за плечами не было. Месяц я попытался найти первую работу, сходил на 8-10 собеседований, сделал 3-4 принятых тестовых заданий. Но в тех местах, где меня брали, были какие-то лютые галеры, либо непонятные условия работы (оформление Украинцев в Москве на работу — вообще отдельная история). В местах, куда я хотел, обычно говорили: «нужно ещё подучиться, а потом приходить». В последнем сказали «закончи проект на Хекслете». Накопления заканчивались, пришлось пойти работать по старой профессии «сетевым инженером» (NOC) в «Оператор Хостинга». На новой работе, конечно, и масштабы впечатляли, и было много опытных сотрудников, у которых есть чему поучиться, — но меня тянуло программировать.
Через 16 месяцев я наконец-то поднакопил денег, уволился со старого места, и занялся наконец проектом на Хекслете. Описание у проекта - консольная утилита. Думал «накидаю за пару часиков» — и опять лицом об стол. В процессе прохождения проекта стало понятно, что даже в такой маленькой утилите есть и поток данных, и архитектура, и расширяемость. Кроме того, менторы вытряхивали из меня то, за что так не любят PHP-разработчиков — линейный «лапше-код» с сокращенными и непонятными названиями переменных. Незабываемые впечатления.
Дальше было два собеседования. На первом был социальный продукт по оценке качества товаров. Общались два часа по технической части, ответил на часть вопросов о базах данных, структурах, работе HTTP, работе unix-систем, но на вопросы по паттернам честно сказал, что знаний мало. Дальше поговорили «за жизнь» и сказали, что свяжутся. Через неделю попросили подождать, так как рассматривали ещё одного кандидата. Больше о них ничего не слышал, но и не расстраивался — в Москве предложений много, а сейчас есть ещё и удалёнка. Стал учиться дальше и ждать.
Смотрите также: Публичное собеседование для PHP-программиста на youtube-канале Хекслета
Через неделю в почту постучался мой нынешний работодатель и предложил поговорить. Оказалось, что работа рядом с местом, где я живу — всего в 10 минутах пешком, это радовало. На собеседовании спросили, умею ли я пользоваться SSH и PostgreSQL, знаю ли PHP, HTML, CSS, JS. Ответил как есть, и в тот же день получил предложение, с тех пор уже 20 месяцев работаю программистом.
Тут я разрабатываю в таких пропорциях: 50% времени программирую на PHP-Backend (формы, импорт-экспорт в json. xml, csv, sql, интеграции со сторонними API), 20% — JS-Frontend (сложные фильтры в каталогах товаров), 10% — DevOps-практики (тестирование и развёртывание приложений, иногда сборка образов), 20% — производительность. Веб-студия, в которую я устроился, делает в основном сайты и магазины с количеством посетителей 100 - 50 000 в день. То есть 90% — e-commerce, ещё 10% — системы автоматизации предприятия. В общем, я доволен, мной вроде тоже, когда за архитектуру и стиль кода не задвигаю :).
Тем, кто изучает программирование, посоветовал бы:
Тем, кто уже ищет работу, хотелось бы посоветовать: