Рассказываем историю Руслана, который работал в нефтянке в Уфе, переехал в США, чинил там бытовую технику и водил фуры, а потом сам изучил Java и стал программистом.
Сколько в среднем платят разработчикам в США? Зависит от компании, но джуны получают в среднем $50-80 тыс. в год, мидлы — $80-110 тыс. в год, а сеньоры — от $200 тыс.
Привет! Меня зовут Руслан, мне 39 лет, я живу в Майами и работаю в компании Freddie Mac фуллстек-разработчиком. Это моя история успеха — как я работал в нефтянке, переехал в США, чинил тут бытовую технику и был водителем трака, а потом за год переучился на Java-разработчика.
Как все начиналось
С программированием меня практически ничего никогда не связывало.
В школе я пользовался компьютерами постольку-поскольку — у моей семьи их не было и мне приходилось ходить к друзьям. Для меня это все было жутко интересно — мы что-то там делали в DOS и играли в игры.
Первый собственный компьютер у меня появился только в студенческие годы, когда я поступил в Уфимский государственный нефтяной технический университет. Там преподавали Turbo Pascal и мне даже нравилось что-то с ним делать. Я пытался понять, как работает компьютер — что вообще такое программирование, как устроены функции, переменные. В рамках университетского курса у меня было с Turbo Pascal все довольно неплохо, но ни одной программы мы в итоге не написали.
Сразу после окончания университета я пошел по распределению на нефтеперерабатывающий завод и проработал там без малого 12 лет.
Переезд в США
Уже во взрослом возрасте мы с женой начали много путешествовать, часто ездили в Тайланд — и обычно месяца на полтора. Приезжали туда, обустраивались в районах, где жили тайцы, и погружались в местный колорит. Такие путешествия сильно расширяют мировоззрение — и особенно это заметно, когда возвращаешься домой. Поэтому уже в то время мы думали, что было бы классно пожить где-нибудь еще, но тогда я работал еще на нефтеперерабатывающем заводе и с завистью смотрел на ребят с ноутбуками, которые не были физически привязаны к какой-то определенной точке. Наверное, это тоже заложило какой-то кирпичик в мое желание войти в IT.
Так получилось, что в итоге мы с женой и дочкой переехали жить в США — в Майами, это было около шести лет назад. И все, что было в России — осталось там.
У меня хороший английский язык — в университете я дружил с парнем, который учился в лицее и ему все преподавали только на английском. Видимо, я ему немного завидовал и тоже хотел хорошо говорить на английском — тем более, что в моем институте его очень хорошо преподавали. В итоге мы были единственными из нашей группы, кто защищал свой диплом на английском языке. При этом моя жена переезжала в США практически без знаний английского языка, и просто много ходила на курсы уже тут.
Когда мы переехали, в какой-то момент я даже думал пойти работать в США по специальности — мы рассматривали штаты с большим нефтяным сектором, например, Техас. Я подал туда резюме и прошел несколько этапов собеседования, но в итоге меня не взяли на последнем этапе — причин отказа они не называют, но сейчас я очень рад, что все получилось именно так. Это дало мне возможность найти то, чем очень нравится заниматься.
После отказа в нефтяной сфере я начал экспериментировать с работами. Например, однажды я устроился в компанию Samsung на ремонт крупной бытовой техники по гарантии — холодильников и стиральных машин. С этой профессией все было нормально — я физически не перетруждался, по вечерами был дома и даже не сильно уставал. Но был один большой минус — за нее очень мало платили.
Для того, чтобы поддержать семью, я освоил новую для себя профессию — тракдрайвер, и начал водить огромные машины по всей стране. За время работы я исколесил все штаты США, при этом получая хорошую зарплату. Ты много ездишь, классно зарабатываешь, физически не перетруждаешься и думать ничего не надо. Но жена мне говорила, что с траками надо заканчивать и это совсем не то, к чему нужно стремиться.
Первые шаги в сторону разработки
Именно моя жена настаивала, чтобы я попробовал себя в тестировании — мол, в ручном тестировании не слишком высокие требования, чтобы войти в индустрию информационных технологий. Тем более, что все это время она тоже училась на тестировщика.
Я жутко этому сопротивлялся, мы даже сильно ругались на эту тему. Но в итоге она победила, а когда я решил, что бросаю трак и иду учиться на тестировщика, моя жена уже вышла на свою первую работу. Это позволило мне спокойно учиться не переживая, что у нас не будет денег на жизнь.
Потихонечку я начал читать статьи про тестирование, узнавать про автоматизацию, смотреть на нужные технологии для работы. Для написания базовых скриптов нужен был какой-то язык программирования — обычно используют Python или Java. Мне было все равно, с чего начинать — я ничего не знал и учился практически с чистого листа.
Мой выбор пал на Java абсолютно случайно, я просто наткнулся на JavaRush в поиске, зашел на него и начал читать. Было абсолютно ничего непонятно, но жутко интересно — мне помогало то, что там примеры кода были не только на Java, но и проводились аналогии с Turbo Pascal, который я хотя бы немного учил в университете.
В процессе изучения Java я понял, что не хочу быть тестировщиком — мне очень понравилось программирование и я захотел писать код. Жена сказала, что если хочешь — пожалуйста. Учись, развивайся, познавай, а потом устраивайся разработчиком. Тем более, потенциал роста в программировании намного выше, а самое главное — если ты понял, что тебе это очень нравится, то ты должен именно этим заниматься.
Я учился программированию по 12 часов в день. Заводил будильник на 7 утра и заканчивал учиться в 7-8 часов. Решал десятками задачи на JavaRush, читал теорию, разбирался, как все устроено. Первое время учиться было практически невозможно — мозг отвык от таких нагрузок и после часа обучения просто вырубался, а меня тянуло в сон. Но постепенно приучил его и учиться стало намного проще.
Профессию на JavaRush я прошел за три месяца — все 40 уровней. Начал искать работу и составлять резюме, и оказалось, что с моим набором знаний устроиться я никуда не смогу. Везде нужны были дополнительные технологии — хотя бы Spring и базы данных.
С поиском работы пришлось задержаться еще на полгода. Я проходил на Udemy нужные мне курсы по Spring, основам программирования и сопутствующим технологиям.
Собеседования в США
Первую работу я взял практически штурмом — для того, чтобы научиться проходить интервью, мне пришлось просто пройти большое количество собеседований. Сначала я понятия не имел, какие вопросы будут задавать — я умел решать задачи, но практически не знал теорию.
У меня спрашивали отличия восьмой версии Java от предыдущих, какие есть основные принципы программирования, паттерны проектирования — и все это было на английском, который я хорошо знал, но все равно это было очень дискомфортно.
Часто на собеседованиях давали разные задачи — перевернуть строку, упорядочить массивы и все такое. Опыт решения разных алгоритмических задач меня спас в этом моменте, но при этом я специально не готовился к интервью, хотя знаю, что есть много сайтов, где разбираются разные подходы и даются советы, как вести себя в той или иной ситуации во время собеседования. Я всего этого не знал и часто мне приходилось просто изобретать велосипед.
Как составить резюме: Хекслет CV — сайт, где HR и программисты помогают составлять резюме и искать работу.
Как устроена жизнь программиста в США
После того, как я нашел свою первую работу, я был неимоверно счастлив. Ведь я проделал довольно сложный и долгий путь, чтобы найти себя, оказаться на работе, которая меня очень сильно привлекала. То есть к тому моменту я уже переехал в США, устроился на работу программистом, что может быть лучше?
Сначала у меня был синдром самозванца. Я всегда думал, что невозможно стать программистом, не отучившись для этого в университете. Так у меня сломался еще один стереотип, чему я очень рад — оказалось, что в любом возрасте можно поверить в себя, набить голову знаниями — и полностью сменить сферу работы.
С синдромом самозванца я боролся примерно год. Он начал проходить, когда я понял, что компании не хотят меня отпускать. Например, я получал приглашение на работу в новую компанию, приходил к своему руководству, а оно сразу же перебивало это предложение или даже предлагало больше денег, чтобы я не уходил. Мне было это очень приятно — я понимал, что для компании я являюсь хорошим сотрудником, справляюсь со всеми обязанностями и чего-то стою на рынке труда.
Во всех компаниях, куда я устраивался, меня никогда сразу не бросали в омут с головой. То есть первый месяц ты практически вообще ничего не делаешь на любом уровне — просто много читаешь документацию, ходишь на митапы и случаешь команду, читаешь код. Просто знакомишься с проектом и командой, погружаешься в среду, учишь нужную документацию. Все погружение происходит очень плавно и рабочие таски тебе начинают выдавать только спустя месяц работы.
Мое первое задание, когда я был джуном — сравнить два Excel-файла, чем они отличаются друг от друга. Я тогда подумал, что потратил на обучение почти год, прорешал тысячи алгоритмических задач, а меня просят сравнить два Excel-файла. Но постепенно начали давать задания серьезнее, позволять вносить изменения в код.
Важно, что я всегда работал в американских компаниях, где было более тысячи сотрудников. С такими масштабами у компаний есть ресурсы на постепенное включение всех новых сотрудников в рабочие процессы. Думаю, что в маленьких стартапах все устроено совсем иначе.
Читайте также: Как сохранять фокус на протяжении всего обучения: советы от Хекслета
Сейчас на работе я много использую Java — у нас 10 микросервисов написаны на Spring Boot, все они помещаются в Docker контейнеры, плюс используем Kubernetes. Для мониторинга работы микросервисов я использую OpenShift. Это все в бэкенде. На фронте мы используем Appian — это абсолютно новая для меня технология. Я практически ничего не знал про low-code, а тут ты практически не пишешь код, а просто мышкой перетаскиваешь объекты и видишь все процессы, которые происходят сейчас на сайте — с зависимостями и взаимосвязями в режиме реального времени.
Мне очень нравится писать код и я бы в будущем хотел заниматься именно этим. Если говорить про какое-то дальнейшее развитие, то может быть я пошел бы немного в сторону архитектуры, но в общем — я получаю удовольствие от программирования, поэтому пока идти в продакшн этого процесса мне бы не хотелось.
Я продолжаю много учиться, у нас есть корпоративный доступ к Udemy, поэтому я постоянно беру там курсы, слушаю их, изучаю новые технологии. Классно, что мой мозг научился быстро учиться в то время, когда я изучал Java, и с тех пор это практически не изменилось.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях