Написать пост

«Нет более надежного способа стать программистом, чем программировать». Как коммерческий директор в 45 лет стал Java-разработчиком

Аватарка пользователя GeekBrains

Рассказ программиста о его становлении в профессии и советы начинающим разработчикам по изучению программирования и прохождению собеседований

Неутоленная страсть к IT

Меня всегда тянуло к компьютерам. Так, в юности, получив микрокалькулятор МК-52, я часами изучал его возможности, вооружившись статьями из журнала “Наука и жизнь”. Потом у меня появился первый компьютер — это был БК-0010-01. Затем — ДВК и более продвинутые модели. Это было поистине изумительное время, и я старался использовать все открывающиеся мне возможности. Уже к третьему курсу института я изучил Фортран, Basic, Pascal и приступил к освоению Ассемблера.

К сожалению, на многие годы все это пришлось забросить — сразу после того, как пришла взрослая жизнь и появилась необходимость начать зарабатывать деньги. Это были безумные 90-е с их уникальной атмосферой и пропагандой красивого образа жизни. Конечно же, мне тогда хотелось обеспечить себе комфортные условия существования. Для этого пошел на работу, устроившись продавцом компьютерной техники. Таким образом, мне удалось убить сразу двух зайцев — начать зарабатывать, не забывая о своем увлечении IT.

Время шло, но я не забывал о программировании. Я часто вспоминал, как просиживал бессонные ночи с книжкой по Паскалю, помнил, какое огромное удовольствие получал при каждом успешном запуске интерпретатора. Стали появляться сомнения в правильности выбранного пути, иногда они ослабевали, но никогда не пропадали полностью. Порой я возвращался к любимому делу, например, разрабатывал макросы на Visual Basic в Excel, чтобы автоматизировать работу сотрудников (я постепенно шел все выше по карьерной лестнице). Автоматизация позволяла облегчать жизнь не только им, но и себе — например, при формировании и сдаче отчетов. А на досуге с удовольствием играл в Doom, Warcraft, а потом и в Call of Duty.

Когда мне исполнилось 40, я все же решил проанализировать свою жизнь — что я делаю, чем занимаюсь, как живу и зачем. Это было непросто, прежде всего, потому, что мне было больно — ведь я занимался не совсем тем, чем хотел бы. В итоге я смог договориться с собой, приняв решение стать тем, кем хотел в юношестве — программистом.

Непростой поворот карьерного пути

На момент принятия решения о возврате к юношеской мечте я работал на должности коммерческого директора в одной IT-компании. И я не мог просто все бросить — подвел бы как компанию, так и людей, которые мне доверяли. Нужно было найти решение, позволяющее двигаться к мечте не в ущерб текущей деятельности.

Один из вариантов был — получить IT-специальность при помощи онлайн-курсов. Так я познакомился с образовательной платформой GeekBrains. Здесь я посмотрел сначала несколько бесплатных вебинаров, потом задумался о том, какой язык программирования выбрать. Pascal, Basic не стали промышленным стандартом для разработки приложений масштаба предприятия, поэтому нужно было найти новый, современный и интересный мне вариант.

На поиск, чтение, обдумывание и анализ, ушло немало часов. В итоге я склонился в сторону Java. Во многом потому, что это востребованная зрелая технология, которая позволяет создавать достойные приложения как для бизнеса, так и для мобильных пользователей.

Я прошел в течение года несколько курсов по основам Java и мобильной разработке в GeekBrains. Прошел несколько интенсивов, а потом — поступил на факультет Java-разработки GeekUniversity. Далее понял, что мне ближе специальность Java бэкенд разработчика. Во время обучения я написал немало приложений, я снова оказался в той волшебной атмосфере, когда во время решения задачи ты забываешь о времени и пишешь код, не замечая ничего вокруг. После того, как заработало первое созданное мной приложение, я испытал настоящую эйфорию — спустя 25 лет я вернулся к любимому делу.

В становлении Java-разработчиком помогла также теория и практика Java Rush. Мне особенно запомнился лозунг — “Чтобы стать программистом, нужно программировать”. Это верно на все 1024%.

Не переставай учиться или немного о том, что нужно, чтобы стать программистом

Знакомые и друзья довольно часто задают вопрос: «Я хочу стать разработчиком, что для этого нужно?». Ответ и простой, и сложный одновременно. Для начала ответьте честно на вопрос, готовы ли вы программировать 25 часов в сутки, доставляет ли это вам удовольствие. Если ответ «не знаю», «скорее всего, да» или «нет», то лучше поискать другую возможность.

Работая в Hewlett-Packard, я узнал об интересной парадигме Work-life balance. В применении к разработчикам она звучит следующим образом:

