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

История успеха программиста: превращение мечты детства в реальность

Аватар Иван Бирюков

Обложка поста История успеха программиста: превращение мечты детства в реальность

Если у вас есть мечта и стремление превратить её в реальность, рано или поздно она обязательно исполнится. Делимся с вами историей и советами Руслана Лихобабы — человека, с детства мечтавшего стать программистом, но ставшего им по воле обстоятельств лишь в 40 лет. Передаём ему слово.

Детство

Когда деревья были большие, трава зеленее, школа десятилеткой, а мне 12 лет, ко мне подошёл заведующий внешкольной работой и сказал: «Пойдем». Куда и зачем, я не спросил, но молча пошёл за ним. Он меня привёл к железной двери, которая охранялась сигнализацией, и доступ туда был открыт только старшеклассникам и исключительно под присмотром учителей. А такие, как я, могли разве что подсматривать в приоткрытую дверь, пока старшие ученики заходили на урок. Это был компьютерный класс, один из самых крутых на тот момент в нашем городе. В нем были установлены 12 компьютеров БК-0010.

История успеха программиста: превращение мечты детства в реальность 1

Оказывается, в школе было решено организовать компьютерный кружок для средних классов, и я попал в число избранных первых 12 человек. На первом занятии, чтобы освоиться, преподаватель просто ставил различные игры (с помощью 5-ти дюймовых дискет со своей машины) и мы с любопытством впитывали то, что большинство из наших друзей видели только по телевизору. На втором занятии мы начали изучать первый свой язык программирования «Фокал». Мы учились рисовать, используя первые свои выученные операторы «SET», «TYPE», «XECUTE» и функции «FP», «FV».

После этого я «заболел», думать ни о чем другом не мог. Просто «поиграть на компьютере» мне стало не интересно. Я завёл толстую тетрадь, в которой нарисовал точную копию клавиатуры. Я вклеивал в тетрадь листы миллиметровки с рассчитанным размером по разрешению экрана, на которых я рисовал картинки, чтобы легче высчитывать координаты точек и переводить в программный код. Каждая программка записывалась в тетрадь, а потом я тренировался её набирать на своей нарисованной клавиатуре, чтобы на занятии в школе успеть всё ввести в компьютер.

Я понял, что можно делать больше, чем рисовать. Я написал свою первую игру «Угадай число», затем пошли множество версий «Змейки», «Марсов», «Лабиринтов». Особой популярностью в школе пользовалась моя программка, выводящая графики различных биоритмов.

Интернета тогда не было, поэтому я почти жил в библиотеке и читал о компьютерах всё, до чего могла дотянуться моя «понималка». Это заметил преподаватель, и я стал единственным в школе, кому позволялось быть в компьютерном классе в любое время. Мне разрешалось присутствовать на всех «чужих» уроках, оставаться в классе на переменах, а когда преподавателю надо было уйти на время, он просто закрывал меня в классе на ключ.

Я был в 7-ом классе, а информатика начиналась в 9-ом. Были олимпиады за 9-ый класс, но дальше городской меня не пустили из-за разрыва в знаниях математики в два класса. Я ждал 9-ый класс. Именно тогда я почувствовал, что самая лучшая учёба, это когда тебе предоставляют все условия и не мешают, а увлечённость своё дело сделает. Это то, с чем помог мне мой первый учитель информатики.

Оставалось одно лето до 9-го класса, когда мы переехали в другой город. Компьютеров в той школе не оказалось, а информатику мы изучали по картинкам. Программистом я не стал… Не знаю почему. Может, из-за 90-ых, когда учёба стала не в чести. Может, «переходный» возраст и конфликты с учителями. Может, просто рядом не оказалось того, кто направит.

Зрелость

Когда мне стукнуло 18 лет, на свои кровно заработанные я купил свой личный первый компьютер. Это был Spectrum-128, с монитором и двумя дисководами под 5-ти дюймовые дискеты.

