Продолжаем спецсерию в рубрике «Истории успеха» — в ней будем рассказывать о разработчиках, которые учились на JavaRush, а теперь работают в этой компании, развивая продукт. Наш третий герой — Паша. До того, как стать разработчиком, 15 лет он посвятил системному администрированию, но решил полностью поменять профессию. В JavaRush он занимается написанием и исправлением задач и улучшением сайта.Как в 34 стать программистом: история Паши, разработчика JavaRush - 1

«Я понимал, что не хочу всю жизнь работать сисадмином»

До того, как зайти в программирование я долгое время ходил вокруг да около. Еще со школы пытался время от времени начинать учить какой-нибудь язык программирования, в том числе Java. Начинал еще в школе, позже тоже немного учил, но никогда не углублялся из-за своей лени. Я поступил в университет на специальность «Инженер компьютерных систем». В результате я стал системным администратором: это было ближе к моей специальности, чем программирование. Мне тогда казалось, что программирование — это и сложно и скучно, я себя не представлял в этой роли. После учебы я работал системным администратором в разных компаниях — в общей сложности больше 15 лет. Я понимал, что не хочу всю жизнь заниматься системным администрированием. Большую роль в моей мотивации сыграла жена. Она все время говорила: «Либо развивайся в системном администрировании, либо переквалифицируйся. Давай, программирование нормальная тема».

«Один раз забросил на полгода, но в итоге все-таки добил обучение»

Я решил остановиться на Java, поскольку в университете нам его уже немного преподавали. Кроме того, я промониторил вакансии разработчиков и чаще всего искали именно джавистов. Мне было 34 года, когда я официально стал программистом :) Многие думают, что в 30 уже поздно, но бывает и так, как у меня. Всем плевать, какой у тебя возраст. Это просто синдром самозванца. Важной вехой в моем обучении стала встреча с JavaRush. Я набрел на сайт почти сразу после его появления. Помню, тогда на меня сильно повлияли мотивационные лекции, которые были на курсе, — я очень вдохновился. Еще очень понравилась автоматическая проверка задач, хотя иногда и не понимал, где ошибся в решении :) Несмотря на все достоинства, я несколько раз бросал и снова начинал проходить JavaRush. Один раз забросил на полгода, но в итоге все-таки добил обучение. Некоторые темы давались сложно — все было новым для меня. В таком случае я уделял им больше времени, чтобы усвоить, разбирался, решал задачи. Бывало я смотрел на задачи и не знал, с чего начать решение. В итоге лез и смотрел ответ, потом появлялись такие мысли: «Мог бы и сам додуматься». Но когда разбирался с какой-то темой, то потом ходил довольный: очень нравилось ощущение выполненной задачи. Определенного распорядка учебы у меня не было. Когда было время и желание, я тратил их на обучение. Бывало, что и на прошлой работе сидел решал задачи и потом еще вечером дома.

«Я получил работу, которую я хотел»

После того, как прошел JavaRush, попал туда же на онлайн стажировку, которая длилась около 4 месяцев. Там я осваивал совсем другие технологии, которых не было на курсе. Уже для тестового надо было освоить базовые знания по Spring и Hibernate: надо было создать CRUD приложение с веб-интерфейсом для одной Entity. Скажу так: если во время изучения Java вы не смотрели по сторонам на популярные фреймворки и технологии, то такое тестовое будет шоком. Я посмотрел-почитал, постепенно у меня в голове все это сложилось в единую картину, и я таки сделал тестовое. На стажировке продолжили углубляться в Spring и Hibernate. Каждую неделю были новые задания с использованием новых технологий. До конца все не выучил, но, думаю это и не возможно :) Когда стажировка близилась к концу, я составил резюме и начал смотреть джуниорские вакансии. На собеседования я потратил около 4 месяцев: работал и параллельно ходил на интервью. Помню, тогда было немного вакансий на джуниора, так что нужно было пробовать подаваться сразу на мидла. Проблема, конечно, была в том, что на собеседовании обращали внимание на отсутствие опыта в программировании. Опыт администрирования я тоже указал в резюме. Многих рекрутеров это путало… Делал тестовые задания, выкладывал на своем профиле GitHub, пытался улучшать резюме. Я понимал, что не «ноль» в программировании и меня время от времени звали на собеседования. В нескольких местах уже хотели брать, но зарплату предлагали маленькую. Одна фирма, которая писала софт для украинских компаний, предлагала на старте 7 тысяч гривен, а потолок — 10 тысяч. Я тогда думал, может пойти туда, но не пошел: и деньги маленькие, и компания непонятная. Кстати сисадмином я получал намного больше, чем мне предлагали на позиции джава-джуниор. После стажировки в общем чате кто-то бросил вакансию — искали джуна в JavaRush. Я отправил резюме, меня пригласили. В компании искали человека для разработки обучающего контента, того, кто будет исправлять уже существующие задачи и писать новые. Этот функционал был мне понятен, ведь я уже прошел большинство задач на JavaRush. Так я попал в JavaRush и до сих пор тут работаю. Долгое время я сидел и исправлял задачи, потом взяли еще одного человека для этого, я помог ему влиться, и мы вдвоем начали улучшать их. Сейчас мы занимаемся запуском новой версии JavaRush, а также курсом CodeGym: пишем новые задачи, участвовали в переводе и настройке сайта. Я получил работу, которую я хотел. Понятно, что и в системном администрировании можно развиваться: искать интересные места работы, выше зарплату, работать с более сложными задачами. Видимо, я изначально выбрал неправильную профессию для себя. Когда я учил Java, у меня были опасения: вот выучусь и буду так же сидеть, как системный администратор и скучать. Нет, я доволен всем. Думаю, я нашел свое призвание.

Советы для начинающего разработчика:

  • Изучите дебаггер для отладки написанных программ. Дебаггер помогает пошагово отследить выполнение программы и выявить допущенные ошибки. Я в свое время им не пользовался, мое обучение шло бы быстрее, если бы я его использовал. На всех этапах обучения знание дебаггера будет давать более глубокое понимание тем, которые вы будете проходить.
  • Определитесь, в каком направлении хотите работать. Это может быть веб-разработка, Android-разработка, фронтенд, бекенд и т.д. Пройдите базу языка программирования, но потом лучше не распыляться и учить то, что нравится и близко.
  • Английский. Какой-то минимальный уровень знания английского нужен изначально. Кстати, проходя собеседования, у меня складывалось впечатление, что он играет большую роль, чем само умение программировать. Слабый программист с офигенным английским имеет больше шансов, чем крутой программист со слабым английским.
  • Запишите вопросы, на которые не смогли ответить на собеседовании. Дома сможете их проработать и на следующем интервью чувствовать себя увереннее.
  • Не бойтесь отказа. Делайте «ковровую бомбардировку» своими резюме. Я тоже боялся, но как-то переступил через страх и начал ходить по собеседованиям.
Из военных в программисты: история Антона, разработчика JavaRush - 2