×

Как подполковник стал программистом

Андрей Ткаченко увлекся программированием еще в военном училище, но 25 лет посвятил службе в армии. По ее окончании, в 42 года, он решил вернуться к программированию и стал Software Engineer в Intetics. О своем карьерном пути он написал для DOU.

Служба

В мои семнадцать я тяжело представлял, кем хочу быть. Жизнь распорядилась так, что профессию выбирать мне надо было лет 30 назад, когда программирование сильно отличалось от того, каким мы его знаем сейчас. И хотя оно мне нравилось с точки зрения возможностей решения сложных задач, это направление не рассматривал серьезно в качестве будущей профессии. Программисты тогда работали в больших вычислительных центрах в машинных залах на перфокартах, магнитных лентах и барабанах. Это не было так привлекательно и интересно как сейчас :) Тот факт, что мой дед и дядя были военнослужащими, сыграл свою роль, и на семейном совете было решено поступать в военное училище. Свой интерес к программированию я смог реализовать, попав там в группу программистов.

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

Я закончил училище с красным дипломом и мне посчастливилось попасть в Военный научный центр космических исследований (при Харьковском военном университете), который взаимодействовал в том числе и с Национальным космическим агентством Украины. Я был вовлечен в очень интересные проекты, связанные с разработкой системы контроля космического пространства, специальной обработкой информации глобальных навигационных спутниковых систем. Эти проекты требовали как научного подхода, так и умения программировать. Именно там и пригодились не только мои научные знания, но и приобретенные на кафедре навыки программирования.

За 25 лет в армии я дослужился до звания подполковника. Службу проходил в нескольких местах: Военный научный центр космических исследований, Объединенный научно-исследовательский институт Вооруженных Сил, Харьковский университет Воздушных Сил им. Ивана Кожедуба. Также защитил кандидатскую диссертацию на тему «Первоначальное определение орбит космических объектов по радиолокационным и оптическим наблюдениям».

Программирование

Чем ближе было окончание службы, тем четче я понимал, что программирование — это реально то, чем мне бы хотелось заниматься после увольнения. Тем более, что я имел определенный опыт программирования на С++, а слова ООП, STL, паттерны не были для меня пустым звуком. Вместе с тем меня одолевали сомнения: достаточно ли моего опыта программирования, смогу ли я конкурировать с молодыми программистами, получившими современное образование, и которые, с большой вероятностью, лучше знают современные технологии, будет ли мой возраст играть против меня. Тем не менее года за полтора до даты моего увольнения я уже четко знал, что я сделаю все возможное, чтобы стать программистом, и имел более-менее сформулированный план по подготовке.

Чтобы определиться с технологией, я проанализировал рынок и пришел к выводу, что со знанием Java у меня открывается больше возможностей, чем если бы я углублялся в С++. Я понимал, что надо развиваться, и начал углубленно изучать английский, прошел курсы Java в Oracle Academy, начал программировать на Андроиде.

Английский я изучал постоянно (частные уроки, аудиокниги, фильмы, онлайн-курсы), начиная с уровня Pre-Intermediate в 2009 году и заканчивая получением сертификата САЕ в 2016 году.

Хотя во время службы на Java не приходилось писать, поставил себе цель изучить Java до такого уровня, чтобы быть готовым к сертификации SCJP for Java 6, для чего прошел четырехмесячные курсы в Oracle Academy.

Android же для меня был на уровне хобби. Мне просто нравилось писать программы для телефона, которые помогали мне в жизни. Как, например, при изучении английского: мне не хватало функциональности существующих аудиоплееров для изучения языка (нельзя было выделить несколько частей звукового файла и перемещаться между ними, многократно прослушивая каждый). Я написал собственный аудиоплеер, который решил эти проблемы, и даже были идеи довести его до PlayMarket. Всем этим я занимался около года, когда было свободное время.

Чтобы постоянно поддерживать свои навыки программиста в тонусе, а также понемногу «прокачивать» их, я сам придумывал себе задачи. Так, например, одна из программ, которую я написал, моделировала прохождение Луны по небу в определенную ночь (идея задачи родилась во время одной из ночных рыбалок).

Если я чего-то не знал или не понимал, то приходилось искать ответы на форумах и в книгах. В то время я больше читал книги, привязанные к определенным технологиям. Сейчас же, имея определенный опыт, могу сказать, что и книги, посвященные практическим законам разработки, такие как «Code Simplicity», не менее важны для развития.

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

Работа

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

