image

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

Мои впечатления? Я в печали... Почти все материалы, на мой взгляд, напоминают «вредные советы».

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

Итак…

Первая встреча, собеседование без тех специалиста


HR-ы, не обманывайте себя. Вы никогда не поймёте на сколько хорош программист…

Разве что только когда сможете воткнуть электроды ему в ухо и запустить end-to-end теститрование. Но пока таких технологий нет, всё что Вы можете оценить — это адекватность и, хотя бы отчасти, мотивацию человека сидящего перед Вами.

И поверьте, этого достаточно.

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

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

Что ещё можно спросить на первом этапе? Зависит от специфики вакансии.

Если Вам нужен опытный человек — спрашивайте об опыте, узнавайте какие задачи он решал, какие трудности преодолевал.

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

Собранной на первом этапе информации хватит чтобы отсеять 80% — 90% кандидатов.

Часть вторая. Собеседование с тех специалистом


НЕ НАДО СПРАШИВАТЬ ТЕОРИЮ вне контекста практического опыта конкретного разработчика!

Лично знаю несколько человек, которые учились со мной на программистов. У них от зубов отскакивали все теоретические выкладки, но когда дело доходило до реального программирования — ничего путного они сделать не могли.

Что же, по моему, нужно спрашивать у кандидата?


Спрашивайте технические нюансы из их предыдущего опыта, особенно те, которые пересекаются с будущей работой.

По тому, как человек рассказывает, будет понятно:

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

И, как мне кажется, этого достаточно, чтобы сделать финальный выбор.

Больше о человеке Вы сможете узнать только на испытательном сроке.

