Недавно мне представилась возможность взять интервью у Педро Давида Гарсии Лопеса, разработчика на Ruby on Rails из Великобритании, который до этого работал дальнобойщиком. Интересно то, что он решил стать программистом в 38 лет. В этой статье я расскажу его историю, которая, надеюсь, покажется вам такой же вдохновляющей, какой она показалась мне.
Сегодня интервью в основном берут у звёзд или особо популярных личностей. Мне же больше нравится находить не особо известных, но ярких людей, занятых нелёгким трудом и преодолевающих испытания, просто чтобы оказаться на одном «игровом поле» с остальными.
Поэтому я решил начать писать о таких людях в своём блоге, предоставляя им возможность поделиться своими захватывающими историями и ценными уроками. И хотя они могут не попадать на обложки ведущих изданий или в популярные подкасты, их истории и опыт не менее увлекательны и заслуживают внимания.
Как я уже сказал, в этой статье речь пойдёт о Педро Давиде Гарсии Лопесе, который круто изменил свою трудовую деятельность, превратившись из дальнобойщика в разработчика на Ruby on Rails. Причём сделал он это в возрасте 38 лет, который многими представителями отрасли считается уже слишком поздним (хотя это чушь). Я нашёл Педро на LinkedIn, и мне его история показалась очень вдохновляющей.
Главный посыл этой статьи в том, что: «Никогда не поздно начать идти к своей мечте, особенно приступить к изучению программирования». При правильном подходе это может открыть перед вами огромные возможности.
Ну а теперь перейдём к самой истории Педро.
▍ Расскажи немного о себе
Мне 42 года, я родился в Испании и в 2015 году переехал в Великобританию. Но сейчас собираюсь вернуться на родину, чтобы быть ближе к семье, которую считаю одной из важнейших частей моей жизни.
В 2015 году я принял нелёгкое решение отправиться в Великобританию работать дальнобойщиком. В итоге за рулём я проводил намного больше времени, чем дома, где обычно находился по 4-6 дней в месяц. Остальное время я находился в пути, разъезжая между Великобританией и другими частями Европы. На переезд я решился из желания найти новые возможности и предоставить такой же шанс своей дочери. Кроме того, я хотел как следует освоить английский, над чем до сих пор работаю.
Как профессиональный водитель, я имею опыт вождения практически всех видов транспортных средств, и побывал в каждой стране Евросоюза не менее одного раза. По правде говоря, я намотал на своём грузовике столько, что можно несколько раз обернуть Землю.
Занявшись разработкой ПО, я влюбился в Ruby on Rails, как только о нём узнал. Я планирую продолжать использовать этот фреймворк как можно дольше, поскольку не вижу достойных альтернатив, способных обеспечить такой же приятный опыт разработки и продуктивность (моё скромное мнение). Некоторое время я работал с PHP и JS (во многих формах), но ничто не сравнится с Rails и Ruby.
Я считаю себя фулстэк-разработчиком, так как хорошо знаю CSS, внимателен к деталям фронтенда и имею некоторое понимание UI/UX. Хотя во всех этих областях всегда есть чему учиться. Я также люблю работать с бэкендом. По сути, я универсал 😜
▍ Что привело тебя в программирование?
Это прекрасный вопрос, на который коротко не ответишь.
С компьютером я познакомился в 12 лет, когда на летних каникулах проходил курсы машинописи. Мы тогда перешли с более продвинутых устройств на использование компьютеров и работали в MS-DOS или Windows 3.1. С тех пор меня очень увлекли эти магические машины.
Но поскольку рос я в небогатой семье, то шансы обзавестись компьютером были малы. Плюс, когда мне было 14 лет, умер отец, и я был вынужден параллельно с учёбой заняться подработкой, чтобы поддерживать семью. В итоге шансы на покупку компьютера стали не выше вероятности встретить единорога. И всё же в душе я продолжал испытывать любовь к этим машинам и никогда не упускал возможности поработать за ними в школе или библиотеке.
Так продолжалось до 18 лет, когда я устроился на полный рабочий день и за три месяца скопил средств на покупку своего первого ПК. Это был Pentium II. Как только в моём распоряжении оказался компьютер, я почувствовал потребность освоить его программирование.
Фото: Midnight Geek (YouTube)
Тогда я купил книгу по C++, что стало большой ошибкой, поскольку она оказалась слишком технической и углублённой. В итоге я сильно запутался и так и не смог создать ничего интересного. Потом меня засосали жизненные обстоятельства, и заняться всерьёз программированием так и не удалось. Время шло, и в итоге я по воле судьбы стал дальнобойщиком, после чего отправился в Великобританию.
Но во мне по-прежнему теплилась тяга к компьютерам, и разбирался я в них достаточно неплохо. Я продолжал работать над своим английским и использовал доступные источники информации, когда в один прекрасный момент в мои двери снова постучалась детская мечта. Я изучил несколько курсов на YouTube, освоил HTML, CSS, JS и прошёл стандартную программу в стиле «Стань программистом за 7 дней». Потом я наткнулся на ресурс freeCodeCamp, который оказался уже более структурированным и серьёзным, но всё равно чувствовал, что чего-то не хватает. Работа водителем вместе с моими обязанностями как мужа и отца не оставляли мне достаточно времени и возможности, чтобы стать разработчиком.
В итоге, спустя многие годы усердного труда и заботы о семье, я решил вернуться к своей детской мечте стать разработчиком. Я уволился со своей стабильной работы и решил так: если за год не смогу стать разработчиком, то вернусь к прежней жизни и забуду об этой идее навсегда.
Это своё приключение я начал в сентябре 2019 года, но передо мной сразу возникло множество путей: Python, JavaScript (который был в тренде), C#, PHP, фронтенд, бэкенд, DevOps и так далее… По какому идти? Вариантов было слишком много, чтобы выбрать лишь один, который мог оказаться ошибочным.
В итоге я выбрал Python и купил курсы Udemy (их было слишком много!), чтобы изучить его основы. Всё было не так плохо, как в случае с C++, но получалось не особо. Я мог следовать инструкциям, но не программировать самостоятельно, поэтому быстро понял, что этот вариант не для меня.
Я уже начинал терять веру, но, покопавшись в интернете, узнал о существовании буткэмпов по программированию. После некоторых сомнений в принятии этого решения (все варианты были дорогими 💰), я выбрал Flatiron School. Согласно условиям обучения, если по завершении их курсов вы не сможете найти работу, то оплачивать эти курсы не нужно. Тогда я подумал, что в этом смысле теряю немного.
В рамках курса я познакомился с Ruby on Rails и его основами. Я также конструктивным образом изучил принципы разработки ПО, начиная с Ruby и Sinatra, заканчивая Ruby on Rails и React. Помимо поддержки со стороны преподавателей и сокурсников, программа обучения предлагала хорошие задания и упражнения, которые учат не только следовать инструкциям, но и создавать что-то своё.
После завершения первых проектов меня переполняло незабываемое чувство гордости, и к концу мая 2020 года я закончил курс с уверенностью, что у меня всё получится. Теперь я чувствовал, что не просто получил знания, но и научился докапываться до сути и осваивать новый материал самостоятельно.
Кстати, ты же помнишь, что произошло в 2020? Всё верно, COVID.
И мне как раз пришлось искать новую работу в этих обстоятельствах. Повсюду действовал локдаун, собеседования не проводились, и связаться с людьми было очень проблематично; 38-летний новичок без опыта работы и только после буткэмпа не особо похож на идеального кандидата, которого ищут компании…
И даже с поддержкой Flatiron трудоустроиться было нелегко. Ни одного интервью или звонка в течение месяцев. Я уже начинал переживать о том, что моё резюме в итоге просто отправится в корзину. Но уверенность меня не покидала, и целеустремлённость была как никогда сильна. За руль я возвращаться не хотел.
Наконец, в Манчестере замаячила первая возможность. До работы нужно было добираться два часа на поезде (удалённую занятость компания не предлагала), и зарплата составляла всего 1/3 от моего заработка водителем, причём основная её часть уходила бы на проезд. Обязанности включали в себя работу с PHP и jQuery, но знаешь, меня это всё не волновало, потому что это была моя мечта. В итоге я принял предложение. Мне нужно было с чего-то начать. К тому же жизнь меня научила, что терпение и труд всё перетрут.
▍ Как и когда ты познакомился с Ruby on Rails? Что больше всего тебе нравится в этих инструментах?
Впервые о Ruby on Rails я узнал на буткэмпе, но основной опыт получил, работая в Superbyte.
В Superbyte мы использовали нестандартный стек (Mongoid и React), но я учился у команды и получил много опыта. Моя увлечённость этим языком стала больше после того, как я начал работать с Ruby on Rails профессионально. Стоит лишь изучить его соглашения, как всё становится намного проще. Больше всего в этом инструменте меня привлекает его активное сообщество и постоянно развивающаяся экосистема.
Я был очень рад после React вдохнуть свежего воздуха экосистемы Hotwire, которая позволяет обрабатывать все задачи по принципам Rails.
▍ Какие 5 книг по программированию оказались для тебя самыми значимыми и почему?
У меня не было ни времени, ни особого желания читать книги. Я увлёкся этим уже на более поздних этапах своей небольшой карьеры, когда начал замечать пробелы знаний во многих областях. Так что прочёл я не так много, чтобы составлять список самых значительных. Их ещё предстоит прочесть.
Но в целом небольшой список без конкретного порядка я привести могу:
- «Layered Design for Ruby on Rails Applications» Владимира Дементьева.
- «Rebuilding Rails» Ноя Гиббса.
- «Ruby Under a Microscope» Пэта Шонесси.
- «Practical Object-Oriented Design in Ruby» Сэнди Метц.
Мне уже пора перечитать некоторые из них, так как мой взгляд и видение постоянно развиваются. Я продолжаю свой путь изучения всех этих принципов, которые другие люди с более традиционным опытом уже освоили.
▍ Кто твои кумиры в сфере программирования?
Я восхищаюсь людьми, которые обладают навыком программирования и страстью к этому занятию. Те, кто идут вперёд, делясь своими знаниями и опытом с миром, поистине являются героями. Их тяга к обучению других и участию в развитии сообщества похвальна и очень вдохновляет.
Отдельно отмечу Квинси Ларсон, freeCodeCamp и всех создателей контента вроде тебя, которые вкладывают много времени и сил в передачу знаний. Личную благодарность выражу Ави Фломбауму, одному из преподавателей Flatiron School. Он публикует в своём блоге прекрасный контент. Плюс все, с кем я работал, не жалели своего времени, помогая мне развиваться не только как разработчику, но и как человеку.
▍ Как выглядит твой типичный рабочий день в роли разработчика? Что тебе больше всего нравится в текущей работе?
За время своей короткой карьеры я успел поработать во всевозможных контекстах, включая полностью удалённую работу, смешанный режим и стандартную пятидневку в офисе.
Теперь, когда я планирую вернуться в Испанию, моя новая работа будет полностью удалённой. В середине апреля я перехожу на новую должность в gocertify, так что пока не уверен, как именно будет выглядеть мой рабочий день.
Работая в Superbyte, я продвинулся с уровня джуниора до почти сеньора — писал код, участвовал в проектировании, а также частично занимался исследованием и развитием (R&D).
Большую часть времени я пишу код, но также иногда увлекаюсь парным программированием и провожу ревью пул-реквестов. Я люблю делиться знаниями и считаю это лучшим способом освоения материала, поэтому всегда рад помочь коллегам найти новый подход или поучиться у них.
▍ Какие ресурсы и практики ты можешь порекомендовать для обучения и поддержания актуальных знаний?
Учитесь учиться.
Все мы разные и склонны по-разному осваивать материал.
Я советую научиться усваивать информацию и найти наиболее подходящий для себя метод. Лично я учусь на практике или с помощью туториалов, воспроизводя их или выходя за их рамки в тех областях, которые меня интересуют. Люблю книги. Сначала я их читаю, без написания кода, а потом перечитываю ещё раз, но больше в стиле вспомогательного пособия, нежели инструкций для выполнения.
Важно не грузить себя мыслью, что тебе нужно изучить всё. Не каждому нужно знать всё. Выберите то, что вам интересно, и сосредоточьтесь на этом. Так вы продвинетесь дальше, чем при попытке освоить слишком много, в результате которой наверняка просто потратите уйму времени.
▍ Что бы ты посоветовал начинающим программистам?
Самый глупый вопрос — тот, что не был задан.
Трудитесь усердно, будьте смелыми и задавайте вопросы. Самый глупый вопрос — тот, что не был задан. Не чувствуйте себя так, будто вы недостаточно хороши или недостаточно знаете. Все когда-то находились в аналогичной ситуации, так что продолжайте стараться.
Освойте Ruby on Rails. Достигнув поворотной точки, вы поймёте, что это не только легко, но и интересно.
Ещё будет здорово найти наставника или кого-то, кто будет готов помочь вам развиваться. Для этого есть хороший ресурс: First Ruby Friend.
В моём случае всё упирается в увлечённость. Это было хобби, которое теперь стало работой.
«Если вы найдёте работу, которую полюбите, вам больше не придётся работать», — Уинстон Черчилль.
▍ Какие твои любимые программные инструменты в повседневной работе?
- Редактор кода: VS Code.
- GUI базы данных: MongoDB Compass.
- Терминал: iTerm с ‘oh my zsh’.
- Браузер: Chrome.
- Заметки и управление проектом: Apple Notes, VScode markdown, Github projects/issues.
- Общение: Microsoft Teams.
▍ Как тебя проще всего найти?
Я не веду активной жизни в социальных сетях, но всегда слежу за LinkedIn.
Недавно я узнал, что мой личный сайт, который я писал на Django, отключен, поскольку бесплатный хостинг, где он размещался, больше недоступен. Так что у меня есть удачная возможность переписать его на Ruby on Rails и завести свой блог www.lorrydriveloper.com, который, надеюсь, удастся вскоре запустить.
На этом всё. Надеюсь, интервью было для вас интересным и полезным.
Telegram-канал со скидками, розыгрышами призов и новостями IT 💻