В каких странах ты был, что запомнилось наиболее ярко? Только за последние три года я посетил (в алфавитном порядке): Азербайджан, Великобританию (3 раза), Грузию (2 раза), Данию, Казахстан, Камбоджу, Кению, Непал (3 раза), ОАЭ, Пакистан, Россию (неведомое количество раз), США, Таиланд, Танзанию, Турцию, Финляндию, Хорватию, Черногорию и Швецию. Как итог — в паспорте остался свободным лишь последний разворот. Самая интересная и восхитительная страна из моего списка — Непал. Прекрасные горы, дружелюбные непальцы, Beatles и Pink Floyd в местном исполнении в барах Катманду, грандиозные храмы и тихие монастыри. Что ты вынес из своих путешествий? Поделись своим практическим опытом. Вынес несколько основных вещей. Во-первых, стоит полагаться на себя. Человек способен на большее, чем может представить. Вовторых, подавляющее число людей в мире — добрые и неконфликтные. Не стоит верить новостям и не стоит бояться нехоженых троп. В-третьих, на путешествие ты потратишь столько времени и денег, сколько у тебя есть. Давай немного отвлечемся — почему ты стал именно программистом? Это случайность, расчет, желание родителей? Что для тебя программирование сейчас — средство заработка, самовыражения или...? В детстве увлекался математикой, точными науками, технологиями. Соответственно, и компьютерами. Первые программы писал еще для ZX Spectrum, спасибо старшему брату, который его собрал. На PC писал простенькие текстовые игры на Pascal и Basic. Помню первое приложение с GUI, это была игра Duck Hunt, написанная на Visual Basic, который можно было раскопать в поставке Microsoft Office. Сейчас программирование для меня — это хорошо оплачиваемое хобби. И почему же в итоге Сергей-программист стал таким ярым путешественником? Откуда взялась страсть к путешествиям на фоне довольно обыденной офисной профессии? Уверен, что дело в книгах, которые читал в детстве. Жюль Верн и Дюма, Сабатини и Стивенсон, Льюис и Конан Дойл — все они писали о приключениях и путешествиях, чем и определили мою непоседливость. Все-таки программирование требует сосредоточенности и внимания, разве нет? Как ты реально работаешь в дороге, может, есть какие-то находки, приемы или хитрости? Стоит ли за таким специфическим образом жизни некая философия? О находках: чтобы успешно работать и путешествовать, нужно держать темп. Например, приехав в какой-то приятный город, можно две недели ходить по горам, сплавляться по рекам, исследовать достопримечательности, даже и не подходя к ноутбуку. А следующие две недели посвятить работе, по вечерам отдыхая и общаясь с местными жителями. Так, в режиме две недели через две недели, я обычно нарабатываю больше 80 часов в месяц, и этого вполне достаточно для оплаты счетов. Еще один совет: не пользоваться 3G-интернетом. Лучше выбрать хорошую кафешку с Wi-Fi и работать там. Приход в эту кафешку будет означать начало рабочего дня, это помогает сконцентрироваться. При должной сноровке можно даже следовать примеру Фейнмана и работать в барах под громкую музыку и разговоры. Это вполне реально, если задача действительно интересная. Философия же проста: пока молод, стоит набираться опыта и знаний, это как прочный фундамент всего остального. Широта взглядов и более глубокое понимание людей окупится в дальнейшем. Ну и carpe diem — не стоит терять возможности повеселиться. Несмотря на всю лаконичность твоего ответа, если позволишь, давай еще немного подебажим эту центральную тему интервью. Как я понимаю, есть две противоположные стратегии применительно к работе. Первая — это уход от мира, путь затворника или монаха, интроспекция бытия. Создание неких идеальных условий для стяжательства духа святого, отгородившись от всех соблазнов и грехов мира толстой офисной стеной. Применительно к ИТ это прежде всего Google-стиль — полностью самодостаточный навороченный офис со встроенной кухней (и желательно бассейном, массажной и тренажерной). Люди, работающие в таких условиях, обычно проводят свое рабочее время в наушниках («чтобы не отвлекали»), обставленные тремя или четырьмя мониторами по периметру («так удобней»). Ну прямо Царство Функциональности и Комфорта, дарованное работодателем для исполнения его Задач, тщательно отгороженное от всего бренного и социально ориентированного за пределами сего сияющего офиса. Противоположный стиль — это прыжок в гущу событий, абстрагирование от внешнего, какой-то спартанско-мобильный стиль работы на любой встречной кочке, где вроде бы и нет никаких условий для работы вообще, и все тебя во всем отвлекает... Но зато если ты адаптируешься к этому, открываются новые перспективы. В силу судьбы мне пришлось поработать именно в таких условиях в свое время, когда кругом стоял шум и гам, играла вовсю музыка, и мне приходилось решать довольно-таки сложные задачи, скрипя от натуги тогда еще молодыми мозгами. Я достиг уровня, когда степень погружения в задачу была такова, что люди, стоявшие рядом, не могли окликнуть меня, потому как я попросту не слышал голосов из внешнего мира. Коллеги, потерявшие надежду на традиционный коннект со мной, прибегали к болезненному тычку острым предметом в мое каталепсическое тело, чтобы я актуализировался в нашем временном континууме. Тогда я подумал, что такое программирование — это в прямом смысле медитация на коде, причем противоречивые внешние условия только углубляли уровень погружения (по принципу «что не убивает нас, делает нас еще сильней»). Что из этих двух полярностей предпочитаешь ты? Мне ближе второй вариант. Умение входить в поток посреди бушующего моря, запираться в башне из слоновой кости, быть одновременно и программой, и компьютером, исполняющим эту программу, — это одно из умений, которым программист должен владеть в совершенстве. Оно сродни первым этапам медитации, вот только конечной целью является не отрешение от мира, а как раз погружение и концентрация на одной-единственной вещи. И все-таки я хотел продолжить тему — если за окном прекрасное море, если за дверью новая и неизведанная страна, что ты говоришь себе, чтобы сесть за ноутбук и начать писать код? Наверное, недостаточно сказать себе что-то вроде «специально приперся за тысячу километров именно сюда, чтобы сейчас сесть и снова немного покодить»... Я хочу понять — в чем твой секрет такой настройки и самоконтроля?
Не стоит переезжать на новое место прямо перед двухнедельным спринтом. Если же новое место было вдоль и поперек исследовано за две недели до спринта, то не так уж и сложно заставить себя сесть за компьютер и писать код. Это ведь такое же хобби, как и путешествия, оно приносит порой ничуть не меньшее удовольствие. Эй, я уже слышу, что многие скептики бубнят себе под нос недовольно — на подобные путешествия в стиле нон-стоп у них нет ни времени, ни тем более денег. Что ты сказал бы в этом случае? Насколько подобный стиль жизни доступен рядовому программисту? Повторю, что на путешествия будет потрачено столько денег, сколько у вас есть, — это ключевая идея. Есть 200 долларов? Ну что же, это вполне может быть бюджетом на месячную поездку в Грузию, Армению и Азербайджан, включая авиаперелеты. Есть 800 долларов? Добро пожаловать на два месяца в Индию или Непал, включая авиаперелеты. Нет денег вообще? Вам повезло, страны СНГ займут вас на полгода, и первый встречный будет готов вас подвезти, накормить и вписать у себя дома. Кроме того, вот вам мое эмпирическое наблюдение: путешествовать дешевле, чем жить оседло. Например, на месячную жизнь в Сан-Франциско в нормальных условиях (включая съем квартиры) у меня уходит в среднем 4000–5000 долларов. На том же Бали за 1000 долларов можно снимать собственную виллу с бассейном плюс питаться исключительно натуральными и свежими овощами и фруктами. Конечно, Бали — это ощутимо дороже, чем Таиланд, поэтому даже за 400–500 долларов дохода можно найти места, где вы будете чувствовать себя королем. Мои друзья в Сан-Франциско часто спрашивают меня: «Как ты можешь себе позволить так много путешествовать?» Мой ответ звучит для них диковато — я не могу позволить себе не путешествовать. Попытки осесть в Сан-Франциско или в Москве постепенно делали меня банкротом. Касательно времени — давно прошли те времена, когда человеку приходилось работать в поле от рассвета до заката, чтобы только прокормить себя. В современном мире полная занятость — это всего лишь способ спасти общество от реалий «Заводного апельсина», ведь свободное время далеко не всем идет на пользу. И здесь у меня для вас парадоксальный эмпирический вывод: путешествия делают меня продуктивнее. Я больше отдыхаю и меньше, но лучше работаю. Отсюда совет — не нужно работать так много. Не берите кредитов, не покупайте модный автомобиль, не подписывайтесь на ипотеку, особенно пока вы молоды. Забудьте о покупке нового телефона каждый год. И вы поймете, что вы зарабатываете слишком много денег, значит, можно работать и меньше, освобождая в своей жизни место для открытий. Конечно, чисто лишь для порядка тут нужно чуток побухтеть о будущем: как ты себя видишь лет в пятьдесят? Квартира, машина, счет в пенсионном фонде, все дела... Или одинокий седовласый программист, кодящий очередную свою программу где-то на дымчатых вершинах Непала? Говоря иначе, многие выбирают стратегию «пока молодой, предусмотрительно работаю на свою старость», но не реализацию биржевой стратегии «хватай и беги», спуская все свои деньги в том числе на свое беспорядочное перемещение в пространстве. Современные украинские реалии таковы, что пенсионный возраст у мужчин выше, чем средняя продолжительность жизни. Понимание этого факта мешает «работать на старость», так как существует большая вероятность просто не дожить. Ну и как говорил Марк Твен: «Через двадцать лет вы будете более сожалеть о том, чего не сделали, чем о том, что вы сделали». Я предпочитаю делать то, что мне позволяют молодость и определенный уровень свободы. Это не отменяет карьерных устремлений. Как оказалось, это не так трудно совмещать. Давай вернемся к кодингу — какова сфера твоих профессиональных интересов в плане программирования, какие платформы и языки ты юзаешь? Основные используемые языки — C++ и Python. Основные платформы на текущий момент — *nix-like, iOS. Больше всего опыта — в Mobile Development и Web Services Development. В первом нравится ограниченность доступных средств, это заставляет искать качественные решения. Во втором ресурсов больше, но и требования выше, так что качество программ и алгоритмов должно быть никак не ниже.