Про учебу
Сейчас я работаю и учусь в Технологическом университете города Дельфт в Нидерландах. До этого окончил Иркутский государственный университет, учился на физическом факультете. Во время моей учебы в Иркутске программистов не учили примерно нигде, поэтому основным направлением была прикладная математика. На прикладную математику я не прошел, и в качестве запасного варианта у меня был физический факультет рядом. Поэтому я поступил именно туда, а на программиста доучивался параллельно.
У нас в школе был сильный уклон в физику, поэтому для меня проходить лекции и занятия было легко. Оставалось много времени для доучивания профильных предметов, близких к программированию, в том числе разделы математики: дискретной математики, логики. Это в конечном итоге оказалось действительно полезным для будущей работы: выходили разные книги по языкам программирования, по алгоритмам, по методологиям разработки софта, паттернов проектирования. По крайней мере это начало развиваться, и я старался доучивать все необходимое.
Выбор университета
Так получилось, что еще со школы у меня был большой интерес именно к языкам программирования, к разработке языков. Поэтому я решил совместить приятное с полезным и углубиться еще сильнее в исследование языков, делать это на профессиональной основе. Стандартный способ начать — это поступить в аспирантуру. Так получилось, что в мире занимаются именно исследованием в области языков программирования не очень много вузов, большинство из них находятся в США, несколько — в Европе и Англии. Основной из них именно технический университет города Дельфт, он известен в этих кругах. У нас есть достаточно большая группа, которая этим занимается, достаточно большой поток статей высокого качества на конференциях.
Поэтому это был один из главных, наиболее высоко стоящих в списке вариантов. Там и до сих пор открыта парочка позиций PhD-студентов, одну из вакансий занял я.
Первая работа
На первую работу я попал сравнительно банальным образом, как это пропагандируется. Я работал на кафедре, и завкафедрой познакомил меня с человеком, у которого была своя компания и запрос на кадры. Меня ему сосватали. Я прошел собеседование и начал там работать официально на полставки. Моя работа в фирме легла в основу дипломной работы.
Задачи программиста
С одной стороны, особенно со стороны шестилетнего ребенка, все, чем я занимаюсь — это целый день сижу перед компьютером. Этот стереотип, по которому программист сидит за компьютером, тупит в монитор и не понимает, почему что-то не работает. Так и проходит большая часть дня. Остальная часть дня — это ты понимаешь, почему что-то не работает, и пытаешься исправить. Вот в таких пробах и ошибках и проходит день программиста, за исключением каких-то редких дней с особенными творческими прорывами, когда ты накидываешь скелет новой системы с нуля, чтобы однажды это заработало.
Я решаю два сорта задач. На самом деле я работаю на двух должностях. Половина времени — это задачи, связанные с исследованиями для PhD. Вторая половина — разработка программного обеспечения, когда я выполняю задачи по поддержанию и развития нашего приложения: писать на бекенде, чинить сервисы. Задачи, связанные с исследованием, немного интереснее.
В данный момент я занимаюсь тем, чтобы интегрировать новую языковую фичу в исследовательский язык программирования. Задача, которую я перед собой поставил, это добавить в него синхронную обработку, связанную с запросами к сторонним сервисам.
Самый сложный вызов
Самый сложный вызов в интеллектуальном плане — моя исследовательская работа. Первой сложностью было найти подходящую задачу для занятий. Это тоже для тех, кто будет интересоваться и будет поступать в аспирантуру в какой-то зарубежный вуз. В отличие от большинства российских программ там почему-то не принято давать человеку заранее сформулированную задачу. Везде, где я собеседовался, мне говорили, что я подхожу, но тему моих занятий мы определим в течение года в зависимости от того, что мне будет интересно и что предлагает университет.
Поэтому первое — это необычная задача, по крайней мере для того, кто работал в индустрии с большим сформированным списком задач в беклоге. Здесь нужно именно самому сориентироваться, хорошо подумать, чего ты хочешь достичь, что хочешь привнести, что будет актуальным и полезным для сферы. Дальше подразумевается, что про это нужно писать и публиковать статьи, к которым применяются критерии новизны, полезности и качества.
Было не так просто найти что-то, что было бы с одной стороны полезно, с другой еще не реализовано, по крайней мере в том контексте, в котором наша группа работает.
Про хобби
С хобби у меня проблема в том, что их даже слишком много. Опять же на все не хватает времени и сил, невозможно разорваться. В последнее время я решил сконцентрироваться на тех хобби, которые полезны для здоровья. Сейчас это велосипед. Естественно, в детстве я проводил много времени на природе вне города с велосипедом. А буквально пару лет назад, когда я пошел кататься на арендованном велосипеде в парке, понял, насколько это увлекательно и приятно. Следующее, что я сделал, это купил свой велосипед, а потом новый – более продвинутый. И теперь пытаюсь кататься на нем как можно больше, развивать навыки и выносливость.
Совмещение работы и учебы
Как известно каждому студенту, начать просто, поступить — меньшее из проблем. Закончить любой проект — гораздо сложнее. поэтому удастся ли мне совмещать, станет известно, когда я успешно защищу диссертацию. И учеба, и работа — это неофициальная деятельность, но теоретически это обычный восьмичасовой рабочий день. 50% я распределяю на задачи, связанные с исследовательской деятельностью, а другую половину — на программирование. Остальное время уходит на сон и велосипед.
Советы себе в юности
Главный секрет — это как заставить себя заниматься каждый день. Тот, кто нашел ответ на этот вопрос, достигает совершенно невероятных результатов. Поэтому если вам нравится программирование и вы хотите заниматься этим каждый день, занимайтесь этим каждый день, как можно больше, все свободное время, которое остается после здорового сна.
Программирование, как и математика — это навык ручной работы, это то, что ты либо умеешь делать руками, либо не умеешь. Это навык, который достигается за счет практики.
Самое лучшее сейчас — целенаправленная практика определенных умений и определенных способностей. Программирование развивается через решение задач. Благо сейчас есть огромные архивы задач онлайн, в интернете, в том числе в рамках обучающих сервисов.
Кроме того отличная тема, я считаю, это совмещение изучения программирования с изучением математических дисциплин, то есть программировать решение математической задачи. Есть целые курсы, знаменитая книга «Структура интерпретации классической механики», которая программирование решает через задачи. Таким методом можно решать задачи из любой сферы. Всегда можно найти, как практиковаться в программировании, а заодно выучить что-то интересное для вашего образования.
У вас тоже получится
Разработчик — первая Программа обучения для осознанного выбора специальности и карьерной траектории в сфере информационных технологий от GeekBrains при участии Skillbox.
Получите востребованную профессию или откройте бизнес в сфере информационных технологий.