Тестовые задания были непростыми, но интересными — пришлось поломать над ними голову, но это как раз стимулирует найти решение. Заданий было два. Первое относительно простое, его я делал дома. Это обычная алгоритмическая задача для проверки понимания алгоритмов и структур данных. Для выполнения второго задания меня пригласили в офис. Оно показалось чуть сложнее: помимо знания алгоритмов пригодился опыт программирования и оформления кода. Второе задание у меня отняло часов восемь, но это время вписывается в стандартную норму выполнения. После собеседования меня пригласили на работу.

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

Начал я сразу с реальных задач, хотя и самых простых, вроде добавления элемента «Кнопка» в графическом редакторе. В начальный период главной задачей было освоиться с функциональным языком программирования (у заказчика он свой). Язык внутри проекта — Flow. Он закрытый, не open source и используется только у нас. Таких много, их называют DSL-языки, или Domain-specific language. Такие языки предназначены для специфических областей. Также предстояло смириться с тем, что ООП в общепринятом понимании не поддерживается, и разобраться с архитектурой уже написанного кода.

Очень понравилось то, что заказчик учитывает индивидуальные особенности каждого и дает возможность входить в проект в своем собственном комфортном темпе. Лично у меня ушел где-то месяц на «вхождение» в проект (по опыту коллег — в среднем так и происходит). Мне помогло изучение ресурсов по реактивному функциональному программированию (их достаточно много в сети), а также курс «Functional Programming in Scala» на Coursera. Я прошел этот курс немного позже, но считаю его очень хорошим с точки зрения знакомства с функциональным программированием. Сейчас новички проходят тренинговый курс из 10 задач, охватывающих разные аспекты использования языка.

За 3 года я дорос до тимлида одного из подпроектов. И снова свою положительную роль сыграл армейский опыт: навыки управления коллективами оказались востребованы для этой позиции. И, конечно, очень помогает сертификат CAE: такой уровень английского позволяет более-менее свободно общаться с заказчиками.

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

Вывод

Когда я пришел в IT, мне уже было 42 года. Да, были определенные сомнения — тем не менее у меня все получилось и, более того, я продолжаю развиваться и расти. Для сомневающихся я могу сказать одно: пробуйте и будете удивлены, насколько все оказывается проще и легче, чем вы ожидаете. Разумеется, усилия прикладывать придется, но это применимо ко всем сферам, а не только к IT, которое зачастую кажется гораздо более требовательным, чем другие индустрии. Надеюсь, мой пример ясно доказывает, что никогда не поздно поменять что-то в жизни :) Главное, решиться.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному0
LinkedIn

Схожі статті




67 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Вместо всей статьи с советами для джунов, интересно было бы узнать более детально про:

взаимодействовал в том числе и с Национальным космическим агентством Украины. Я был вовлечен в очень интересные проекты, связанные с разработкой системы контроля космического пространства, специальной обработкой информации глобальных навигационных спутниковых систем. Эти проекты требовали как научного подхода, так и умения программировать. Именно там и пригодились не только мои научные знания, но и приобретенные на кафедре навыки программирования.

Как там поживает наше космическое агенство и насколько далеко оно от НАСА?

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

так ведь автор и был всю жизнь программистом. а потом ему это надоело и он перепрыгнул в формошлёпы, теперь кнопки двигает вместе с 23-летними синьорами бггг

Да не надоело, а пенсию заработал. А раз пенсия в 42 есть, чего еще там сидеть?

Блин, что я делаю нетак ? Мне далеко не 42, инструменты по своей специальности я знаю не плохо, а работу не могу найти уже 3 месяца.

Не знаю как в вашем резюме, но на Линкедин профайле тема фронтенда совсем не раскрыта. Больше похоже на SEO специалиста. Может в этом причина.

Да я бы с радостью её раскрыл, был бы опыт. А так кроме стажировки одной, нечего и писать толком.

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

Да, entry level и да front-end. Спасибо за совет :)
Но не совсем понял инструменты. У меня вроде бы как написаны языки и инструменты. Или написать это как-то развернуто, а то у меня просто список :)

Я не знаю, что у вас в резюме, но, в целом, как можно подробней — чем именно вы занимаетесь и что используете на последней/текущей работе (internship). Тем более, что это пока ваша единственная работа свазанная с позицией Front-End Developer. И подумайте что из фронтенда было на ваших предыдущих позициях. Может приходилось работать с CSS, например, и тоже добавьте это в резюме.

Та это обычный нормальный период.
Поиск работы всегда так в среднем и занимает — 3-4 месяца

Я один что ли открыл страницу вакансии и подгорел с английского?)

Are you tired of same vacancies? Do everyone demands over 100 years of experience and boring tasks in return?
We create and modernize .... , develop IDE, compilators.

Скажу так, хирургом тоже можно стать в 40 лет, но будут ли у такого хирурга много клиентов — сомневаюсь, человек пришел в этот Intetics, стал каким то лидом, вот там он и останется, лидом на каком нибудь энтерпрайз проекте, многое ли он повидает с такой карьерой — тоже сомневаюсь, чисто мое имхо

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

