Завершающий выпуск «10 вопросов» из Берлина. На этот раз беседуем с Артемом Никитиным, который живет в Берлине, но по-прежнему регулярно летает в Москву. До переезда занимался тестированием бэкенда в Qiwi, а в августе 2015-го согласился на приглашение HERE Technologies. Первый разговор с новым работодателем состоялся во время путешествия в Гонконг — в отеле Mira. В том самом, где Сноуден давал знаменитое интервью Guardian, которое изменило всю его жизнь. Совпадение? Артем не уверен и хочет как-нибудь проверить еще раз.

Новая должность в Here называется System Engineer, что в России в зависимости от команды может называться DevOps, сисадмином или SRE. В Here Артем отвечает за CI и все вокруг этого.



1. Расскажи о фиче, которую ты реализовал и которой гордишься.


В прошлом году я начал пилить go-имплементацию одной из библиотек, которую мы заоупенсорсили недавно — Flatdata. На сегодняшний день — это, наверное, моя самая большая ачивка как инженера. Эту библиотеку используют в одном из наших ключевых сервисов, однако имплементацию я делал в свободное от работы время, просто for fun.

2. А теперь — про самый лютый факап.


Самый дурацкий случай был несколько недель назад. На CI на Jenkins нужно было настроить несколько новых джобов. В джобе было несколько шагов: сначала скачивались файлы, создавались какие-то директории, потом — git-клон через команду в пайплайне. Но на следующих этапах возникала проблема — файлов, которые создавались на этапе сетапа, не было! Я стал копать, выяснять, нужные ли установлены права и все в таком духе. Потратил на это один или два дня. А оказалось что дженкинсовский плагин для гита во время создания клона по умолчанию удаляет все содержимое директории, куда ты делаешь клон. Соответственно, весь тот сетап, который я делал на первом этапе, был удален. А решение проблемы заключалось в том, чтобы просто поменять шаги местами.

3. Опиши свое рабочее пространство: от кресла и монитора до сред программирования и любимых утилит.


Сейчас в Here внедряется концепция Smart Office. За человеком нет закрепленного стола — приходи и бери любой. Есть несколько нюансов в таком подходе. Некоторые люди по инерции занимают одно и то же место. А есть ребята, которым по состоянию здоровья, например, не подходит любой стол и стул. Но в целом система вроде работает.



Лично я в плане рабочего места очень аскетичен. Из железа у меня только ноутбук, и мне не нравится использовать дополнительный монитор. Меня он скорее отвлекает, чем помогает. Поэтому у меня просто MacBook Pro 15” — в топовой конфигурации 2015 года, когда его покупали. А остальное — стол, стул…

Наша команда создает решения для мобильных устройств, поэтому у нас Xcode для iOS и Android Studio для Android. GoLand — для гошечки. В общем, стандартные утилиты.

4. По какому принципу ты выбираешь работу? Стек, продукт, бытовые условия, деньги?


Для меня главный критерий — вызов, сложные технологические задачи. Причем они могут быть и вполне обыденные, но каждый раз на новом месте их решение будет другим, со своими нюансами. Если взять построение полноценного CI/CD-пайплайна, то это будет по сути уникальная задача, потому что продукт другой и команда другая. У Келси Хайтауэра есть на эту тему замечательная фраза: «CI — это описание корпоративной культуры bash-скриптами».

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

5. Что в технологиях и языках, которые ты используешь, ты бы хотел исправить?


В Go есть всем известная проблема с управлением зависимостями. Она только начинает сейчас решаться. У «Гугла» такой проблемы нет, поэтому они ее никогда и не решали. И только когда комьюнити прожужжало им все уши, они стали думать. Вроде потихоньку движется, и есть надежда, что со временем Go станет более зрелым и приблизится в этом плане к Java, например.

В принципе IDE, которые делают в JetBrains — одни из лучших. Но, бывает, в чьих-то других продуктах встречаешь фишечки, которые прям нравятся. Поэтому в идеале хотелось бы иметь какую-то такую идеальную убер-IDE. Но это из разряда фантастики.

6. Где лучше перенимать чужой опыт — в вузе, на конфах, на хабре? Еще где-то?


Смотря для каких целей тебе нужен опыт. Учить по книгам особенности последней React.js не стоит. Там все устаревает с такой скоростью, что книги не помогут. Но базовые вещи — вполне. «Компьютерные сети» Танненбаума, что-то об устройстве операционных систем, книги о базовых концепциях в программировании — все это актуально и сейчас.

Высшее образование у меня техническое, но я бы не сказал, что оно мне очень помогло. Возможно, был не самый лучший ВУЗ, или я не очень хорошо учился, но в моем случае особой ценности образования я не увидел. Конечно, это не выброшенное на ветер время — в ВУЗе тебя учат, как работать с информацией и искать решения — но и особой пользы от этих пяти лет я не ощущаю. Возможно, это особенность образования в России — во время обучения непонятно, как ты полученные знания можешь применить в реальном мире. Я только позже узнал, что нам преподавали на самом деле крутые вещи, которые используются в теории игр. Но то, как нам это рассказывали, напрочь отбивало все желание.

Мне нравятся курсы на Coursera, они классные и намного полезнее в каких-то аспектах, чем классическое высшее образование, которое я получил.

Конференции — это круто. Я даже выступил на трех в этом году: Selenium Camp в Киеве, Heisenbug в Питере и DevDays в Вильнюсе. Они все были в первой половине года, и я так сильно устал, что взял небольшой перерыв. Но зато я получил опыт в выступлениях, пообщался с людьми — как со спикерами, так и со слушателями. Общение в кулуарах — это, наверное, самая ценная часть любой конференции.

7. Будь у тебя неограниченные ресурсы (время, деньги, мощности, люди), каким проектом ты бы занялся?


Да, я бы все равно остался в IT и продолжил бы этим заниматься, потому что мне это интересно. У меня нет каких-то глобальных проектов, типа «осчастливить все человечество».

Если посмотреть за пределы IT, то самое реальное — прикупить себе квартирку или дом в Гонконге и проводить там больше времени, чем 1–2 раза в год, как сейчас получается.

В последнее время витает идея привезти в Берлин рестораны Din Tai Fung и Tim Ho Wan. Ключевой момент — передать вкус максимально близко к оригиналу. В Берлине все димсамы в лучшем случае так себе, в Москве, к слову, тоже. «Китайские новости», которая по сути копия Din Tai Fung, в плане дим самов очень средне. Огурцы у них огонь — практически как в гонконгском Din Tai Fung, только не такие острые. А все остальное средне. На самом деле, в плане людей я даже знаю, кто бы мог мне помочь в этом. У меня есть знакомая, ее зовут Фиби, она родом из Тайваня — родины Din Tai Fung — и при этом повар, училась у знаменитых французских поваров.

8. Как ты отдыхаешь? Что делаешь кроме работы?


Любой уважающий себя айтишник занимается технологиями и в свободное время тоже — кто-то больше, кто-то меньше, но мне, кажется, все. Но если выйти за пределы IT, то я хожу на тренировки по крав-мага и кикбоксингу — никаких поясов, just for fun. Единоборства для меня выгодно отличаются от просто тренировок в зале, которые меня не привлекают совсем.

В остальном — стандартно: люблю посмотреть сериалы, почитать книжку, поиграть в PlayStation. Хотя все это занимает у меня сейчас меньше времени, чем раньше. Тем не менее, не жалею о потраченном времени. Из последнего могу посоветовать израильский сериал о том, как спецслужбы борются с террористами — «Фауда» — выходит на Netflix.

9. Расскажи про 3 любимые книги — учебную, научно-популярную и художественную

.
Из учебной литературы имеет смысл почитать базовые книжки. Того же Танненбаума — об устройстве операционных систем и сетей. Хотя с Танненбаумом нужна сила воли. Я обычно засыпаю, когда его читаю.

А если ты читаешь какие-то книги по программированию, то имеет смысл прочитать главу, переключиться в IDE и там попробовать имплементировать то, о чем говорили в главе.

За пределами IT я давно уже не читал книг, честно говоря. Из того, что давали в школе, в том возрасте ты воспринимал только поверхностные вещи, а то, что реально было заложено автором, проходило мимо тебя, потому что еще нет жизненного опыта, чтобы такое понять.

Из детства запомнились «Граф Монте-Кристо», «Крестный отец» (причем книга сильно лучше, чем фильм). А сейчас в Kindle у меня есть классная книга «Проект «Феникс» — книга о DevOps, которая описывает существующие в IT проблемы. Я настолько увлекся, что прочитал ее за ночь.

Еще отметил бы писательницу Айн Рэнд — нашу бывшую соотечественницу, которая переехала в США. Мне ее книги кажутся очень неоднозначными, но ознакомиться с ними стоит. Я бы порекомендовал «Гимн» — это, кажется, одна из первых ее книг и очень короткая, в отличие от последующих. «Атлант расправил плечи», она же размером с «Войну и мир»! Прочитать такое — это почти подвиг.

10. Если прямо у тебя на глазах в ИИ проснется сознание, что ты ему скажешь?


Все, что сейчас называется «искусственным интеллектом» — это софт, заточенный под решение конкретных задач. Настоящий интеллект — дело не ближайшего времени. Но если бы с ИИ действительно можно было поговорить, думаю, я бы пошутил. Эмоции — это та область, где ИИ будет еще долгое время отставать очень сильно. Ведь эмоции — это не рациональная вещь. Полагаю, реализовать это будет чрезвычайно сложно.

Вопрос от предыдущего гостя:

Предложи стратегию прокачки после первых пяти лет работы программистом. Что дальше?
У меня уже больше пяти лет опыта и мне кажется, что нет ограничений из серии «2, 5 или 10 лет». Если ты хочешь быть инженером и оставаться актуальным, то обучение должно быть постоянным. Нужно пробовать новые языки, инструменты, фреймворки, подходы. Иначе ты останешься за бортом. Но это не обязательно плохо — тот же COBOL до сих пор актуален, и люди, которые разбираются в нем, зарабатывают много денег.

Бонус: задай вопрос другому разрабу


Почему ты решил пойти в ИТ?

