«Любой уважающий себя айтишник занимается технологиями и в свободное время» — 10 вопросов программисту, выпуск 6



    Завершающий выпуск «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 до сих пор актуален, и люди, которые разбираются в нем, зарабатывают много денег.

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


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

    Поделиться публикацией
    Комментарии 28
      +4
      Учить по книгам особенности последней React.js не стоит. Там все устаревает с такой скоростью, что книги не помогут.

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

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

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

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

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

            +1
            А что делать, если этого свободного времени просто нет?
              –1
              Ну, обычно люди по выходным и больше 10 часов в будни на работе не проводят. Плюс отпуска и праздники.
                +4
                Нет, не про работу я говорю. Лично я прихожу домой, на меня «вешается» ребёнок и не «слезает», пока не уснёт. А спать ложится в 11 вечера, когда уже я сам ни на что сложнее, чем посмотреть кинцо, не способен. Жена, даже обижается и периодически жалуется, что ребёнок меня больше мамы любит. А к этому плюсуются ещё всякие бытовые дела, да и просто отдохнуть хочется.
                  0
                  Ну, в моем случае 11 как раз самый разгар учебы. Да и семья если у меня и появится — то надеюсь не скоро, не в первый раз уже слышу сколько свободного времени поедает.
                    +5
                    Она поедает ВСЁ свободное время.
                      +5

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

                        +1
                        Знак качества заполняемости свободного времени семьёй в контексте данного обсуждения даже не важен. Факт того, что это свободное время не тратится на самообразование/pet проект/шабашки и т.д. не отменяется.
                        –1
                        Значит, у меня точно не появится.
                          0
                          То чувство, когда собираешь мини тайм-слоты в течении дня
                          Я так учу английский…
                            0
                            Вопрос в том, что можно эффективно освоить за эти «таймслоты». Есть подозрение, что не особо — или ты выкладываешь на занятия время, сравнимое с обычным 8часовым рабочим днем, или просто с ковыряешь в носу, убеждая себя, что да, «занимаешься образованием».
                          0
                          Ну, в моем случае 11 как раз самый разгар учебы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое