Это статья о простом приеме мотивации молодого специалиста. Если коротко: сильный специалист признается, что не знает как решить задачу, чтобы мотивировать новичка. О паре случаев из жизни под катом.

Сам я на эту удочку попался случайно и безо всякого умысла коллеги.

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

Мои профессиональные данные на собеседовании обсуждались чисто формально. Я был знаком с ведущим программистом и главным локомотивом проекта. Назовём его «М».

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

Вот разговор с руководством затянулся. Большую часть времени меня пугали, какой сложный человек М. и как мне тяжело будет с ним работать. Я дипломатично кивал и улыбался (вспоминал истории рассказанные М., они действительно были забавны). Объяснять же очевидные для меня и (для М.) вещи людям, не разбирающимся в программистских тараканах, было не совсем этично.

Тараканы у М. были очень крупные, но для меня безопасные. Просто М. терпеть не мог два типа людей: тех кто мешал ему работать и людей некомпетентных. Притом вторых сильнее: они физически вызвали у него такую же реакцию, как у меня звук пенопласта по стеклу.

И было почему: М. был (и, я уверен, остался) реально крут. Я могу вспомнить только одного человека, с ним сравнимого. А по скорости мышления и объёму контролируемого кода М. до сих пор мой top-1. Его работоспособности можно было удивляться. Но самое главное, что меня восхищало – его отношение к поставленной задаче.

В этом он напоминал легендарного кота моего знакомого. Легендарность котом была завоевана в отношении к Еде. Он никогда не играл с Едой, не ходил вокруг Еды с загадочным видом, не относил Еду в удобное место. Он просто подбегал к Еде по кратчайшей траектории и начинал есть с ближайшего к нему краю. При этом если Еда была живой, то алгоритм не менялся. Еду ели с того места за которое поймали, не заморачиваясь, что Еда пищит и вырывается. Если всю Еду за один раз съесть не получалось, то кот просто засыпал с Едой во рту и, проснувшись, незамедлительно продолжал есть с того же места.

М. работал именно так. Он мог отвлечься недолго перед работой, но дальше… Ну, вы поняли.

Игрушка, над которой мы работали, была известна не только заоблачными ценами на донат и огромным дружным комюнити. Но и адскими лагами. Спроси посреди ночи любого игрока: с чем у него ассоциируется число 503 – ответ будет предсказуем: Service Unavailable. Я как спец по нагруженным системам, ессно, поинтересовался, нет ли какого известного узкого места. К моему удивлению оно было.

От предыдущего разработчика осталась система шаблонов, построенная с runtime-парсером на RegExp. Как она тормозила можно себе представить. Как она тормозила в FCGI, можно себе представить, понимая как работает FCGI (или другая асинхронная система).

Вот тогда я и услышал фразу: и «я не знаю, что тут можно сделать». От М..

Меня это завело. Но задача предсказуемо не решалась в лоб. Формат шаблонов заметно отличался от гототовых библиотек и просто написать конвертер на тех же регэкспах, не прокатывало. А шаблонов было под две сотни. И все их перебивать руками грустно. В итоге, решили прикрутить Template Toolkit к наиболее уязвимому месту — странице инфы об персонаже. Имевшей адский шаблон и кушавшей 25% ресурсов серверов. А в дальнейшем перепилить шаблоны по ходу пьесы.

Тут я как раз подхватил жесткую ангину, не успев толком войти в тему. Валяясь дома, я взял старый парсер и отломав от него хвост, приделал новый. Теперь он не собирал страницу, а превращал её в синтаксическое дерево. Естественно, это обеспечивало полную совместимость. Теперь при старте FCGI или первом обращении к шаблону мы получали дерево. А для необходимости рендера, скармливали дерево и данные процедуре, которая работала в 7 раз быстрее изначальной катавасии (на среднем шаблоне). Дальнейшим шагом было написание компилятора дерева в perl-код, что дало производительность ещё в 6 раз большую. Процесс обслуживающий многострадальный inf.pl затерялся во втором десятке top'а.