Надеюсь данный материал будет хоть кому-то полезен, спасибо за внимание.

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


  1. maaGames
    27.09.2018 08:07
    +2

    Меня как-то спрашивали формальное определение для smart-pointer. Не для чего и как устроен и какие виды его бывают и могу ли я его запрограммировать или взять из boost, напрмиер, а именно теоретическое определение. Я и сейчас не отвечу…
    Ещё спрашивали, какая сейчас самая мощная видеокарта. Я тогда хотел админом временно устроиться в сеть кофеен — ОЧЕНЬ ВАЖНО знать название самой мощной видеокарты, ценой в половину месячног ооборота этих кофеен. Снихсодительно рпиняли, но я отказался у них работать. После подобных вопросов лучше разворачиваться и скорее бежать подальше.


    1. Kocmohabt314
      27.09.2018 18:05

      Вот как раз на счет видеокарты я уверен, что модель профессиональной видеокарты была бы засчитана как неправильный ответ. Не говоря уже о том что мощность видеокарты вопрос весьма дискуссионный и зависит от конкретной задачи (если конечно имеется в виду вычислительная мощность, а не электрическая).


      1. maaGames
        27.09.2018 18:27

        Увы, нет. Я стал уточнять, для чего будет использоваться комп, но меня сразу перебили и озвучили «правильный ответ» в виде самой дорогой на тот момент карточки. Ладно, не профессиональной, а что-то типа GeForseGTXUltraProGaming3 (больше десяти лет уже прошло, не помню название). Про-геймерской. При то, что компы были только для бухучёта и пасьяннса. Корчое, мне сразу «дали понять», что я не разбираюсь в железе и грош мне цена.)


      1. aleksandros
        27.09.2018 19:07

        Да нет, цена прямо пропорциональна вычислительной мощности. И играть на какой-нибудь Квадре P6000 можно будет с тем же комфортом как и на Титане Xp


    1. algotrader2013
      27.09.2018 22:36

      А вопрос то неплох) Тру админы, которых я видел (особенно лет 5 назад), реально мечтали о топовом железе, чувствовали превосходство перед топ-менеджерами, так, как имели возможность себе по-тихому намутить хорошое железо для рабочего компа, и рубились в игры по локальной сети в периоды, когда у всех все работало, и их помощь не требовалась. Почти уверен, что вопрос был не в том, может ли человек сходу придумать конфиг компа под задачи, а в том, насколько он гик.


      1. maaGames
        28.09.2018 05:03

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


  1. XanderBass
    27.09.2018 08:47
    +1

    Глас вопиющего в пустыне… ТС, Вы хоть понимаете, что те эйчары, которыми Вы возмущаетесь, не читают Хабр вообще. У них с утра лента ВК, где ничего, кроме их френдов, «Юмора Шрёдингера» и пары разной степени ванильности пабликов. А нормальным эйчарам Ваши советы в принципе не нужны. Они и так всё знают.


    1. kolkoni Автор
      27.09.2018 08:58

      Есть достаточно компаний, сотрудники которых сидят на хабре, но при этом принимают по старинке… Точно знаю, потому что собеседовался у таких.

      Плюс пост можно расшарить пост в ВК или скинуть ссылку знакомым, чтобы поднять общую планку наших HR-ов ;-)

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


    1. bask
      27.09.2018 09:35

      Уловка-22 :)


  1. vesper-bot
    27.09.2018 09:01
    +1

    Вообще бОльшая часть этого текста применима для собеседования любого специалиста, не только программиста. Критерий применимости — HR не понимает ни шиша в предметной области вакансии.


    1. roscomtheend
      27.09.2018 10:40

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


      1. Am0ralist
        27.09.2018 12:42

        задают дурацкие вопросы с неправильным «правильным» ответом, поскольку этот вариант написал предыдущий нанятый таким образом.
        Когда моего знакомого админа не взял начальник отдела после собеседования, потому что сотрудник умнее его ему был не нужен (конкурент же)…


        1. 9660
          28.09.2018 09:05

          Когда моего знакомого админа не взял начальник отдела после собеседования, потому что сотрудник умнее его ему был не нужен (конкурент же)…

          А кто из участников собеседования эту версию озвучил?


          1. Am0ralist
            28.09.2018 10:06

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

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


            1. 9660
              28.09.2018 17:17

              Сказать честно, очень необычно, когда чувак так открыто и прямо говорит.
              Такое и себе не всегда легко скажешь. Нужно быть сильно непростым человеком чтобы с кем то так поделиться.


      1. Konachan700
        27.09.2018 19:39

        Вот и получается что сисадмину звонят с предложением должности вышибалы в клубе (тоже как администратор значится)

        Было такое. Настойчиво приглашали на тимлида по JavaScript, хотя резюме было на джуна по Java. Звонила девочка раза три, и в третий раз так обижено «ну это же тоже жава, чего Вы не хотите к нам». Положил трубку и ржал в голосину просто.


  1. avraam_linkoln
    27.09.2018 09:03

    Да, сейчас чего только не придумают HR-ры. Раз дали тест по Laravel, в котором надо было отвечать на вопросы типа «как называется метод такого то класса который делает то то», или «как называется правило валидации такое то». В другой раз задали пару вопросов по типу «на сколько баллов от 1 до 10 я оцениваю свои занания Laravel и Symfony» и назвали это конкурсом, который я, конечно же, не прошел. Раз HR страшивала что такое ORM, Doctrine и Eloquent и что лучше, Active record или Data mapper. Видимо ей ответы не понравились, так как она потом даже не отписала ничего.
    Технические специалисты тоже тупые вопросы задают, как раз как автор писал, ньюансы, которые не используются никогда или несущественны. Например, «что будет, если в PHP обьявить функцию внутри другой функции». Не могу даже представить, где такое можно использовать.
    А вообще тема непрофессионализма HR-ов в последнее время становится все актуальное, в последний месяц вижу много постов и тут, и на доу, и в линкедине, но их это ничему не учит.


    1. andof
      27.09.2018 14:12

      Например, «что будет, если в PHP обьявить функцию внутри другой функции». Не могу даже представить, где такое можно использовать.

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


  1. FadeToBlack
    27.09.2018 09:08

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


    1. kolkoni Автор
      27.09.2018 09:13

      Проблема в том, что не всегда можно показывать код с предыдущих проектов. Конфиденциальность, все дела.

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

      Но как вариант можно попросить перед собеседованием накидать пару модульков, которые что то делают и обсудить этот код. Главное не переборщить, типа — напишите нам CRM систему с блокчейном и ML, а мы подумаем собеседовать Вас или нет.


      1. FadeToBlack
        27.09.2018 09:23

        Проблема в том, что не всегда можно показывать код с предыдущих проектов. Конфиденциальность, все дела.

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

        Но как вариант можно попросить перед собеседованием накидать пару модульков, которые что то делают и обсудить этот код.


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


        1. kolkoni Автор
          27.09.2018 09:32

          Тут важно в первую очеред понять, его ли это код (бывали и такие случаи).

          Ели он чужой код может адекватно прокомментировать, есть ли разница его ли это код?

          Проблема не в копировании со stackoverflow, а в понимании как скопированный код работает. Если понимает и умеет применять, то пусть копирует.


          1. FadeToBlack
            27.09.2018 09:40

            При этом если он говорит, что это его код — этот человек не подходит. Зачем иметь дело с такими? Мне не доплачивают за работу с моральными уродами.


            1. Skerrigan
              28.09.2018 10:32

              У меня все хуже — я написал например балансир для распределения нагрузки по инстансам. А через пол года мне задают в лицо вопрос «ну-ка, а расскажи нам, как это у тебя тут работает», на что я залез в код, полистал и честно дал ответ «без понятия, коробка с магией, ошибок же не было, значит коробка с рабочей магией».
              Увы, я порой не могу вспомнить как работает то, что писалось еще позавчера — работать мне не мешает это, задачи выполняю.
              Объяснить не очень могу, если «логика» с «изюмом»… но обычно только такие задачи и приходится решать.

              P.S. Вот нет в webDriver какого-то функционала… и тут приходится уже и сам «драйвер» патчить/кастомить — да я такое никогда потом толком не смогу объяснить.


              1. FadeToBlack
                28.09.2018 10:59

                Лично меня бы такой ответ не устроил. Потому что настоящая работа — это не вспоминать свой трудный код сложной системы, а разбираться и подкручивать что-то в таких вот «черных ящиках», написанных не вами. А это для вас будет задачей невыполнимой. Конечно, если ваша задача — это создание чего-то нового с нуля… Хотя и это я бы вам не доверил — вам же потом это поддерживать, а вы на это не способны. Увы, отказ.


                1. Skerrigan
                  28.09.2018 11:22
                  +1

                  А меня такие ответы не устроят, вам мой отказ.

                  Поддерживать != помнить «как и что работает».
                  Если вы не понимаете таких прописных истин — о чем вести диалог то?

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


                  1. FadeToBlack
                    28.09.2018 11:33

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


                    1. Skerrigan
                      28.09.2018 12:31

                      Эм, минуточку, есть маленький нюанс. У меня есть три вида кода (ну ок, есть еще четвертый… дома что-то могу пробовать-баловаться):
                      — Тот, который «написать и забыть» т.к. это прямое его назначение (ну там фикс чего-то мало-значительного в SCSS, либо прикрутить календарь bootstrap-compatibility)… такое при всем желании даже не смогу «ни вспомнить, ни описать нюансы». Лишь знаю, что такое делать приходится.
                      — Тот, который трогается очень медленно, больно, в нем нет unit-tests ибо ковыряния — это реверс-инжиниринг… в таких местах всегда любое изменение «потом» будет требовать самого тщятельного рассмотрения со всех сторон (мы ведь не хотим решения «тяп-ляп, у себя починили, у остальных сломали»?). Такое и не показать (ибо пол проекта тащить надо — задача сугубо прикладная, в «контексте»), и не объяснить человеку со стороны. Скажем даже если будем обсуждать мои правки webDriver, вы, как человек вне «темы» ничего не поймете.
                      — Что-то, что относительно автономно, изолированно. К таким задачам я делаю отдельные микро-репозитории с кодом «только по задаче» и пишу README.MD

                      Так вот, если будет по задаче нужно разобраться в модуле/подсистеме/проекте — я сяду и разберусь. Смогу ли я объяснить? Это зависит от собеседника. Т.е. №2 — под вопросом. №1 просто отпадает автоматом (но я могу в целом поговорить абстрактно о подобном, без перехода к тому, что делал конкретно в том случае)
                      №3 обсудить всегда смогу — ман самописный прочесть я способен, быстро вникнуть и понять так же.

                      При этом, если речь идет о собеседовании, то это тоже как бы «задача» (найти работу/проект) — значит даже на №2 можно и поговорить, но нужен глубоко понимающий нюансы собеседник + мне надо конкретно знать, что стоит в голове себе же освежить (иначе не отвечу почему «тут идет переписывание функционала библиотеки»).

                      И да, я от тестового задания как раз таки не отказываюсь.

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

                      P.S. Я в жизни не знаю людей, что пишут на связке Java+PHP+JS с тонной обвеса (всевозможные системы сборок, фреймворки, библиотеки, суб-задачи) и еще при этом помнят «что писали вчера». Тут не свихнуться бы.


                  1. arielf
                    28.09.2018 20:29

                    Хм, не гений, но не помню ни разу, что-бы я не мог объяснить как работает мой код, когда бы он ни был написан! Или я пишу хорошо, или разбираться умею…


          1. stanislavkulikov
            27.09.2018 15:13

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


            1. kolkoni Автор
              27.09.2018 15:16

              посидеть, поразбираться и понять, что тут происходит.

              Значит Вы с таким не сталкивались, везет. Есть много людей, которые не хотят разбираться и понимать что происходит, они хотят скопировать и чтобы всё заработало.


              1. senglory
                27.09.2018 23:49

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

                Воля царская моя — Не хочу знать ни х.я,
                Где пили, кого е.и.
                НО ЧТОБ БЫЛИ КОРАБЛИ!!!


              1. arielf
                28.09.2018 20:30
                +1

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


        1. Eagle_NN
          27.09.2018 12:26

          У меня есть небольшие куски кода (до 300 строк), которые я могу показывать, однако с комментированием их проблема.
          Просто они достаточно сложные чтобы через пол-года после написания помнить детали логики. А читается такой код плохо.
          Пример — реализация универсального логирования на С++. Сложность в большом количестве интерфейсов внутри и хитрой логике добавления информации, вплоть до трассировки стека для фаталов.
          Другой пример — реализация на С++ максимально совместимого с QT функционала сигнал/слот (была задача с минимальным вмешательством в код позволить механизму сигнал/слот работать как с использованием QT (когда есть UI), так и на чистых C++ (в качестве библиотеки) без использования внешних препроцессоров и кодогенераторов). Сложность в большой вложенности вариативных шаблонов (variadic templates)

          P.S. Только не стоит говорить что такой код нельзя использовать в продакшн :).


          1. FadeToBlack
            27.09.2018 12:39

            опыт работы с графикой есть? как у вас с qml? код в студию


            1. Eagle_NN
              27.09.2018 13:15

              QML и графика — опыт посредственный, да и не скажу что работу тут ищу :)
              Упомянутый и другой код пока публиковать на всех не собираюсь :)


      1. robux
        27.09.2018 09:51
        -1

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

        Когда устраивался на первую работу, принес дискету со своими программами, написанными в студенчестве, они её скопировали и взяли 3 дня на изучение. Судя по тому, что меня приняли, код им понравился. Я ещё в школьные годы писал 2D-игры just for fun.

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


        1. avraam_linkoln
          27.09.2018 10:02
          +1

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


          1. FadeToBlack
            27.09.2018 11:43

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


            1. avraam_linkoln
              27.09.2018 11:48

              Я не говорю о тех кто ищет первую работу. Увеличение количества рабочих часов пропорционально ухудшению качества кода.


              1. FadeToBlack
                27.09.2018 12:18

                Тогда не понимаю о ком вы говорите. Какой-то сферический программист в вакууме. Код он писать умеет, но показать нечего.


                1. tangro
                  27.09.2018 13:11

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


                  1. Am0ralist
                    27.09.2018 13:12
                    +2

                    «Вот, тут я себе аппендицит удалил»



                  1. FadeToBlack
                    27.09.2018 13:15

                    Чем бы дитя не тешилось, лишь бы тестовое задание не делать.


                  1. khim
                    27.09.2018 22:25

                    Это выглядит таким себе суперсарказмом до тех пор пока вас дантист не спросит — не против ли вы того, чтобы снимки ваших зубов попали бы в его портфолио.

                    И да, я был не против, если там будут только зубы, а не мои паспортные данные.

                    Так что попробовав «довести ситуацию до абсурда» вы, вместо этого, показали что FadeToBlack действует правильно и грамотно.


                    1. FadeToBlack
                      28.09.2018 05:38

                      У нашего ортодонта на компе десятки папок с фотками его клиентов. Он знает, какие скобки кому ставил и сфотографирован весь прогресс лечения. Фото через каждые несколько месяцев. Чтобы убедить нас работать с ним, он показывал нам фото и прогресс самых сложных случаев. А как еще работать в мире неучей и самозванцев? Одни говорят «я умею», а у других за каждым «я умею» — годы обучения и работы. С виду они похожи. Улыбаются, говорят. Умеют складывать 2+2. Но почему то проблем с кодом никогда нет у тех, у кого есть хоть какой-то опыт.


                1. brusi
                  27.09.2018 16:07

                  Это реальный программист. По себе знаю, что бывают периоды, когда много переработок и сон то не всегда 8 часов и приходя домой меньше всего хочется что-то ещё программировать. Причем такие периоды бывали по несколько месяц, когда и в выходные работал.

                  Когда не перерабатываю, я человек семейный и мне надо уделить время семье + домашние дела, что-то прибить, что-то поменять. Да и отдохнуть хочется. И в таком режиме я уделяю 1 час в день на изучение новых инструментов, погружение и расширение знаний по уже изученным технологиям.

                  Это я к тому, что я предпочитаю развивать после работы, а не писать код для собеседований. А код, который я когда-то писал 2-3 года назад, стыдно показать :)

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


                  1. 0xd34df00d
                    27.09.2018 16:30

                    А как вы эти технологии изучаете? Я вот тыкаю в Идрис — у меня есть пара не самых тривиальных решений задачек, которые не стыдно показать, например. Регулярно ковыряю свежие плюсы — тоже есть, что показать.

                    Ну и да, это все просто означает, что у человека несемейного будет перед вами преимущество при трудоустройстве, по крайней мере, в некоторые компании.


                    1. brusi
                      27.09.2018 19:51

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

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


                      1. FadeToBlack
                        28.09.2018 05:47

                        Ну это странно. Я храню каждую строчку написанного кода. По крайней мере, стараюсь. Советую вам делать то же самое. Иногда я прихожу на собеседование, а им нужно вот прям то, что я однажды делал, потратил на это вечер, и вроде бы это фигня… Но сам факт того, что я показываю им релевантный проект играет огромную роль. А очень часто в работе нужен прям какой-то такой же алгоритм, и вроде ничего не стоит написать его самому, но… Вдруг его пишет подчиненный? Достаешь код, говоришь, что писал это в 17 лет, показываешь дату на файле. Работа идет в три раза быстрее и в разы интереснее.


                        1. DelphiCowboy
                          28.09.2018 10:48

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


                          1. FadeToBlack
                            28.09.2018 10:53

                            Лично мне без разницы, далеко или близко от вакансии. Важно посмотреть на ваш код и понять, на что вы способны.


                            1. DelphiCowboy
                              28.09.2018 14:48

                              Ну, и как вам поможет понять на что я способен, если
                              — позиция по PL/SQL
                              — а код внерабочее время написан на C++?


                              1. Neikist
                                28.09.2018 15:33

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


                              1. FadeToBlack
                                28.09.2018 16:36
                                +2

                                Почему вы других людей держите за идиотов?


                        1. brusi
                          28.09.2018 13:25

                          Какие-то интересные и простые решения, я для себя тоже сохраняю, хотя обычно они откладываются в голове.

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


          1. 0xd34df00d
            27.09.2018 16:27

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

            И, получается, круды на здоровье влияют меньше, чем что-то более сложное?


        1. kolkoni Автор
          27.09.2018 10:03

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


          1. stanislavkulikov
            27.09.2018 15:25

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


            1. kolkoni Автор
              27.09.2018 15:35

              но кадров жестко не хватает

              Я это писал в плане того что сейчас очень много вакансий и каждый день открываются всё новые…

              Вот это кстати отличный показатель — стоит ли вообще идти на собеседование

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

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

              Поясню: ничего не имею против джунов, просто специфика вакансии требовала кого-то по опытнее.


              1. aunoor
                27.09.2018 17:11

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


                1. kolkoni Автор
                  27.09.2018 18:09

                  Я о вакансиях по ЗП обычно сужу. Не каждому джуну 120к р зп ставят. А вакансий 120к+ р хватает и их количество растет.


                  1. aunoor
                    27.09.2018 18:57

                    Если вы говорите про Москву то это и не удивительно.
                    В регионах все намного хуже.


                    1. kolkoni Автор
                      28.09.2018 12:19

                      Да, Я по Московским сужу)
                      У нас в регионе у мидла с опытом зп в среднем 70к р


              1. BigFlask
                28.09.2018 02:29

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

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

                Если брать планку чуть выше — то и денег нужно предлагать чуть больше. Глупо предлагать условные 2-3 тысячи в месяц, а потом удивляться: «Ой, как так? Интересно, где опытный человек, способный придти и с минимумом вопросов начать что-то делать?»


                1. kolkoni Автор
                  28.09.2018 07:35

                  ЗП выше среднего по рынку


                  1. imanushin
                    28.09.2018 10:53

                    ЗП выше среднего по рынку

                    Не бывает такой заработной платы. Бывает только в виде цифр и валют. Например: от 360 тыс. рублей в месяц. Или ?50k — 90k в год.


                    1. kolkoni Автор
                      28.09.2018 12:21

                      У нас в регионе мидл с опытом имеет в среднем 70к деревянных.
                      Мы ставили 80к+.
                      Выше среднего по рынку…


                      1. Source
                        30.09.2018 02:56

                        IT рынок глобализован, поэтому среднее по региону слабо волнует людей с опытом. Судя по текущим раскладам, мидл с опытом не будет рад з/п меньше 90 т.р., а если у него ещё и с английским всё хорошо, то умножайте на 1.5.
                        Всё что ниже, можно считать ниже среднего по рынку, вне зависимости от региона.


                        1. kolkoni Автор
                          30.09.2018 07:04

                          Да вот ни разу не глобализирован.

                          То есть да, можно найти удаленную вакансию, хотя их и в разы меньше, но так делает очень маленький процент разработчиков. Все в офисы рвутся. Во первых потому что у нас менталитет такой, ещё не привыкли работать удаленно. Ну а вторая очень веская причина — у нас компании не умеют с удалёнщиками работать.

                          Вы сами сейчас работаете удаленно?

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


            1. kruslan
              27.09.2018 18:28

              Бред. Работаю в компании, в которой отличные условия и хороший уровень зп. А кадров не хватает. Собеседуем по 5-6 человек в неделю, берем максимум 1-2 в месяц. Причем, вакансия на сеньора, приходят «программисты», которые простой код на 10 строк не могут написать за 15-20 минут.


              1. FadeToBlack
                28.09.2018 05:49

                Подтверждаю, та же фигня.


              1. Vlad_IT
                28.09.2018 09:50

                которые простой код на 10 строк не могут написать за 15-20 минут.

                А какой код, можно узнать? Просто на том же LeetCode есть сложные задачи на 5-8 строк, которые без умения решать такие задачи, минут за 15-20 не написать.


                1. kruslan
                  28.09.2018 13:04

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


                  1. kolkoni Автор
                    28.09.2018 13:19

                    О, прикольная задачка. Есть решение на 5-8 строк? Можно посмотреть?


                  1. kolkoni Автор
                    28.09.2018 13:20

                    Я бы решил так — разбил слова на символы, отсортировал все массивы и сгруппировал схожие.
                    Но в коде интересно посмотреть.
                    !* Возможно Я не прав… =)


                    1. kruslan
                      28.09.2018 15:06

                      Ну это и есть правильное решение, но вы-б видели что пишут «сеньоры»…


                  1. khim
                    28.09.2018 14:25

                    Чего мы хотим? Экономии памяти или времени? Можно ли пользоваться дополнительной памятью? Можно ли пользоваться стандартные алгоритмы?

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


                    1. kruslan
                      28.09.2018 15:07

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


                      1. ggo
                        28.09.2018 18:49

                        А если слов несколько тысяч?
                        А если несколько млрдов?
                        А если слова лежат на ленте?
                        А набор букв очень большой?
                        ;) ну и т.д.


                        1. kruslan
                          28.09.2018 20:12

                          И? К чему эти вопросы?


                          1. ggo
                            29.09.2018 06:08
                            +1

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


                            1. kruslan
                              29.09.2018 12:43

                              Или человек любит переусложнять всё ;)


                      1. khim
                        28.09.2018 19:21

                        Ну если просто рабочее решение, то можно сделать что-то типа:

                        auto regroup(std::vector<std::string> words) {
                          std::map<std::set<char>, std::vector<std::string>> set;
                          for (const auto& word : words) {
                            const auto& key = std::set<char>(begin(word), end(word));
                            set[key].push_back(std::move(word));
                          }
                          std::vector<std::vector<std::string>> groups;
                          for (const auto& group : set) {
                            groups.push_back(std::move(group.second));
                          }
                          return groups;
                        }
                        
                        int main() {
                          std::vector<std::string> input = { "ab", "xy", "ba", "yx" };
                          const auto& output = regroup(input);
                          for (const auto& group : output) {
                            std::cout << "[" << std::endl;
                            for (const auto& word : group) {
                              std::cout << word << std::endl;
                            }
                            std::cout << "]" << std::endl;
                          }
                        }
                        
                        

                        Но тут эффективность… так себе. Памяти много тратится и всё такое… Но чтобы сделать лучше нужно больше информации про задачу…


                        1. kruslan
                          28.09.2018 20:17

                          Да какая разница, сколько памяти или времени жрёт? На собеседовании смотрим умение решать задачу, а не качество решения. Если человек решил, но плохо — даем направление подумать, как можно сделать лучше. Сделает — отлично, нет — ничего страшного. Всего-лишь один этап из 3х.


                          1. khim
                            28.09.2018 21:34

                            Так я уже сказал — это хорошая задача для собеседования, плохая для «заочной» оценки кода. Если у нас 8-битная кодировка, можно битами кодировать set — эффективность заметно улучшится. А если это «большой» Unicode с миллионом символов — то не стоит. Там лучше сортировать буквы в слове.

                            На многоядерной системе можно устраивать разного рода параллелизацию.

                            И прочее, прочее, прочее.


        1. roscomtheend
          27.09.2018 10:48

          Если работодатель хочет увлечённого и инииативного, то есть вероятность что будут переработки, да и платить будут не очень (это счастье увлечённо работать в нашей компании).


        1. senglory
          27.09.2018 23:55

          Интересно, почему в других профессиях как-то не особо распространено полагаться на любительство? В конце концов, есть рабочее время, в течение которого делается работа (как сказали и что сказали). Качественно и в срок. И все. И поверьте, в большинстве мест, даже с неплохим окладом, инициатива сверх оговоренного руководством — это хуже, чем ее отсутсвие на генетическом уровне.


        1. arielf
          28.09.2018 20:32

          Если у программиста нет своих программ, это значит, что он не увлечен всерьез программированием
          Золотые слова!


    1. sergeperovsky
      28.09.2018 07:35

      Стряхнуть пыль с моего графического интерфейса для DOS :)
      Написан на TP7. Не прошел по скорости. Критические секции переписаны на ассемблере. Скорость выросла в 15 раз. Самое смешное, что через 25 лет я смогу его прокоментировать. Потому, что очень хотелось понять, что же в компиляторе TP7 настолько не оптимизировано.



  1. imanushin
    27.09.2018 10:09
    +1

    kolkoni, у меня два вопроса:


    • А кого вы нанимаете?
    • Почему, с Вашей точки зрения, задаются странные вопросы на собеседовании?

    =====


    Как Вы и сами замечали, есть разные типы людей. Я приведу только несколько очень сокращенных примеров:


    • Фанат vs линейный программист. Первый будет за open source в свободное время, он будет готов перерабатывать, будет знать новейшие технологии и т.д. Однако второй сможет аккуратно поддерживать legacy проект без мысли его переписать (это особенно важно, если проект будет остановлен через год, так что надо всего лишь продержаться). С другой стороны, если будет задача "сделать быстрее выше сильнее", то фанат с радостью возьмется за задачу, сделает быстрее и лучше отстраненного "линейного программиста". Еще типы можно посмотреть тут, хабре.
    • Тактик vs стратег. Первый может быстро и решительно исправить баг в момент релиза, он не впадет в ступор (в том числе и в случае автоаварии, это же личность такая). Однако он будет смотреть на проект как на два спринта, не будет хотеть делать тесты, улучшать environment (это стереотипно, однако идея понятна). Стратег напротив может впасть в ступор при фиксе строчной и критической ошибки, однако он уже рассматривает проект как будто он на кучу лет. Потому тут будут и тесты, и улучшение environment и своевременное обновление зависимостей.

    Это стереотипные примеры, в реальной жизни крайних случаев мало. Однако даже на них вы сходу сможете представить, какие задачи давать этим разным людям.


    =====


    По поводу второго вопроса — если принять за аксиому, что HR не дегенерат, а напротив — опытный сотрудник, который получает бонусы на хороший найм, то почему же он задает идиотские вопросы? Вот несколько ответов (оба мне рассказал HR по опыту работы в США, я не поддерживаю их, однако по ним можно объяснить, почему люди задают "тупые вопросы")


    • Экзамен на устойчивость к стрессам. Да, может быть в компании работается спокойно, однако кто захочет нанимать человека, который размякнет при первом же нажиме?
    • Проверка на то, что человек действительно хочет здесь работать (сюда можно отнести кучу тупых задач на логику). В крупной компании сложно уволить (по моему опыту), а потому лучше сразу нанять тех, кто действительно хочет здесь работать. А сеньоры с задранными носами пусть идут к конкуренту, правильно ведь?
    • Проверка soft skills. Не каждая компания хочет раздувать штат разными сотрудниками. Зачастую есть желание взять не просто кодера по спецификации, а специалиста, которые сможет говорить с бизнесом. Мало кто хочет в будущем получать ответы в стиле "у меня синус равен пяти, потому что в спеке так написано. И вообще, я программист, а не математик".

    Важно: в разных компаниях разные требования. Я не говорю, что вопросы выше правильные. Однако зачастую и в них может быть смысл.


    Далее вопрос: как вы считаете, насколько хорошо сможет наладить диалог человек, который на вопрос про полюс и медведей начинает отвечать "любой медведь, какого поставили, такой и будет"? Не будет ли он и заказчикам отвечать в стиле "что значит, чему у нас равна пи? Что введете, то и будет, хоть 10". И другой вопрос: он точно хочет здесь работать? Или просто пришел пощекотать эго?


    =====


    И еще раз повторю мои вопросы к статье:


    • А кого вы нанимаете?
    • Почему, с Вашей точки зрения, задаются странные вопросы на собеседовании?


    1. kolkoni Автор
      27.09.2018 10:39

      А кого вы нанимаете?

      Я сам нанимал исключительно линейных программистов, если брать типажи из ссылки.

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

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

      Почему, с Вашей точки зрения, задаются странные вопросы на собеседовании?

      К сожалению ситуация когда HR не дегенерат далеко не аксиома и очень часто тупые вопросы задаются именно поэтому.

      Если же брать ситуацию с адекватным HR-ом, то тупые вопросы, на мой взгляд, рождаются из-за 2 основных причин.
      1. В крупных компаниях из за бюрократии. Потому что на совещании где участвовало 100500 человек (половина из которых вообще не относятся к программированию) они решили что нужно спрашивать это, то и вот это.
      2. И бывает такие вопросы появляются из-за нежелания конкретных сотрудников брать кого то на работу. Например тех.дир. хочет взять своего племянника на должность и начинает у всех приходящих спрашивать какую нибудь муть, а потом такой — а вот у меня есть племянник, он в 100 раз лучше всех этих обормотов.

      Важно: в разных компаниях разные требования. Я не говорю, что вопросы выше правильные. Однако зачастую и в них может быть смысл.

      Если в них есть смысл, то тогда почему бы hr-ам не озвучивать его? Просто когда меня тупыми вопросами заваливали, никто не объяснял зачем они задаются. И даже если спрашиваешь "зачем Вам это" они не могли нормально ответить, просто потому что сами не знают.

      Не будет ли он и заказчикам отвечать в стиле «что значит, чему у нас равна пи? Что введете, то и будет, хоть 10»

      Я считаю что между разработчиком и заказчиком обязательно должно быть промежуточное звено, а лучше 2 — те кто понимает заказчика и те кто понимает разработчика (типа product owner и scrum master).

      Он точно хочет здесь работать? Или просто пришел пощекотать эго?

      Тут уже вопрос о мотивации этого человека и эту самую мотивацию надо знать…


      1. imanushin
        27.09.2018 11:31

        HR не дегенерат далеко не аксиома

        Т.е. человек делает свою работу достаточно хорошо, чтобы начальники отделов не жаловались (я не могу ответить за все компании, однако там где я работаю, feedback дойдет крайне быстро), однако при этом он плохой HR, верно? По мне так это нетипичная ситуация. Более того: решение о найме-то (опять говорю о своей среде обитания) принимает команда (вместе с начальником отдела), так что HR'у даже отсеять будет непросто, если уже было техническое интервью.


        на совещании <..> 100500 человек <...> решили что нужно спрашивать <...>

        Опять-таки, по моему опыту это не так. HR задает одни вопросы (и описывает своё видение). Технари задают свои вопросы (и описывают видение). Потом решение принимает начальник отдела, как я говорил. И вопросы придумываются небольшой группой энтузиастов (просто потому что они нашли время). А далее каждый в команде может предложить свой вопрос (или выкинуть неправильный). А сам список является публичным и исключительно рекомендательным, к тому же он разный для разных отделов. Вот такой вот опыт большой компании, вот такая бюрократия.


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

        Вы хоть раз встречали такое в IT? Я вот лишь слышал о подобном. Сейчас же в нашей сфере дикий запад и конкуренция, к тому же в IT работать придется.


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


        между разработчиком и заказчиком обязательно должно быть промежуточное звено, а лучше 2

        Он, тут будет только моё мнение. Однако я вот считаю, что хоть кто-то из команды обязан вникать в предметную область. А лучше, чтобы все вникали. Дело в том, что тогда программы делаются действительно для заказчика, а не для спецификации. Разработчик, который изучил материалы по экономике, быстро поймет, что с программой что-то не так, если волатильность доллара стала больше волатильности рубля. И к тому же это никак ему не помешает и знать про Spring, и понимать про виртуальные функции, и осознавать, чем отличается virtual метода от не-virtual.


        Просто для сравнения: а сколько должно быть людей-посредников между таксистом и пассажиром?


        1. kolkoni Автор
          27.09.2018 12:10

          однако при этом он плохой HR, верно

          Не совсем понял как Вы пришли к такому умозаключению.
          Я просто констатировал свой опыт общения с 50+ hr-ами разных компаний на разные позиции.

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

          HR'у даже отсеять будет непросто, если уже было техническое интервью

          Как мне кажется, hr должен искать кандидатов и среди них отсеивать неадекватных или неподходящих по опыту (не в техническом плане, а в профессиональном).

          Вот такой вот опыт большой компании, вот такая бюрократия.

          У нас согласованный список обязательных вопросов приходил из головного отделения в Москве.

          А у Вас в компании задают на собеседованиях тупые вопросы?

          HR задает одни вопросы

          Вот к этим вопросам относилось это: 100500 человек <...> решили что нужно спрашивать.

          Технари задают свои вопросы

          К этим перцам относится эта рекомендация из статьи: НЕ НАДО СПРАШИВАТЬ ТЕОРИЮ вне контекста практического опыта конкретного разработчика!

          Вы хоть раз встречали такое в IT?

          Да, встречал…

          к тому же в IT работать придется.

          Как Вы думаете откуда столько сырых, кривых и недоработанных продуктов например в гос секторе?

          это реалии западной крупной компании

          К сожалению в крупных западных не работал, пишу о реалиях СНГ.

          А лучше, чтобы все вникали.

          Не многие на это способны, поэтому есть всякие UX дизайнеры например. Все люди думают по разному поэтому лучше чтобы был более компетентный сотрудник, который будет давать четкие указания, тогда будет меньше брака. А дай волю программисту, он сделает что то вроде «Что введете, то и будет, хоть 10».

          быстро поймет, что с программой что-то не так

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

          а сколько должно быть людей-посредников между таксистом и пассажиром?

          Можно и без них, но один бы не помешал (диспетчер).


      1. arperam
        27.09.2018 11:35

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


        1. kolkoni Автор
          27.09.2018 11:36

          Я не оскорблял, а констатировал свой опыт общения.


          1. arperam
            27.09.2018 14:02

            «Если вокруг одни дегенераты»… Продолжить, или по контексту догадаетесь?
            Мнение Петра о Павле обусловлено его субъективным опытом.


            1. kolkoni Автор
              27.09.2018 14:06

              А Я утверждаю что все HR плохие? Вы читаете или берет слова из контекста за которые зацепился Ваш глаз?


      1. Am0ralist
        27.09.2018 12:48

        Я считаю что между разработчиком и заказчиком обязательно должно быть промежуточное звено, а лучше 2 — те кто понимает заказчика и те кто понимает разработчика (типа product owner и scrum master).
        Из моего опыта внедрения некоторого по на двух работах — чем меньше между пользователями зеньев, тем быстрее и адекватнее решаются задачи. Именно поэтому на текущем месте работы я (вместо внедряторов от разрабов) опрашивал своих пользователей и ставил задачи, а когда у разработчиков начались проблемы с инженерами по внедрению и нам дали выход на разраба напрямую — у нас задачи стали решаться быстрее, правильнее (меньше ошибок) и сложнее по уровню, чем до этого получалось пропихнуть…


        1. kolkoni Автор
          27.09.2018 12:54

          Тут Вы играете роль более компетентного промежуточного звена…
          Нельзя юзверям к разрабам доступ давать…


          1. arperam
            27.09.2018 14:08

            Плох тот разработчик, который не умеет общаться с пользователями. Компетенциям грош цена без коммуникативного навыка.
            Самовлюблённые фуллстэки на проверку зачастую оказываются закомплексованными профанами, ставащими энциклопедическое выше человеческого. Где-то тут было про virtual на собеседовании, от не-эйчара, как раз этот случай.


            1. kolkoni Автор
              27.09.2018 14:11

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

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

              Самовлюблённые фуллстэки на проверку зачастую оказываются закомплексованными профанами

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


              1. BigFlask
                28.09.2018 02:49

                Большинство моих друзей программистов — интроверты и чуть ли не социопаты.

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


            1. roscomtheend
              27.09.2018 15:08

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

              > ставащими энциклопедическое выше человеческого.

              Энцеклопедическое — решение проблемы, а что такое «человеческое»? Жилетку пользователю подставить? Судя по всему у вас просто сэкономили на постановщике задач. Коммуникативным навыкам без компетенции цена не грош, к сожалению, на них зачастую выезжают те, кто не умеет ничего (ещё и горядся этим, считая решающих проблемы ничтожными).


              1. senglory
                28.09.2018 00:33

                Коммуникативным навыкам без компетенции цена грош


                Телевизор и «уважаемые люди», мелькающие в нем, всем своим видом говорят противоположное


                1. khim
                  28.09.2018 14:27

                  Они как раз компетентны. Просто их компетенция лежит в другой области.


            1. senglory
              28.09.2018 00:28

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


              РМ, Бизнес аналитик — это не про нас, так?


          1. aunoor
            27.09.2018 17:21

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


            1. Am0ralist
              27.09.2018 17:26

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


    1. ggo
      27.09.2018 10:40

      Наконец, здравый посыл.

      Почему-то считается, что в hr-рных делах любой итшник разбирается лучше, чем любой hr-щик.
      Это не означает, что нет бездарных hr-щиков. Они есть, как и есть бездарные итшники, и любые другие бездарные… (вставить по вкусу).

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


      1. roscomtheend
        27.09.2018 10:52

        Не всех, но многих. Если hr заявляет что тратит на просмотр резюме 15 секунд из-за их количества, то он уже хуже (хотя бы потому что не знает рабочий иснтрумент), вместо фильтрации — тупой просмотр. Это мартышка, а не специалист.


        1. ggo
          27.09.2018 11:02

          Фильтрации чего?

          Вот у вас 100 бумажных резюме? Разноформатных очевидно. Дальше?


          1. roscomtheend
            27.09.2018 11:35

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


            1. ggo
              27.09.2018 20:36

              не у вас 100 резюме на руках. у hr'а.
              мы же начали обсуждать некого сферического hr'а, который по определению мартышка, потому что не фильтрует, а просматривает.

              вот, у hr'а на руках 100 бумажных резюме, дальше то, что ему делать чтобы не быть мартышкой? чего и как фильтровать?


              1. Nalivai
                28.09.2018 14:20

                Чего-чего, отойти на шаг назад и сделать так чтобы у него не оказывалось 100 разноформатных печатных резюме, большая часть которых не относится к вакансии (см. 15 секунд на просмотр). То есть подкорректировать описание вакансии и процесс отбора и фильтрации резюме.


          1. iig
            27.09.2018 18:03

            Вот у вас 100 бумажных резюме? Разноформатных очевидно. Дальше?


            Половину сразу в мусор не читая. Неудачники в нашей конторе не нужны ;) (ц)
            Если на 1 вакансию 100 резюме — значит, требования непрофессионально составлены.


            1. ggo
              27.09.2018 20:38
              +1

              Пообщайтесь с hr'ом крупной конторы, выясните сколько резюме через них проходит в неделю.


              1. mapron
                28.09.2018 00:22

                Люди тупо не читают требования вакансии. Если есть вакансия «Программист С++ 3-5 лет опыта работы» (не вдаваясь в остальной список требований к должности), вам пришлют 100 резюме, после фильтра от HR по ключевым словам «Программист», «С++» и «хотя бы 2 года опыта», останется от силы 20. Для такого фильтра даже не надо в проф навыки вникать. К сожалению, ощущение, что большинство кандидатов просто спамит свои резюме по всем вакансиям подряд.


                1. Am0ralist
                  28.09.2018 10:12

                  И примерно так же спамят HRы вакансиями на новое резюме, не вчитываясь.
                  О, слово совпало, он тоже занимался мебелью! Фигак, вот тебе ваканися оператор раскроечного центра. Конструктору.


              1. iig
                28.09.2018 13:32

                Неважно сколько резюме сквозь них проходит. Важно, сколько резюме на 1 вакансию. Если 100 шт — либо требования слишком сказочные, либо хотят найти рок-звезду, либо просто изображают бурную деятельность.


                1. khim
                  28.09.2018 14:30

                  100 вакансий на место — типичные пропорции для Гугла или Яндекса. При этом 90% даже в шаражку для «тяп-тяп и в продакшн» брать нельзя.


    1. 0xd34df00d
      27.09.2018 16:43
      +1

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

      И другой вопрос: он точно хочет здесь работать? Или просто пришел пощекотать эго?

      А зачем хотеть работать здесь? Это что-то из серии про большую честь?

      Я не хочу работать здесь. Я хочу решать интересные задачи и развиваться, желательно за интересную зарплату. Всё.

      Задача про медведей — интересная, конечно, но не мой профиль.


      1. imanushin
        27.09.2018 17:55

        Я повторюсь — я не поддерживаю такой алгоритм найма, просто пересказываю идею. Мб кому-нибудь пригодится.


        А зачем хотеть работать здесь?

        Во-первых компании выгодно забирать с рынка людей, которые лояльны ей. Собственно, для этого и может использоваться подобный фильтр.


        Во-вторых, способов "работы в большой компании" тоже немало, однако интересны вот эти:


        • Просто работа от звонка до звонка. И не забываем про "почитать статьи в интернете" и пр.
        • Активная работа, вписывание в новые задачи, которые предполагают ответственность.

        Далее идея следующая: лояльные грамотные сотрудники выбирают пункт "2" чаще, чем те, которые "просто так пришли". Зачастую у них глаза будут гореть изучать новое и улучшать существующее.


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


        1. Nalivai
          28.09.2018 14:15

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


        1. Eagle_NN
          28.09.2018 14:23

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

          Случается и обратная ситуация — человек максимально лоялен к компании т.к. тут можно «от звонка до звонка и не забыть почитать статьи».


  1. edejin
    27.09.2018 13:35

    Тут не описан третий собес:
    С «мега» боссом, с которым ты работать не будешь, и будешь видеть его максимум раз в неделю, но ты ему должен понравиться.
    image


    1. kolkoni Автор
      27.09.2018 18:32

      О, точно, было такое однажды.

      Получилось так — перезвонила HR, сказала что шефу Я понравился, но чтобы меня проверить, он сказал что Я должен поработать пару месяцев с ЗП в 2 раза ниже запрашиваемой и если Я докажу что действительно специалист, то поставят полную ЗП.

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


  1. SpiderEkb
    27.09.2018 20:58

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

    Другая контора нашла сама. Называть не буду, но известная на всю страну. HR только организовали собеседование и провели на место. На самом собеседовании не присутствовали. Только несколько человек из тех с кем сейчас непосредственно работаю и руководитель направления в качестве начальства по видеоканалу.
    Все вопросы были общего характера — навыки работы с большими проектами, кто тз ставит, насколь детально прописывалось тз и какова доля самостоятельной разработки. Т.е. определяли кто перед ними — разработчик или кодер.
    В целом беседа была непринужденной и располагающей. Хотя не верилось что подойду — совершенно незнакомая предметная область (до этого работал в промавтоматизации, весьма специфическое направление) и абсолютно незнакомая и нечасто встречающаяся у нас платформа IBM i.
    Расстались обычным «мы вам сообщим».
    На следующий день опять HR — «выслала вам анкету для СБ, заполните и отпрвьте мне».
    Дальше 3 месяца «испытательный срок». Но это больше время на обучение (первые два месяца очень тяжелые) и приглядывание к человеку «сработаемся или нет».
    Потом узнал что вакансии размещают архитекторы или руководители направлений. Они же выискивают резюме и выставляют на голосование в команде «собеседуем или нет». Если команда решила собеседовать, уже дают задание HR организовать встречу. После всьречи опять голосуют командой — «понравился или нет». Если да — заявка HR на организацию трудоустройства.
    Т.о. кадровая служба решает только процедурные вопросы в рамках своей компетенции. А все остально решеается теми, с кем потом придется работать. И, честно скажу, схема видится очень разумной и среди людей, с кем работаю пока не встретил ни одного, кто бы отказал в помощи или консультации. Народа много, но обстановка дружелюбно рабочая.

    Виктор, ведущий разработчик, back-end, IBM i.


  1. panteleymonov
    27.09.2018 20:58

    Оставлю ссылку на статью в своем резюме под описанием. Авось прочтут кому надо.


    1. SpiderEkb
      27.09.2018 21:53
      +1

      Думаете поможет? :-)
      Тут ведь дело в том, как организован процесс в целом и как в нем распределены роли.

      Еще зависит от того, кого именно ищут — человека, который с первого дня (условно) начнет гнать код, или разработчика, с опытом и определнным кругозором, которого придется обучить конкретной специфике, но от которого потом можно ожидать каких-то новых в данной области решений, привнесенных и адаптированных «из прошлой жизни».
      У нас, например, поощряется работа «на себя». Немв смысле налево, а в смысле до 20% (негласный порог) времни работаешь не над текущими задачами (при всем их обилии и жесткости сроков), а над какими-то общими библиотеками, которые могут потом эффективно применяться всеми, инструментарием, облегчающим дальнеюшую разработку, нестандартными алгоритмами, повышающми эффективность и т.п. Т.е. поощряется творчество, которое может быть полезно для выполнения текущей работы.


      1. panteleymonov
        27.09.2018 22:35

        Думаете поможет? :-)

        У меня в плане негативного опыта общения с HR, которые начитались вредных советов, сформировалось желание хоть как-то им насолить. Так что если не поможет, то хоть как-то их позлит. :-)

        … которого придется обучить конкретной специфике ..

        Вот это какая-то болезнь HR-ов «специфика», некоторые этим просто отмазаться от кандидата хотят, сказав что «у нас тут своя специфика, вы нам не подходите».

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


        1. SpiderEkb
          27.09.2018 22:59

          Ну я выше написал схему, по которой попал на нынешнюю работу. И которую счтиаю удачной. В ней HR выполняют чисто организационную функцию — связаться, пригласить, провести. А собеседуют те люди, с которыми потом работаешь. У меня на собеседовании было человек пять из них тимлид команды в которой сечас работаю и человек, который был наставником в процессе обучения.
          Вопросы были больше стратегического характера, никаких тестовых заданий. В основном насколько велики были проекты, насколько велик уровень самостоятельности в принятии решений и т.п.

          Ну а без работы тут не останешься. Невпроворот. Есть текучка, есть исправление дефектов с боя, есть достаточно интересные задачи, где решение в лоб по тзине проходит по эффективности и надо придумывать хитрые алгоритмы…


          1. panteleymonov
            27.09.2018 23:14

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


  1. panteleymonov
    27.09.2018 22:34

    Нужно удалить этот комментарий.


  1. kuftachev
    28.09.2018 01:02

    "НЕ НАДО СПРАШИВАТЬ ТЕОРИЮ вне контекста практического опыта конкретного разработчика!"


    Конечно, лучше взять дебила!


    Как человек может писать на нормальном уровне если он не имеет хотя бы базовое представление о том как работает его экосистема начиная от процессора и памяти, операционная система, виртуальная машина, и до фреймворка???


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


    А вот практические вопросы можно задавать уже по теме будущего проекта.


    В итоге, статья больше вредная, чем полезная!


    1. AlexTest
      28.09.2018 02:47

      Как человек может писать на нормальном уровне если он не имеет хотя бы базовое представление о том как работает его экосистема начиная от процессора и памяти, операционная система, виртуальная машина, и до фреймворка???
      Задайте сеньорам от вебразработки (не важно на каком языке/платформе) простой вопрос:
      Как вы понимаете открытое соединение на сервере?
      Будете очень удивлены — большинство из них не скажет ничего внятного, но при этом они сайты и веб-приложения делают!


      1. iig
        28.09.2018 13:37
        +1

        большинство из них не скажет ничего внятного, но при этом они сайты и веб-приложения делают!

        Потом те сайты невозможно открыть на плохом соединении. Из старого браузера. На мобильном устройстве…


        1. Neikist
          28.09.2018 13:51

          Я разделяю вашу боль ибо например частенько в родную деревню езжу и более менее интернет начинает на ноутбуке работать только если телефон wi-fi раздающий на подоконник положить в определенный угол, но мы просто не их целевая аудитория.


        1. Nalivai
          28.09.2018 14:40

          Но это, обычно, не потому что разрабы не знают как что оптимизировать, а потому что не стоит такой задачи.


    1. kolkoni Автор
      28.09.2018 08:25

      Как человек может писать на нормальном уровне если он не имеет хотя бы базовое представление о том как работает его экосистема начиная от процессора и памяти, операционная система, виртуальная машина, и до фреймворка???

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

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

      Начнём с того, что кандидат Вам ничем не обязан.
      О как Я люблю таких напыщенных болванов работодателей, которые думают что работать с ними огромная честь и все им обязаны с порога.

      В итоге, статья больше вредная, чем полезная!

      С собеседований, где сидели такие умники как Вы, Я просто вставал и уходил. Вы либо не очень дальновидный, либо не понимаете, что ситуация на рынке такова, что сейчас программисты выбирают компанию в которой работать, а не наоборот.
      С Вашим характером могу только пожелать удачи в найме персонала…


      1. Skerrigan
        28.09.2018 11:19

        Пример на тему «о схожем»:
        Мне не так давно одна относительно известная фирма предлагала чуть ли не топ-зарплату для локального рынка Томска. Однако когда я увидел в каком курятнике они держат своих разработчиков, отсутствие мощных стационарников, хороших кресел.
        Я им даже предложил «Приобрету все себе сам (мебель/железо), как я люблю, принести сюда смогу?» — получил отказ.
        К таким пойду только если станут последними работодателями для меня.


  1. AlexTest
    28.09.2018 02:46

    deleted


  1. efesh
    28.09.2018 07:42

    Приходится искать исполнителей. Примерно так:
    0. Херы собирают анкеты для первичного отбора
    1. Тестовая задача на поиск косяка.
    2. тестовая задача на решение.
    3. совместный разбор результатов с соискателем.
    … и больше интересуют «деловые качества» — остальному можно научиться.
    4. далее испытательный срок на реальных задачах.


  1. arielf
    28.09.2018 20:51

    А бывают ли подобные вопиющие проблемы в иных инженерных сферах — в аэрокосмической инженерии, биоинженерии, химической инженерии — или указанный цирк лишь в программной инженерии? Интересно — к примеру, как нанимают в Airbus?