История успеха программиста: превращение мечты детства в реальность 2

И тут меня опять «понесло»: череда мелких игрушек сначала на бейсике, затем, когда стало не хватать производительности — ассемблере. Потом моя первая «не игрушка», программа для ведения склада и финансового учёта, когда я впервые по-серьёзному столкнулся со структурами данных, форматом их хранения и необходимостью как-то выкручиваться в условиях имеющихся ресурсов. Но и тут — в 20 лет я молодожён, и семейные потребности вытеснили программирование в статус «былого хобби».

Переломный момент

Следующий компьютер у меня появился, когда мне было уже 35 лет. Как и раньше, меня привлекали игры. Я играл во всё: от замороченных тетрисов до ММОРПГ. И, конечно, меня снова начали посещать мысли о написании своей игры.  Набрав книг для чайников, я начал вникать в новые для себя азы написания кода. И тут я понял, что сам не справлюсь.

За эти годы многое изменилось. 15 лет для IT-индустрии — это вечность. IT-индустрия покинула среду избранных и расширила свой ареал доступности массам. Хорошую программу уже невозможно написать в одно лицо, это стало возможностью сработавшихся команд. Изменились требования к продукту, изменился подход к его созданию. А самое трудное, что для меня оказалось камнем преткновения — это другое мышление, всё стало по-другому. Учитывая, что последний десяток лет я зарабатывал музыкой и мозги работали вовсе не в сторону вычислений и логики, я упёрся в тупик.

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

2,5 года учебы, дипломная работа на тему «Браузерная онлайн игра», идеи маленьких стартапов, посещение конференций по геймдеву… Но опять жизнь внесла коррективы. События Юго-Востока сделали меня переселенцем, где год я прожил не только без интернета, а даже без компьютера, а случайная травма руки сделала проблемной возможность зарабатывать тем, чем я зарабатывал последние 12 лет — музыкой.

Когда жизнь меняется в 20 лет — это одно. Оказаться далеко от дома, который обживал долгим трудом и оказаться без возможности зарабатывать тем, что умеешь, в 39 лет — это катастрофа. Но «show must go on», и я стал думать, какие навыки я могу использовать и во что готов влить свою дальнейшую жизнь.

Программирование? Иностранный гражданин, высшее образование — 2 курса, опыт — дипломная работа. Какие шансы найти работу программистом?

Первые попытки

Первое, что я сделал — зарегистрировался на сайтах вакансий, изучил их. Сначала пытался искать стажировку, но когда увидел, что их по сути нет, стал откликаться на вакансии, в которых, на мой взгляд, было не так много требований. Первый раз нажать на кнопку «откликнуться» решался около часа. Но потом подумал, что терять нечего, а приобрести что-то, может, и получится. Помню, как волновался, когда пришло первое письмо от HR-менеджера с просьбой перезвонить. За три дня до первого собеседования прочитал две книги: одну по C#, вторую по SQL. Потом второе собеседование, потом третье…

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

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

GeekBrains

На просторах сети нашел несколько образовательных ресурсов, которые привлекли моё внимание. Одним из них был IT-портал GeekBrains.ru. Одним из множества плюсов была возможность стажировки, которую я так искал. Поэтому я долго не думал и купил весь курс.

Особенно мне запомнились уроки по мини-играм. Вёл их человек азартный к своему любимому делу, он заражал своей увлеченностью и любил игры, как и я. Те три программы, написанные за курс, стали первыми в моём «репозитории» портфолио. Но демонстрировать мини-игры на собеседованиях мне показалось как-то несерьезно, а приглашение на стажировку от GeekBrains пока не приходило. Если гора не идет к Магомету, то Магомет идет к горе.