Если задать вопрос: мог ли М. решить эту задачу сам? Думаю да. Просто его больше интересовала боёвка игры. И «я не знаю, что можно сделать» было оправданием нежелания разбираться в скучных для него вещах. В принципе, задача чисто инженерная, а я как аналитик просто знал, как ее решить. Когда М. был бы вынужден отвлечься от обдумывания глобальной переделки магии в игре и вгружаться в скучные шаблоны. Было еще несколько инженерных задач, где я высказывал идею, а М. реализовывал их буквально за время пока я ходил покурить и обдумать более детальную реализацию.

В любом случае мне было приятно решить «нереальную» задачу, а М. оттого, что в команде появился хороший программист (и что ему не надо решать «вспомогательные задачи»).

На этом можно было закончить историю. Если бы не «В».

В. сидел рядом с М. и мешал смотреть в окно. Потому, что если М. поворачивал к окну голову, то при этом он видел В… А это несказанно портило М. настроение. Нельзя сказать, что В. был ужасающе некомпетентен. Чего у него нельзя было отнять, так это желание сделать работу хорошо.

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

Ситуацию усугубляло то, что В. был флегматик. Глаза у него почти никогда не горели. Работать он начинал только после пары перекуров и нескольких волевых попыток обреченно собраться с мыслями. Также он безропотно сносил как издевательские разносы М., так и мои попытки доходчиво объяснить ему косяки.

Но, в один прекрасный день, объясняя ему простое (для меня) возможное решение поставленной задачи, я посмотрел в начинающие мутнеть глаза и решил схулиганить. Заявив: да, вот такой есть алгоритм, но я не представляю, как его тут можно применить.

Сработало. Хотя В. привычно ушел курить и собираться с мыслями, но поступь его была твердой. Вернулся он раньше обычного и работал более целеустремленно. А главное, на насмешки М. ( следовавшие почти каждый раз когда М. случайно поворачивался к окну) В. лишь загадочно улыбался.

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

