Опыт трудоустройства программистом без образования

Всем привет. Давно хотел набрать этот пост (до этого был в режиме read-only). Многие в комментариях часто спрашивают, как уйти в программирование, не имея соответствующего образования. Вот я и решил описать свой скромный опыт.

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

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

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

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

К тому времени все сценарии были выучены наизусть, и в рабочем дне оставалась красивая прореха в несколько часов, которые, по идее, предназначались для саморазвития. Это время, наряду со свободным временем по вечерам и выходными было отдано в жертву обучению. Лично я оплачивал один платный сервис с практическими заданиями (выбран за удобство, название указывать не буду, дабы не сочли за рекламу), плюс книгу Эккеля "Философия Java", которая, по моему глубокому разумению, дает отличные азы ООП и базовых вещей. Следующие три-четыре месяца ушли на изучение синтаксиса, коллекций и простенькой многопоточности.

На работе тем временем все становилось прям совсем печально (госпредприятия - та еще помойка), платили за тестирование сущие копейки - 28 тысяч. Из опыта программирования - кусок дерьма, который я гордо именовал "парсером XML", написанный на шарпе. На тот момент я почувствовал в себе силы пойти куда-нибудь джуниором (спойлер - я ошибался).

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

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

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

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

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

Все ли безоблачно? Далеко нет. На данный момент между мной и настоящими профессионалами остается глубокая пропасть. Меня научили, что делать и как, но понимания, почему нужно поступать именно так, а не иначе, нет. Это понимание приходит вместе с пониманием теории, глубоким знанием того, что называется computer science. Поэтому приходится пинать себя и учиться дальше. Всегда будет, что улучшать.

Тем, кто хочет податься в программирование, не имея образования, могу посоветовать только одно - учите. По моим ощущениям и ощущениям моих знакомых, сложность того, что нужно учить, падает, зато растут объемы. Сейчас бэкэндщику средней руки в Java нужно знать Spring, SQL, Elasticsearch, неплохо разбираться в вебе. Все это - сотни часов на изучение. Многие просто не готовы тратить столько. Поэтому, если вы готовы - начинайте прямо сейчас, и как-то только почувствуете себя уверенно - устраивайтесь куда угодно, за любые деньги, лишь бы взяли и давали какой-никакой, но опыт. Поверьте, инвестиции отобьются.

P.S. Мне вообще стоит говорить, что без хотя бы базового английского вы никуда не продвинетесь?