Комментарии (26)


  1. Vlad_IT
    26.09.2018 21:33
    +2

    Учить по книгам особенности последней React.js не стоит. Там все устаревает с такой скоростью, что книги не помогут.

    Последний не стоит, а основы или советы — стоит. Недавно прочитал Сила JavaScript за 2013 год, в ней ничего не пишут о ES6, но зато куча узкой информации о прототипах (которая применима и к классам), о замыкании, и о всяких других штуках, которые актуальны и сейчас. И это книга за 2013 год, а если взять "Секреты JavaScript ниндзя" второго издания, то там очень актуальная информация даже по ES6, и все это пришлось бы собирать по крупинкам с разных блогов и выступлений.
    По реакту тоже если пример, книга React.js Быстрый старт за 2017 год. Из сильно устаревшего там только propTypes, но не вижу смысла в прочтении книги без ознакомления с официальным гайдом.
    Очень часто замечаю, что у людей, которые твердо говорят "в книги не успевают завозить новое, я их не читаю" имеются сильные пробелы в знаниях, и они наступают на те грабли, которые описываются в книгах. Прочитав бегло некоторые книги, можно было бы сэкономить куча времени.
    Книга — это концентрированный источник опыта, практик и знаний, и игнорировать его не стоит, но и полагаться на 100% нельзя (нужно читать с умом).


    1. andrey_aksamentov
      27.09.2018 10:01

      Скорее всего автор имел ввиду — осваивать react.js по книгам не так круто, нежели по новейшим статьям и примерам в сети.
      Сам по себе язык по сути константа, меняется и дополняется ну не очень часто, в отличии от конкретных инструментов.

      ИМХО сама концепция «учить всё вдруг пригодится» ныне не актуальна, более удачно выглядит — «находить методы решения по мере поступления задач».
      Мы находимся на пороге технологической сингулярности, когда поступающая информация актуальна лишь в момент ее появления.


    1. serf
      27.09.2018 11:41

      Книга — это концентрированный источник опыта, практик и знаний, и игнорировать его не стоит, но и полагаться на 100% нельзя (нужно читать с умом).

      А еще источник заработка и привлечения авторов к себе внимания. Большое количество современной технической литературы хорошо если на 1/3 содержат что-то кроме воды. Но как введение наверно можно и почитать.


  1. farcaller
    26.09.2018 23:26
    +2

    Любой уважающий себя айтишник занимается технологиями и в свободное время тоже — кто-то больше, кто-то меньше, но мне, кажется, все

    Звучит как проблема с work-life-balance, на самом деле. Технологиями в свободное время надо заниматься как хобби — если интересно то да, если не очень то нужно заняться чем-то еще. Разнообразие идей никогда не бывает лишним, я, например, привнес несколько забавных идей для работы (SRE) из аудиоинжиниринга которым я занимаюсь исключительно в целях расслабления.


  1. Makc_K
    27.09.2018 08:55

    А что делать, если этого свободного времени просто нет?


    1. Neikist
      27.09.2018 09:22

      Ну, обычно люди по выходным и больше 10 часов в будни на работе не проводят. Плюс отпуска и праздники.


      1. Makc_K
        27.09.2018 09:26

        Нет, не про работу я говорю. Лично я прихожу домой, на меня «вешается» ребёнок и не «слезает», пока не уснёт. А спать ложится в 11 вечера, когда уже я сам ни на что сложнее, чем посмотреть кинцо, не способен. Жена, даже обижается и периодически жалуется, что ребёнок меня больше мамы любит. А к этому плюсуются ещё всякие бытовые дела, да и просто отдохнуть хочется.


        1. Neikist
          27.09.2018 09:38

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


          1. Makc_K
            27.09.2018 09:39

            Она поедает ВСЁ свободное время.


            1. Arastas
              27.09.2018 11:32

              При правильном выборе, она наполняет смыслом это самое свободное время.


              1. Makc_K
                27.09.2018 11:34

                Знак качества заполняемости свободного времени семьёй в контексте данного обсуждения даже не важен. Факт того, что это свободное время не тратится на самообразование/pet проект/шабашки и т.д. не отменяется.


            1. 0xd34df00d
              27.09.2018 21:23

              Значит, у меня точно не появится.


            1. viiy
              27.09.2018 22:19

              То чувство, когда собираешь мини тайм-слоты в течении дня
              Я так учу английский…


          1. Druu
            27.09.2018 09:53

            Ну, в моем случае 11 как раз самый разгар учебы

            Если человек после 8-часового рабочего дня способен удерживать достаточную для обучения концентрацию — значит, он просто работал не на все 100%.
            Кому нужен работник, который вместо работы на рабочем месте отдыхает, чтобы потом учиться — открытый вопрос.


            1. Makc_K
              27.09.2018 10:24
              +1

              До 23-25 лет человеческий мозг вполне на такое способен.


              1. Druu
                27.09.2018 11:13

                Да никогда не способен. Еще раз — если эти 8 часов человек именно работал, а не отдыхал половину времени.


                1. Neikist
                  27.09.2018 11:33

                  Ну, давайте будем честными, если говорить прям про выкладывание на 100%, то человек если и способен в таком режиме по 8-8+ часов подряд (с перерывом на обед) работать, то очень недолго (я так работал первый год своей карьеры ибо был полным нулем и нужно было выкарабкиваться, в итоге заработал нервный тик и постоянные головные боли). В реальности все находят время сделать перерывы и тот же хабр почитать, я вот в перерывах между помидорками еще иногда слова японского подучиваю, или статьи по интересным технологиям урывками почитываю.


                1. 0xd34df00d
                  27.09.2018 21:27

                  В 18 я был способен спать 3-4 часа в день, ходить на пары (и даже там что-то понимать), успешно решать домашние задания, ковырять плюсы, пилить опенсорс и зарабатывать деньги. На социализацию времени не оставалось уже, правда, увы.

                  Сейчас, через 9 лет, спать 3-4 часа в сутки я уже не способен, увы, но вот вполне продуктивно поработать на работе, а потом придти домой и ковырять что-то ещё, от матана до опенсорса, вполне.

                  Причём, что самое характерное, чем более творчески сложный день выдался на работе, тем продуктивнее я дома. После дня ковыряния в кишках компилятора или обмазывания хаскелем продолжать ковыряться и обмазываться получается куда лучше, чем после дня тупой рутинной работы.


                  1. Druu
                    28.09.2018 03:01

                    В 18 я был способен спать 3-4 часа в день, ходить на пары (и даже там что-то понимать), успешно решать домашние задания, ковырять плюсы, пилить опенсорс и зарабатывать деньги. На социализацию времени не оставалось уже, правда, увы.

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


                    1. 0xd34df00d
                      28.09.2018 07:51

                      Ну это не очень конструктивно — всегда можно сказать, что это просто непродуктивно.


            1. Neikist
              27.09.2018 10:27
              +1

              Если бы меня на текущем месте выжимали так что я бы не мог после работы ничего изучать — я бы либо уволился (ибо не хочу навечно в 1с остаться, а если заниматься только им то так и выйдет), либо ЗП должна быть не 50к, что конечно не совсем мелко для провинции, но и не так уж много. К тому же какая разница как вымотался на работе если от этого тащишься? Бывают конечно авралы когда прихожу и даже поужинать забываю, просто вырубаюсь, но в нормальной деятельности человек не должен себя выжимать и должно оставаться время на хобби.


              1. Arastas
                27.09.2018 11:35

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


            1. Cryvage
              27.09.2018 15:32

              Бывает нормальный режим работы, а бывают кранчи. Вот во время кранча действительно бывает выкладываешься на 100%. Если же человек в «нормальном» режиме выкладывается на 100%, значит этот «нормальный» режим, по факту является перманентным кранчем. Во-первых, никто долго не протянет в таком режиме, во-вторых, по факту, отсутствует какой-либо резерв человекочасов на случай непредвиденных обстоятельств. В общем, очень опасная это ситуация, как для конкретного разработчика, так и для всей фирмы в целом.
              И это не говоря о том, что саморазвитие является необходимостью для людей нашей профессии. Это не прихоть, а именно необходимость. Иначе через 5 лет можно стать никому не нужным. А фирма, на которую ты горбатился, не жалея себя, просто наймёт другого специалиста, который разбирается в новых технологиях. Получается, «работать на все 100%», по факту означает пожертвовать собой. Никто не вправе требовать такого от человека.


  1. mkshma
    27.09.2018 16:28

    В свободное время нужно заниматься чем-то как можно более далеким от работы. Хотя если хобби нет и делать совсем нечего, то можно и так, да. Только нафиг так жить?


  1. Xandrmoro
    27.09.2018 22:52

    Любой уважающий себя айтишник занимается технологиями и в свободное время тоже

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


  1. DenVdmj
    28.09.2018 07:49
    -1

    Идеальная расширяемая убер-IDE, такая, где язык описывается в формальных грамматиках, которые используются и для подсветки синтаксиса и для хинтов и для автодополнения: то есть даже разбор вложенных скобок, не должен быть захардкожен. Очень близки к этому все IDEs от JetBrains, только там это очень глубоко все лежит, и по всей видимости, многое захардкожено.

    Насчет подсветки, мне нравятся когда она опирается на упрощенную (или полную) грамматику языка, описанный декларативно, как, например, в Colorer и Sublime Text (xml), или highlight.js (хотя это и не редактор, просто подсветка).

    Причем подсветка, как в Notepad++ относится к другой категории: там невозможно определить синтаксические конструкции языка, их разбор не опирается на правила заданные в xml, а тупо захордкожен (и скорее всего там только вложенные скобки, я давно его не использовал, могу ошибаться).

    И считаю просто отвратительным подход, когда в правилах подсветки находится процедурный код, или в них невозможно определить грамматику языка, но так устроены почти все остальные редакторы, а также все редакторы на js под веб.

    Ну кончено, скорость работы. Хороший вариант, это Sublime Text, где критичные к скорости вещи написаны на C++, а все остальное на Python. Я бы возможно предпочел javascript, но язык лучше брать самый распространенный.