Через некоторое время мы снова работали с М. в одной компании. И как-то разговор зашёл про В… О котором, М. отозвался с реальным уважением, мол, взялся за ум и вообще молодец. Хотя то, что В. молодец я уже знал и сам. В. вытащил проект, которым занимался (околоигровая блогосфера) на весьма приличный уровень. Хотя и М. и я считали это проект мертворождённым.

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

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


  1. pewpew
    15.04.2016 02:23
    +6

    Знаем мы этот проект.
    А статья шикарная. Читал на одном дыхании.


    1. aphonin
      15.04.2016 11:43

      «как решить задачу, что бы мотивировать новичка.» «чтобы» пишется слитно!


      1. mclander
        15.04.2016 11:44

        fixed


  1. Dshuffin
    15.04.2016 06:23
    +1

    БК?


  1. Demogor
    15.04.2016 07:16
    +7



    Спасибо, интересная статья. Многое объясняет!


  1. bsisoft
    15.04.2016 07:34
    +3

    Спасибо за статью! К сожалению прием работает не всегда, иногда попадаются крепкие ребята


  1. inf2k
    15.04.2016 08:21
    +14

    Просто программист В. мешал работать вам, а сам он начал работать когда ушли те кто мешал работать ему.


    1. mclander
      15.04.2016 11:41

      Не исключено. Любая картина мира субъективна и стремиться к эгоцентризму)

      Хотя мы и занимались разными проектами.


      1. bopoh13
        15.04.2016 19:16
        +1

        Вы, кстати, кем себя ощущаете, холериком? У флегматиков и так всё всегда в равновесии.


  1. dMetrius
    15.04.2016 09:06
    +4

    Старый добрый combats.ru, наверное? )


  1. Ogi
    15.04.2016 11:06
    +2

    Если называть вещи своими именами, вы применили к В. психологическую манипуляцию и испытали от этого чувство власти над другим человеком и большое удовлетворение. Непонятно только, зачем нужно было писать об этом на Хабр. Предлагаете руководителям в сфере IT взять на вооружение подобные манипулятивные приёмы?


    1. Ohar
      15.04.2016 11:21
      +10

      Вроде бы как да, именно это и предлагает.


      1. mclander
        15.04.2016 11:42
        -1

        тссс… не палите контору)


    1. Ivan22
      15.04.2016 11:50

      Это очень хороший прием.


  1. alekseyefremov
    15.04.2016 11:39
    +11

    Вы открыли для себя применение типичной женской уловки в новой сфере! Имхо.


  1. VampKill
    15.04.2016 11:39

    Эххх, веселые были времена ж)


    1. odiszapc
      15.04.2016 14:49

      Мы манипулировали как могли


  1. fly_style
    15.04.2016 11:39

    Сто процентов БК, даже двести.


  1. Fandorin
    15.04.2016 13:22
    +2

    Может у В. просто появилась мотивация, когда вы все уволились из компании?
    Может ему предложили должность М. и он «загорелся»?


    1. mclander
      16.04.2016 17:32

      В. уволился раньше М… Насколько я знаю перешёл он удачно)


  1. softi
    15.04.2016 14:54
    -5

    Я могу комментировать? o_O


  1. BarrelRoll
    15.04.2016 14:54
    -5

    test


  1. PerlPower
    15.04.2016 17:09
    +5

    То ли клоунада, то ли гадюшник, то ли одно посреди другого.


  1. Neuronix
    15.04.2016 18:06
    -3

    Поставил под x64 win7, запустил — закрывается без слов :) Запуск под админом — на секунду появляется синее окошко и так же без слов исчезает. В трее тоже.


    1. Neuronix
      18.04.2016 09:37
      -3

      Браво, минусяторы! Мой пост несёт мысль о том, что при краше должна throw'иться хоть какая-то ошибка, и, желательно не как у MS — «Неизвестная ошибка» или там «390485367»


      1. Frimko
        18.04.2016 18:15
        +3

        сударь, вы упоролись? гляньте название темы


  1. Frimko
    15.04.2016 19:17
    +5

    Да там один гадюшник был однако. Статейный А. просто не может терпеть людей больше знающих чем он сам. И переводил качество в кол-во. Ну и автор просто симпатизирует А., отрицая мнение с другой стороны. Тему психологического анализа автора, можно описывать и дальше, исходя из его статьи. Ведь большинству надо, чтобы их погладили по головке и похвалили.
    Статья однобока и не раскрыта, вообще не понятно, что она на хабре забыла, ей лучше в гигтаймсе.


    1. mclander
      15.04.2016 22:27

      Знаете, топик не о том, где был гадюшник и клоунадство.

      Кстати, А. в истории нет. Есть я, В. и М… Там были ещё персонажи, но на эту историю они не влияли. Хотя были свидетелями некоторых моментов. Кстати, один из них отписался в комментариях.

      Опять же. Не скрываю, что данная история моя и только моя интерпретация некоторых событий, которые могли иметь место в определённом времени/пространстве. Насколько она верная — не знаю, два случая — не достаточны для статистически достоверной выборки;) Поэтому статья носит не научный, а скорее развлекательный характер.

      Кстати, что меня больше всего удивляет — где комментарий: «О! Так у меня же такой же кот!»?


  1. silencer
    16.04.2016 02:27
    +1

    многострадальный info.pl

    inf.pl же, без о


    1. mclander
      16.04.2016 17:31

      Вы нашли пасхалку:) При финальной вычитке обнаружил очепятку (статью набирал на телефоне в метро, а прогнозирование такое прогнозирование).

      Но решил не трогать, для непосвящённых — более понятно, а посвященные… был интерес, догадаются ли)

      Поправил текст)


  1. heart
    19.04.2016 14:10
    +1

    Типичная армейская отмаза!


  1. Seboreia
    19.04.2016 14:53
    +1

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