че покуриваете?

чтобы иметь собственное мнение, курить ничего не нужно

На галере подсыпают?

Если бы. ) В основном не досыпают. )))

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

Учитывая руководящий опыт, перейдет в менеджеры и перестанет программировать

Начало истории — как у меня, правда, заканчивал артиллерийское командное и отдал службе 10 лет. Учиться программированию начал в 37 лет, в 40 лет стал джуном в стартапе на удаленке... Сейчас мне 47 лет, — полет нормальный :)

Английский я изучал постоянно (частные уроки, аудиокниги, фильмы, онлайн-курсы), начиная с уровня Pre-Intermediate в 2009 году и заканчивая получением сертификата САЕ в 2016 году.

Остальное можно не читать..

Не понял, в каком смысле «не читать». Почему?

Почему говорит, что он вошел в IT, если он всю жизнь был прикладным программистом и так?

Может то айти было не такое прекрасное как это.

А оно не имеет ничего общего. Я, када перешел на формошлепство, офигевал прост. Считай, учился с нуля, тк ни языки, ни подходы, ни мат.аппарат не совпадают.

какой мат аппарат в формошлепстве, отличен от рокет саенс?

какой мат аппарат в формошлепстве, отличен от рокет саенс?

Весь уровень абстракций отличен, все вычислительные контексты (читай объекты) строятся по-другому,а наверх еси еще докинуть теорию категорий, то вообще капец. Чем ближе к железу, тем более оптимизированный код и тем меньше абстракций, тем они примитивнее. Это кроме того, что языки абсолютно не похожи. Сравни S7 языки или Verilog с обжс или жабой.

Кстати, в области функциональных языков конкуренция не такая сильная и часто можно устроиться и без большого опыта. Так что входить в профессию лучше со Scala, Haskell или, если фронтенд, ELM.

Примeр для мeня )
Написал в личку :)

Аналогично. Тем более, что мой родной факультет. :) Только я по спецухе так и не работал. Хотя после дембеля надеюсь. :)

И снова свою положительную роль сыграл армейский опыт: навыки управления коллективами оказались востребованы для этой позиции.

І ворогу не побажаєш такого тімліда.

Отставить смехуёчки. Два овертайма вне очереди!

ех. А от якби якийсь прапор став тімлідом і керував командою як в армію.«ТІМА ПАДЙОМ !!!», «ХТО ВКОМІТИВ Х**НЮ !!!», «ВЕДМІДЬ В ЦИРКУ НА ВЕЛИСОПЕДІ ЇЗДИТЬ, А ТИ БАГУ ЗАФІКСАТИ НЕ МОЖЕШ»

Завалил билд? Упал — отжался! %)

Блин я б точно пошел в такую тиму!

замість стендапу — шикування

Нє, ну а чьо нє? :))) Взагалі Тім лід у арміі то є сержант, «комод»

А у вас в команді це якось інакше виглядає? Як ви релізитеся взагалі?

так и без прапорщиков такое можно слышать

Такого руководства не хватает многим программерам-раздолбаям

реклама конторы засчитана

Красавчег! А говорят, что программистов после 40 в Украине не существует. А они есть.

Заголовок ваще не в тему. Чувак был получше программистом, чем многие сейчас, за эти 25 лет. Так что можно сказать просто галеру сменил)

Я тоже из статьи не понял что на что он поменял, программером был, программером стал.

Ну ведь яснож — похлебку на смузи)

Евгений, без обид, прочитал Вашу фамилию как «манагер»)) пятница, она такая ..

да, бессмысленная и беспощадная
хотя некоторые в этом коменте могут усмотреть много чего.. например национальную рознь или еще что там к месту придумаеццо))

Ріспект дядьку! Криза середнього віку, не, не чув :)

Хорошая карьера... Я бы тоже так поступил в наше время, будь я подполковником... Потому что 1) никому не хочется воевать
2) иметь зп в долларах приятнее чем офицерский чин и соц пакет в грн )))

Куда воевать? Эра звездных войн настала чтоли?

Коли прочитав заголовок подумав: реально штабний щур, дослужився до подпола і вашолвайті. Але я помилився. Молоток дядьку.

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

Хотя я понимаю, что это в статье так все гармонично и просто, по факту думаю, все сложности остались за кадром.

Привет тезке =)

А тов. подполковник если шо поможет порешать с военкоматом)?

Если бы мог — не стал бы программировать на недокриптоязыке

Завалил спринт — На повестку! Вкомитил хрень, баг — на повестку! Sounds like a plan! :)

У нас так в стране останется 1 из 20 айтишников))

Підписатись на коментарі