Большую часть времени вы будете заниматься любимым делом и учиться делать свою работу профессионально. Нужно найти баланс с окружающим миром, друзьями и семьей, потому, что на все, что не касается программирования, у вас останется не так много времени.

Кроме hard-skills потребуется самодисциплина, самоконтроль и несколько других soft-skills. Готовьтесь постоянно учиться, вне зависимости от текущего уровня знаний. О том, как подойти к процессу обучения хорошо рассказывается  в одном из тренингов на Coursera.

Еще один важный момент — это английский язык. Без него разработчиком не станешь. Что касается меня, то я совершенствую свой английский с приложением Duolingo, кроме того — смотрю любимые сериалы и мультфильмы в оригинале с английскими субтитрами.

А еще нельзя забывать о поддержании своего хорошего физического состояния и здоровья — заниматься физкультурой нужно минимум час в день. Не обязательно тратить целый час сразу. Можно распределить это время — 20 минут делать зарядку утром, 20 минут заниматься спортом в обед и 20 мин потратить на физкультуру вечером. Не стоит также забывать и о пользе пеших прогулок.

Ну а теперь, собственно, о знаниях, которые нужны разработчику. Мне лично, кроме онлайн-курсов, помогли три ресурса, которые дали возможность сфокусироваться на нескольких важных вещах в безбрежном океане информации и сформировать учебный план:

37 собеседований, приглашение на работу и удаленка

Все, о чем я рассказываю выше, произошло до 2018 года. А вот в начале 2018 я покинул пост коммерческого директора и с головой окунулся в поиск работы по новой специальности. В течение двух месяцев я прошел собеседования в 37 компаний, получив массу впечатлений и дополнительного опыта. Замечу, что прохождение интервью — это отдельная наука, которую следует изучать наравне, например, с Java Collections.

Я навсегда запомнил первое собеседование. К тому времени я уже два года изучал Java — по вечерам, утром, ночами и в выходные. Я реализовал несколько учебных проектов, плюс подрабатывал на фрилансе. То есть, определенная уверенность в своих силах у меня уже была.

Собеседование проходило в офисе крупного банка. Меня встретила приветливая девушка-кадровик, с которой я около 15 минут беседовал о жизни, смене профессии, должности и других интересных вещах. Но потом, когда интервьюировать меня стали уже Team Lead и разработчик, Java Developer, ситуация усложнилась. Первый же вопрос: «Какие алгоритмы сортировок вы знаете», поставил меня в тупик. Я удивился, что мне, программисту, задают этот вопрос. Да, конечно, алгоритмы я изучал еще в институте, который я окончил с красным дипломом. Но зачем этот вопрос сейчас? Мое недоумение, видимо, было замечено интервьюерами, и они стали задавать наводящие вопросы. После этого последовало еще несколько вопросов и задач, на знание Java Core, с просьбой записать несколько строк кода на бумаге. Это собеседование, продлившееся около двух часов, подействовало на меня, как холодный душ.

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

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

К сожалению, наслаждаться дружным коллективом и вкусной едой долго не получилось — вскоре после нового трудоустройства началась пандемия и пришлось перейти на удаленный режим работы.

Собственно, ничего страшного не произошло, просто в очередной раз изменился мой образ жизни. Я воспринял все это как вызов для себя, возможность проверить самодисциплину и умение распоряжаться временем. Я разработал режим, которого стараюсь придерживаться. Его элементы — это учеба, физкультура, работа и, конечно, отдых. Я разбил расписание на тайм-слоты, которые чередуются таким образом, чтобы поддерживать максимальную эффективность труда без необходимости сильно уставать.

Например, в восемь утра я могу приступить к задаче по разработке, затем — зарядка, потом — занятия на Hyperskill. Следующим этапом может быть сериал, который заменяет слот с решением рабочей задачи. Объем тайм-слота составляет от 45 минут до 1 часа. Для организации информации и своей жизни рекомендую использовать Notion, сервис, который бесплатен для личного использования.

В качестве вывода

Резюмируя все, что сказано выше, я бы хотел привести цитату из статьи цикла «Записки трезвого прагматика», который рекомендовал выше:

Как научить человека новому языку программирования? Очень просто. Надо дать ему язык, несколько задач и минимум документации. Затем, по прошествии пары месяцев, когда он уже начнет худо-бедно писать на этом языке – дать исчерпывающую документацию. Она будет прочитана за две недели как детективный роман, после чего человек будет готов к работе.

Я с этим утверждением согласен на все 100%. За два месяца, со одной стороны, уйдут все мелкие вопросы. Ответы на них будут получены самостоятельно, что сильно повысит их ценность. С другой стороны, уже сформируются ясные вопросы, ответы на которые даст именно документация.

Поверьте, все так и есть, нет более надежного способа стать программистом, чем программировать!

Карьера
8749