Я решил устроить себе стажировку самостоятельно. Дал объявление, в котором написал, что хочу создать небольшую команду для написания совместного проекта в портфолио. Откликнулось 12 человек, из которых через три недели осталось 5. Вот где я получил колоссальный опыт командной разработки! Пришлось перечитать кучу статей по методологиям. Я был и PM, и архитектором, и разработчиком. Раз в неделю у нас проходил митинг. Проект делался 4 месяца, по вечерам после работы. Был реализован сервис по мониторингу GPS трекеров: был написан сам сервис по приёму сообщений от трекера, эмулятор трекера на WPF, клиент на ASP.NET MVC 5 и даже простенькое приложение для Android, которое высылало сообщение со своими гео-координатами на сервер. Мы впервые узнали о «SPA» и попробовали «ReactJS». Были трудности, многое для нас было в первый раз, чему нас нигде ещё не учили. Наш невысокий уровень тоже давал о себе знать. Но глаза боятся, а руки кодят. Всё работало и это радовало!

И вот нам всем пришло приглашение на стажировку от GeekBrains. То, к чему мы приходили с опытом, интуитивно, теперь обрело чёткую форму, стало раскладываться по полочкам. Евгений Картавец провёл нас по всем этапам разработки именно так, как это происходит в большинстве IT-компаний. А наше портфолио пополнилось ещё одним проектом! Это был «краулер» по сбору статистики с веб-страниц, где так же использовались технологии, знание которых на сегодняшний день востребованы на рынке труда.

Сомнения

Но вот чем больше я вникал в сферу IT, тем больше у меня была паника. Тем больше спрашивал себя: «Куда я лезу?» Насколько мне далеко до необходимого уверенного уровня. Как понять, правильное ли я принял решение — стать программистом. Да ещё и работу найти по этой профессии?

Чем дальше, тем чаще у меня возникала ассоциация: сорокалетний человек, самоучкой поиграв год на скрипке, приходит устраиваться в симфонический оркестр. У меня не было времени на естественный процесс «становления профессионалом», как у студентов ВУЗов. Их путь мне надо было пройти даже не в два, и даже не в три раза быстрее. Пока стоишь на остановке, достаешь планшет, чтобы прочитать ещё одну страницу «Совершенного кода». Даже если ехать одну остановку, успеваешь посмотреть примеры работы с библиотекой.

За то время, что я создавал портфолио, я прочитал книги ведущих гуру мира IT, изучил паттерны проектирования, узнал о бест-практиках написания кода, посетил две конференции по .NET. Писать код стало моей потребностью, а Habrahabr и StackOverflow — любимым чтивом. В какой-то момент я осознал, что учиться можно бесконечно и всё равно всегда будешь чувствовать себя не готовым. Поэтому я снова расшарил резюме.

Результат

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

Сейчас закончился второй месяц испытательного срока, и теперь я полноценный трудоустроенный .NET-разработчик. Мне 40 лет. Чтобы тебе дали проект на разработку, как архитектору, сколько надо времени? Я думаю, у тебя получится сделать это быстрее… Если ты, прочитав статью, всё ещё сомневаешься, я поясню:

Как стать программистом?

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

Как стать работающим программистом?

Для того, чтобы трудоустроиться, твои навыки должны быть востребованными. Чтобы навыки были востребованными, нужно знать и уметь то, на чём работодатель сможет заработать. Чтобы знать и уметь, нужно учиться и кодить, кодить и учиться…В твоей жизни никогда не будет момента, когда ты с уверенностью скажешь себе: «Я всё знаю». Нынешнее «знаю и умею» через год может быть никому не нужным, именно поэтому важно выбирать ресурсы, где тебя будут учить новому «знаю и умею».

Как стать работающим программистом в 40 лет?

Предыдущие два ответа умножай на 10. Не получается — умножь на 100. И помни, работа тебя найдет. Приходя на собеседование, сидя в офисе, я всегда вслушивался, чувствую ли я себя «Дома»? Придя на последнее собеседование, я знал, что буду здесь работать, потому что я был Дома.

Записаться на бесплатный курс «Основы программирования» от GeekBrains.

Следите за новыми постами
Следите за новыми постами по любимым темам
22К открытий22К показов