DotNext — крупнейшая в России конференция, посвященная разработке на платформе .NET. В профессиональном сообществе она заработала репутацию хардкорной. Здесь выступают спецы высочайшего класса, а подготовка спикеров к конференции растягивается на несколько месяцев. Об этом в интервью для ZubrIT рассказал старший разработчик B2B.OCS Артем Акуляков. В начале декабря он выступил на DotNext с докладом, посвященном разработке на F#.
«Артем Акуляков — любит DotNet, ведет Красноярск в светлое .NET будущее», — именно так пишут об Артеме в социальных сетях. Несколько лет назад он работал в компании из Кремниевой долины. Сегодня Артем — сотрудник департамента OCS.Lab, организатор всероссийского сообщества DotNetRu и ведущий подкаста DotNet & More.
О том, как стать участником одной из топовых .NET-конференций в мире, пережить правки к докладу в 60+ пунктов и продолжать кайфовать от этого дела — в интервью Артема для ZubrIT.
Путь в разработку, Кремниевая долина и meet up с котиком
— Расскажи немного о себе. Кто ты, откуда, чем занимаешься в OCS?
— Я из Красноярска, мне 30 лет. Я «серийный» организатор сообществ: вот есть серийные предприниматели, а я — то же самое, но про сообщества. Я более шести лет организую сообщество разработчиков в Красноярске, D2D. Последние несколько лет участвую в организации всероссийского сообщества dotnet-разработчиков — DotNetRu. Также я со-ведущий подкаста DotNet & More. В ОCS я работаю в команде B2B как старший разработчик и на некоторых проектах выполняю роль архитектора.
— Старший разработчик, организатор сообществ, спикер DotNext — слушай, звучит это все очень серьезно. А с чего ты начинал?
— Я программирую более 10 лет. Начал банально, как и многие, — хотел разрабатывать компьютерные игры. Пошел в институт — оказалось, что играми там и не пахнет, но программировать понравилось. До OCS я три года работал в США, в компании из Кремниевой долины, разрабатывал искусственный интеллект для финансовой индустрии. Был свой бизнес по консалтингу в области IT-архитектуры. Если говорить про сообщества и конференции, то хотелось развиваться, поэтому начал посещать конференции, потом —выступать, потом — организовывать.
— Чем тебе нравится разработка?
— Нравится разработка, потому что это — своего рода творчество для тех, кто не умеет рисовать или петь. Творчество для математиков, наверное. Ну и нравится решать задачки — конечно, некий челлендж.
— А вне работы Артем Акуляков — кто это? Чем занимаешься, увлекаешься, что любишь?
— Я люблю свою работу, поэтому трачу кучу времени (во внерабочее время) на организацию профсообществ. Умное кино люблю, тяжелую музыку — Amon Amarth, Metallica, «Порнофильмы». Люблю научную фантастику, особенно, старую советскую – «Непобедимый» С. Лема, «Основание» А. Азимова, «Пикник на обочине» братьев Стругацких.
Животных люблю. У меня живет шотландский вислоух по имени Локи, который любит участвовать во всех митингах вместе со мной. Я в процессе переезда в Питер. В юности занимался вольной борьбой профессионально, но потом стал программистом и теперь только хожу в зал и периодически бегаю.
DotNext, F#, хардкор
— Расскажи немного о самой конференции? Что это и с чем ее едят?
— DotNext — наверное, одна из первых и ныне живых специализированных .NET-конференций в России, проводится больше пяти лет точно. На текущий момент она считается самой топовой и престижной. Считается хардкорной, потому что там — довольно высокий уровень докладов, и спикеры концентрируются на сложных вещах, на том, что непросто раскопать. Конференция шла четыре дня в онлайне. 90% аудитории — .NET-разработчики всех мастей и уровней.
— Ты выступал там впервые?
— Да, это было мое первое выступление на DotNext. Я подавал заявку года два назад, но тогда мой доклад не прошел. Были, наверное, темы и доклады поинтереснее.
— О чем был твой доклад?
— Есть концепция — «проектирование на основе предметной области». Сокращенно — DDD. Если очень кратко, то это когда ты говоришь с бизнес-заказчиком на его языке бизнес-терминов, и код пишешь в этих же терминах. Заказчика мало интересуют абстракции в коде — ему интересно, как устроены бизнес-процессы, та область, в которой работает бизнес. DDD — это довольно популярная концепция, но материалов о том, как реализовать ее в функциональном стиле, довольно мало.
Я рассказывал, как на F# реализуется DDD. Что получается в такой комбинации хорошо и какие уроки С# разработчик может из этого всего извлечь. F# — это функциональный язык на платформе .NET. В индустрии существует миф, что для работы с ним ты должен быть чуваком с PhD по математике. По факту же F# разрабатывался как прагматический язык: ты идешь и решаешь бизнес-задачи. Он прекрасно подходит для написания больших и скучных бизнес-приложений, особенно при совместном использовании с DDD. Но из-за того, что есть ореол сложности, этот язык меньше используют и боятся работать на нем.
— Возвращаясь к фразе об уроках для C#-разработчика: чем так хорош F#, и зачем его учить тем, кто пишет на C#?
— F# позволяет малыми средствами решать большие и сложные задачи, он, на самом деле, очень простой и легко читаемый. Это, если кратко, о достоинствах.
Если говорить о том, зачем его учить C# разработчику: во-первых, затем, что это просто отличный язык. Во-вторых, фокус в том, что чем больше языков ты знаешь, тем лучше пишешь на своем основном. Во многом изучение F# — это способ улучшить свои навыки в своем языке. Начинаешь смотреть на проблемы под другим углом. Бывают задачи, которые на C# плохо решаются. У меня был опыт, когда ты берешь такую задачу и пишешь ее на F#. F# и C# — на одной платформе и хорошо взаимодействуют между собой, поэтому ты можешь совмещать их в рамках одного проекта.
Многие спрашивают, какой язык в таком случае учить, что выбрать: C# или F#. У меня встречный вопрос: почему или то, или другое? Может лучше и то, и другое? Так у нас будет больше инструментов и подход — гибче. Опять же C# и F# работают на одной платформе. Мы можем их смешивать и взбалтывать на одном проекте. Это же очень круто!
— Сколько времени заняла подготовка к докладу?
— Месяц или даже больше. Концепция организатора (JUG.RU) в том, что ты можешь подаваться просто с идеей (у меня, в общем-то, так и было), тебе назначают куратора и экспертов. Через пару недель тебе назначают пробное прослушивание. Фактически это — презентация со слайдами, накиданными на коленке: там, где должна быть схема, у тебя красуется надпись «Здесь должна быть схема». И ты, запинаясь, все это рассказываешь. После остальные члены программного комитета смотрят твой прогон и обратную связь от куратора. Только потом приходит решение: берут тебя на конференцию или нет. И уже тогда тебе говорят дату, к которой ты должен подготовить доклад и провести несколько прослушиваний с программным комитетом.
— А к концу подготовки не было ощущения, что со всем этим пора завязывать?
— Со мной это происходит постоянно. Мне нравится тема доклада пока я ее куда-то подал. Потом ты ее постоянно переделываешь, и это тебе ужасно надоедает. А тут еще фидбэк пришел в 62 пункта, и ты думаешь: «Блин, зачем я это делаю? Тема вообще какая-то не очень интересная…».
— И как в итоге все прошло? Каким был отклик?
— Я честно думал, что для меня это будет обыденным выступлением, а оказалось все немного не так. И процесс подготовки — это что-то новое. Я сильно нервничал.
Если говорить про отклик — в России аудитория довольно зажатая. Я занимаюсь организацией подобных вещей больше шести лет, и все всегда очень боятся задавать вопросы. Человек думает: «Вдруг я спрошу, а это глупо, и докладчик скажет: «Вася, ты дурак», — и все будут надо мной смеяться». Поэтому вопросов на хардкорных конференциях немного. Но, на удивление, после доклада мы минут 20 со слушателями общались, были классные вопросы, интересные. Так что, в целом, я очень доволен. DotNext хорош своим программным комитетом — это самые титулованные эксперты в индустрии, и когда тебе дают фидбэк — это очень ценно. Они помогли мне подготовить максимально хороший доклад, который только можно было сделать по этой теме.
— Смотри, ты выступил на самой топовой конференции .NET в России — и что дальше?
— Не знаю. Может, сесть на трон и заснуть? На самом деле нет. Стоит понимать, зачем вообще докладчики, организаторы meet up-ов и сообществ этим занимаются. Это неоплачиваемая, трудная и неблагодарная работа, после которой тебе могут сказать, что доклад — *** (очень плох. — Прим. ред.), и кофе на meet up-е был кислый, и вообще все плохо. Но люди продолжают все это организовывать потому, что они в голову ударенные и хотят что-то изменить в индустрии. Люди выступают, чтобы донести свои мысли.
Мне хочется, чтобы больше было работодателей, которые используют .NET, чтобы рынок рос, чтобы было больше разработчиков — и они делились знаниями, и запускали проекты. Мне хочется, чтобы F# как офигенный язык получил свою аудиторию. Чтобы люди перестали думать, что это про кучу математики и еще какой-то ерунды, — начали им пользоваться, решать свои задачи и получать удовольствие. У меня есть и свой корыстный интерес: чем больше людей на этой платформе и в этой индустрии, тем лучше. У меня будет больше крутых коллег и больше информации — это же супер-круто. Так что выступление конференции не самоцель, а способ более глобальную цель достичь.