New Russian MVP

Posted by on in Blogs
«Новый русский MVP» - Роман Янковский согласился дать интервью по случаю статуса Embarcadero MVP. В какой-то момент начал себя осаживать с вопросами, Роман - очень интересный собеседник, преданный делу программирования. Ничего так не делает «харизму» человеку, как профессиональная увлечённость.

Почему «новый русский MVP». По моим меркам сейчас уже вполне сформировался класс разработчиков, который в силу обстоятельств, очень хватко и прагматично относятся к программированию. «Наше» поколение получило «программирование» как «новый космос». Воспитанные космической фантастикой, мы, однако, переживали фантастический бум именно по части компьютеров. Программировали на всём, что имело процессор. Считали глав IT-компаний чуть ли не богами. Готовы были работать бесплатно лишь за саму возможность программировать. Мне было интересно поисследовать Романа и с точки зрения личности, именно такие люди определяют имидж или облик современного Delphi-разработчика. Встречайте!



Роман, по меркам профессионального программирования ты - достаточно молодой специалист. С какой версии Delphi ты начал работать?

 Изначально я столкнулся с Delphi 2 что-то около 15ти лет назад. Это был мой второй язык программирования (тогда его звали Object Pascal), первым был GWBASIC. Забавно, что в отличие от многих, я столкнулся с Turbo Pascal только позднее, уже после того как более-менее освоился с Delphi. Это было в ВУЗе. Но все это конечно было далеко от профессионального программирования.

 Первая моя настоящая работа была связана с Delphi 7. С этой версией я работал дольше всего, затем судьба перенесла меня на Delphi 2006 и, наконец, совсем недавно, на Delphi XE2. С другими версиями я, можно сказать, сталкивался только в свободное время.

Мы с удовольствием читаем твои статьи в блоге (roman.yankovsky.me). Давай составим твой профессиональный портрет. Расскажи, пожалуйста (название компаний можно опустить, а технические детали, наоборот, приветствуются), какие ты проекты делал? Какие задачи решал? Какими средствами?

Примерно за 8 лет практики я поработал в разных проектах. Это был и аутсорсинг, и "заказная" разработка, и "коробочные" продукты. Проекты были в сфере энергетики, телекоммуникаций, страхования, и, наконец, средства разработки. Так сложилось, что мой путь был связан в основном со связкой Delphi и Oracle. Если считать в затраченном времени, то можно сказать, что PL/SQL - это мой второй основной язык. В разных компаниях я почерпнул разное. Где-то - хорошо читать незнакомый код, перебираясь с проекта на проект, где-то - работать в полном отрыве (географическом и временном) от остальной команды. Вероятно, саму важную часть моего профессионального портрета сформировала работа в компании Quest Software и позднее в Dell, где мне посчастливилось работать в очень сильной команде, малым количеством ресурсов решающей достаточно сложные задачи.

 Судя по твоему описанию, решал задачи ты профессионально высокого уровня. Как ты прошел путь от новичка до матёрого инженера-разработчика? Как где чему учился? Что можешь посоветовать начинающим, которые хотят быстро достичь прогресса?

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

 Если говорить о советах начинающим, то, пожалуй, главное, чему не учат в ВУЗах - это работа с кодом. Студенты как правило работают с небольшими программами - это курсовые, лабораторные и так далее. А затем их внезапно бросают с обрыва в проекты из сотен тысяч и миллионов строк не очень свежего кода.

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

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

 Также лучше не ограничиваться одним языком программирования (Delphi), а иметь представление о разных подходах к программированию. И лучше, чтобы это было не только мейнстримом вроде Java или C#, а охватывало что-нибудь из функциональных языков. Функциональное программирование здорово прочищает мозги и помогает и на Delphi/Java/C# писать более стабильные программы с более читаемым кодом.

Твои статьи посвящены достаточно сложным аспектам разработки. Чего скрывать, многие Delphi-программисты достаточно формально используют компонентную базу. Form1, Button1 и т.д. не особо вникая в изощренные техники программирования. Например, свой «TAction». Ты его начал копать просто для себя, случайно наткнулся, интуитивно нашел «точку роста»? Скажем так, где и как ты черпаешь вдохновение для написания статей?

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

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

Я знаю, что ты являешься автором некоторых программ для «свободного пользования». Они хоть и достаточно простые, но представляют собой законченные приложения. Вообще, программирование - твоё хобби?

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

Если бы ты работал в команде Embarcadero (чего бы лично мне очень хотелось), какое бы направление для себя выбрал? Компилятор? IDE? Компонентная база? Архитектура? Платформы DataSnap?

Пожалуй, точно не IDE. Можно сказать, что IDE я уже писал. Хочется нового. Думаю, я бы выбрал либо компилятор, либо один из фреймворков. Библиотека FireMonkey была бы хорошим выбором, похоже, именно там происходит сейчас самое интересное, я бы с удовольствием поработал над её усовершенствованием.

Ко мне приходят вопросы, как стать Embarcadero MVP и быть в курсе всего, что происходит в мире Delphi практически изнутри компании. Думал ли ты о статусе MVP? Для этого же надо быть достаточно «пишущим» разработчиком. Чем ты был мотивирован на ведение технического блога?

О статусе MVP я конечно знал, но честно говоря, я к нему не стремился. Мой блог не совсем технический. Он скорее личный с техническим разделом. Я скорее просто пишу о том, с чем сталкиваюсь и что считаю интересным. Это может быть какая-то особенность Delphi (а это мой рабочий инструмент), а может быть и цитата из книги, которую читаю. А завел я блог потому, что хотелось всем этим с кем-то делится. Честно говоря, я очень рад, что техническая сторона моего блога интересна не только мне. Получив статус MVP, я, конечно, буду стараться писать уже не только для себя, но и для широких масс, так как новое положение требует несколько более внимательного отношения к читающей аудитории.

Есть какая-нибудь задача, решением которой ты особо гордишься?

Трудно ответить на этот вопрос, не вдаваясь в технические подробности. Скажем так, из того, что я делал в последнее время, меня особенно радует удачная реализация возможности работы 32-битного приложения с 64-битным клиентом Oracle. Тот, кто хотя бы раз пробовал использовать в 32-битном приложении 64битную DLL, поймет о чем речь.

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

 Мне это интересно. Что-то вроде проверки, смогу ли я этого достигнуть. На самом деле, физическая активность здорово помогает расслабляться, как ни странно, особенно когда втянешься. Почему сосредоточился на беге? Это личный такой момент. Мой дед до последнего времени был президентом клуба стайеров в своем городе. И, я думаю, в том числе благодаря бегу в свои 80+ лет находится в совершенно потрясающей для своего возраста форме. То есть у меня есть хороший пример.

Роман, искренне желаю тебе пробежать свой первый марафон в реале, а также продолжить постоянные публикации, чего скрывать, рассчитанные на подготовленного читателя. Embarcadero часто спрашивают о материалах для начинающих, особенно в свете поддержки Android в Delphi XE5. Но главным костяком community Delphi всё-таки являются не только «популисты» в хорошем смысле этого слова, но крепкие бойцы, уже давно пробежавшие свои марафоны в плане кодирования. Которые теперь думают уже не о скорости, а о качестве и техническом совершенстве. Ждём новых публикаций!

Спасибо!
Tags: public


Comments

  • Page :
  • 1

Check out more tips and tricks in this development video: