Антон «Компот» Федченко о тенденциях в современном программировании

от автора

Антон — программист с колоссальным опытом разработки на таких языках как Java, Scala, C#, JavaScript. Участвовал в разработке проектов technosila.ru, ridus.ru, microsoft.com, gazprom.ru, tcsbank.ru.

Антон, чем отличается работа программиста, делающего высокоуровневые проекты под заказ, от программиста, работающего на низкоуровневых проектах?

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

Ты проработал 11 лет в Студии Лебедева. Скажи, в чем разница между тем, чем ты занимался там, и тем, что делаешь сейчас?

Там были другие люди, все было более design-oriented и все шло от этого, что, мне кажется, неправильно. В нашем случае можно соблюдать баланс и мы пытаемся его держать.

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

Вынашиваешь идею собственного проекта?

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

В сущности нужно уметь находить проверенные хорошие решения и правильно их объединять. Это и есть работа современного высокоуровневого программиста: сам ты по сути ничего не пишешь, а если пишешь, скорее всего ты недостаточно копнул и не нашел то, что кто-то это до тебя уже сделал. Конечно, если ты делаешь что-то прогрессивное (работаешь в команде, которая занимается поисковым движком Яндекса, например), то очевидно, что это мало кто еще делал, но те мейнстримовые вещи, которыми мы занимаемся, уже наверняка созданы, поэтому лучшее решение — взять готовое и правильно это склеить.

Переживал ли ты периоды застоя?

Да, бывает, что переживаю.

Что такое застой в твоем понимании?

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

Что планируешь делать через 5 лет, в таком случае?

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

Можешь ли дать какой-либо совет по внутренней дисциплине?

Боюсь, это не ко мне.

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

Интерес сохраняется тогда, как помимо работы ты изучаешь что-то еще. Даже в самые застойные времена, когда приходилось заниматься поддержкой сайта Microsoft, я всегда занимался чем-то после работы. Тебе это должно быть интересно, а если неинтересно – то странно, как ты сюда попал. Я бы сказал, что вряд ли есть хоть один программист в мире, который стал программистом после 5 лет обучения в ВУЗе, ничем больше не занимаясь. Все в свободное время бесконечно изучали что-то, интересное им. Базовый рецепт, который работает для всех областей – быть любознательным.

В IT-сфере быть любознательным это просто, потому что все новое появляется с космической скоростью. Достаточно быть подписанным на пяток сайтов и 50 интересных тебе продвинутых разработчиков, каждый из которых раз в день что-нибудь пишет. Прочитав, ты думаешь: «О, надо попробовать». Пробуешь, а за этим еще целая вселенная, и это бесконечно. Количество генерирующихся знаний в этой области в мире значительно превышает возможности их обработки, поэтому процессы бесконечны.

За какими разработчиками следишь?

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

Сам ведешь свой блог?

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

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

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

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

ссылка на оригинал статьи http://megamozg.ru/post/16510/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *