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

Но вот незадача — стажеры такие животные, которые не обладают навыками. И ранее ничего полезного они не делали. Как же не ошибиться в выборе? Что ж, это довольно просто. Если нельзя оценить по результату, то следует искать предпосылки к достижению этого результата…

Статья о серьезной проблеме рекрутинга, которую все почему-то считают нормой.

Новички


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

Тогда нам еще понадобится определенный склад характера, это верно.

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

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

И как будем выявлять техническое мышление?

Можем обратиться к философам Древней Греции, у которых было достаточно времени подумать о таких вещах. Они считали, что логика — это искусство рассуждения и аналитики.

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

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

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

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

И тут голос колдуна говорит вам: 'Раздели монеты на две кучи так, чтобы в каждой было одинаковое количество решкой вверх и тогда ты выйдешь отсюда вместе с ними'. К счастью, перед тем как погас свет, вы заметили, что всего решкой вверх лежало ровно 20 монет. Но где именно — вы не запомнили. Что же делать? Как будем выбираться?

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

Ушлые


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

Конечно, по достигнутому им ранее результату, ведь он же опытный! А где этот его результат можно найти? Сией летописью, как правило, является резюме, подкрепленное ссылками на продукты, рекомендации и записи в трудовой книжке с печатями. Да, трудовая в какой-то момент является не совсем бесполезной, а выступает в роли гаранта, сводя возможное лукавство к минимуму.

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

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

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

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

Проблема


И вот мы подошли к настоящей трагедии рынка. По крайней мере в России. Какая-то неведомая сила извратила систему и обесценила резюме. Обесценила опыт. Обесценила результат.

Мы с коллегами провели эксперимент, вставив счетчик переходов по ссылками на наши приложения в резюме, и разослав их в компании.

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

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

Любой уважающий себя дев, который может это понять, а особенно внятный руководитель, просто встанет и уйдет. А как еще можно отреагировать на неуважение к собственной работе?

Кошмарно наблюдать, что для подавляющего количества компаний резюме выглядит как одна строчка с именем и фото и просто белым пространством под ним. Весь этот подтекст можно рассматривать только как: «Да… что-то вы делали последние 3/5/10 лет, но нам это все так безразлично и лень читать, что лучше пройдите тестик для выпускников 11 класса, а мы по нему определимся, кого мы возьмем на позицию синьера.»

Дальше хуже.

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

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

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

Система найма глубоко прогнила, а в первую очередь этому способствуют лидеры индустрии. До тех пор пока интернет-автовазы выкладывают статьи с подбором задач из 1-го курса матана под заголовком 'Задачи для собеседований, которые всем надо знать' — все будет катиться вниз с ускорением. Народ вникает раскрыв рот, усугубляя стереотип, что это нормально.

Решение


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

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

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

Хорошо, проблема ясна. Но почему так важно исправить ситуацию?

Потому что через такую систему найма успешно проходят:

  • Люди, которые влюблены в вашу компанию. И готовы наступить на горло своей гордости. И это далеко не всегда специалисты высшего класса, они просто готовы больше прогибаться на этапе отбора. Но бывают и исключения.


  • Рыбы, лазающие по деревьям. Проще говоря, те, кому весь этот процесс в кайф. Кто маниакально готовится к собеседованием и считает, что важно уметь рекурсивно обойти бинарное дерево на C++, когда твоя работа заключается в верстке сайтов.
  • Редкие талантливые исключения.

А теперь откройте и посмотрите продукты таких компаний. Посмотрите приложение маркета, фейсбука, мейлру почты, контакта, ютуба, альфа банка и так далее, и далее, и далее. Как впечатление? Эффективен подобранный ими персонал? Эти компании все славятся своими техническими собеседованиями.
(Я говорю в первую очередь о приложениях, потому что это моя основная специальность)

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

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

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

Пожалуй, оставлю шутку на тему кадрового голода напоследок:



Это все. Спасибо, что дочитали.

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


  1. SergeyGalanin
    29.03.2018 11:26

    Максим, есть идеи, отчего сложилась такая ситуация?


    1. Mehdzor Автор
      29.03.2018 11:45
      +2

      Могу предположить, что из-за бездумного подражания топовым компаниям западным.
      Изначально они имели нестандартную сферу деятельности, которая значительно выбивалась из всего рынка. Это как пытаться найти разработчика в мире бухгалтеров. Приходится каждого оценивать как новичка.
      А дальше — зачем придумывать новое, если мы можем позволить себе старое? Причем, доходит до абсурда — есть ТРЕНИНГИ по прохождению собеседования в google. лолчто. Это же явный симптом.


      Но, предполагаю, это касается не всех позиций, а только тех, которые поставлены на поток. Там уже работает система, которую не остановить.
      Вряд ли идеологическому лидеру по разработке ИИ, например, кто-либо задаст вопрос про big-O. За него говорит его опыт и разработанные проекты. И так должно быть везде.


      1. Marui
        29.03.2018 11:58

        И так должно быть везде.

        Кому должно? Никто не мешает идти работать в компании попроще. Без бонусов и акций.
        За него говорит его опыт и разработанные проекты.

        Я опытный, но рассказать и показать ничего не могу. Вот такой я. Так???
        Вряд ли идеологическому лидеру по разработке ИИ, например, кто-либо задаст вопрос про big-O.

        Зачем задавать вопросы? Лид должен сам всё выдать и так. С потрахами. Он же лид, а не джуниор.


        1. Mehdzor Автор
          29.03.2018 12:08
          +1

          Никто не мешает идти работать в компании попроще. Без бонусов и акций.

          Если я правильно понял посыл "не можете пройти сложное собеседование, то идите куда проще", то в этом и заключается проблема и стереотип.
          Такой формат собеседования не 'сложный и потому крутой', а просто глупый. С таким же успехом вас могли попросить пробежать марафон. И все бы сидели и готовились к марафону в гугл. Бред же.


          1. Marui
            29.03.2018 15:42
            -4

            Зарплата программиста в гугле 150 000 + 100 000 акциями и бонусами. Давайте список компаний с такими условиями? Пойдем работать туда.


            1. Valle
              29.03.2018 19:01
              +1

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


              1. vsapronov
                30.03.2018 07:13

                Нет: был в фейсбуке и линкедине. От линкедина был оффер в декабре. Собеседования там такие же дурацкие как и в Гугле.


                1. igor_suhorukov
                  30.03.2018 09:59

                  Так linkedin сейчас microsoft же!


            1. Druu
              30.03.2018 02:58

              А это вы с чего взяли?


            1. vsapronov
              30.03.2018 07:16

              По цифрам вы не в теме. Занижаете гугловые. Но сейчас тред последнее время: средние и мелкие конторы подтягиваются по деньгам к гиганта долины. Уже очень близко — разница в 10-20 и острые ощущения от опционов.


            1. AllexIn
              30.03.2018 10:31

              Курицу изобразить не забудьте.


          1. igor_suhorukov
            29.03.2018 23:04

            Максим, вы озвучили то что давно крутится на уме. Я был с двух сторон этих баррикад. И что самое интересное, я вникал в код который кандидаты указывали в резюме. Собеседования проводил — первое удаленно по телефону или по скайп, второе в офисе — небольшие упрощенные практические задачки на компьютере (проверял параллельно теорию, просил написать разные варианты сортировки и группировки коллекций с помощью lambda выражений, смотрел как кандидат работает в IDE, командной строке, как может найти в незнакомом коде нужные места, насколько понимает базовые фреймворки и т.п.). За свою карьеру я проводил сотню собеседований и скрининг интервью. Кроме теории нужно проверять что кандидат умеет писать код. И совсем не на бумаге и не блок схемы на доске.

            Больше всего мне понравилось интервью в финансовый стартап elinvar — после технического интервью по скайпу, мы договорились о следующем интервью. В это время мне выслали задание, заготовку проекта без требуемого функционала — нужно было за 2 часа написать код и тесты, что я быстро сделал подключив к проекту apache camel. После проверки прислали мне job offer с отличной для Берлина суммой на руки. Не сложилось по личным причинам, отказался. Но подход к интервью отличный — знания, опыт и резюме интервьюверы проверили. Похожая coding session была и в cTrader на Кипр — но там нужно было еще поделиться своим экраном по скайпу и тоже оффер по завершению!

            Общение же с HR, которые ко мне приходили в прошлом году всегда сводилось к шаблонным вопросам, а на тех. интервью рекурсивные задачки, обход деревьев, сложность алгоритмов и прочие вещи которые я хорошо делал на первом курсе. Что вряд ли возможно расценивать как адекватное интервью для senior dev позиций. Рекрутеры zalando и ali после такого идут лесом со своими предложениями.


        1. Mehdzor Автор
          29.03.2018 12:08

          Я опытный, но рассказать и показать ничего не могу. Вот такой я. Так???

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


          1. anprs
            29.03.2018 16:05
            +2

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


            1. igor_suhorukov
              29.03.2018 23:24

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


              1. asArtem
                30.03.2018 02:59

                Хотя и я и согласен с мыслью в целом, но про оупенсорс — это какая-то чушь. Вы или не имеете жены и детей, либо на работе не заняты особо, либо забили на семью (но конечно же этого никогда не признаете). Видали мы таких. У человека 8 часов из которых эффективных 4-6 на разработку и ещё пару часов на общение и митинги. Всё. Остальное время мозг должен отдыхать. А на выходных есть домашние дела. Жена хочет внимания, дети с отцом поиграть, чтобы не вырасти мудаками и не сказали через 10 лет: «Слышь, дай прикурить, типа батя… хэ-хэ». Только полные задроты сидят бесплатно после работы в оупенсорсах и это медицинский факт. Нормальные специалисты получают достаточно бабла в энтерпрайзе и в ус не дуют. И уж точно ни я ни кто-то из моих бывших или текущих коллег или подчинённых не будем тратить свои вечера, чтобы удовлетворить какую-то там айчарку или четырёхглазого техлилда ссылкой на гитхаб «как я закоммитил в оупенсорс». Не тот возраст. Студенчество с беззаботной и ветряной жизнью кончилось у синьоров 10-15 лет назад. Хочешь узнать как я пишу код? Давай свою задачу сюда. Не достаточно? Нанимай меня, плати бабло и смотри всё что тебе нужно. Нет денег? Ищи студентов которые на гитхаб коммитят.


                1. igor_suhorukov
                  30.03.2018 10:10

                  Кажется вы гиперболизируете сложность open source. Вопрос лишь желания и совсем небольшого времени. От получаса раз в пару дней вряд ли дети начнут курить. А вот от совместного просмотра зомби ящика — запросто…

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


                  1. Druu
                    31.03.2018 07:43
                    +1

                    > От получаса раз в пару дней вряд ли дети начнут курить.

                    Полчаса раз в пару дней определенно недостаточно. Чтобы иметь что-то нестыдное для показать, надо тратить хотя бы часа 2-3 ежедневно. Ну или больше, если вы хотите иметь это нестыдное через 5 лет, а не через 10. У подавляющего большинства людей такой запас времени просто отсутствует.


                  1. Kwisatz
                    31.03.2018 14:18

                    А можно я задам очеь непопулярный вопрос: а зачем? Вот у меня есть пачка штук помогающих мне получать денежку. И многие из этих штук выстраданы в отсутствии спецификаций/статей/итд

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


                    1. Mehdzor Автор
                      31.03.2018 15:05

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


                      1. Kwisatz
                        31.03.2018 15:53

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


                1. AllexIn
                  30.03.2018 10:36

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


                  1. Viacheslav01
                    31.03.2018 01:40

                    Вернемся к вопросу когда ребенку будет хотя бы лет 10


                    1. TheShock
                      31.03.2018 02:19
                      -1

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


                      1. Viacheslav01
                        31.03.2018 02:24

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


                        1. TheShock
                          31.03.2018 02:31

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

                          11 лет назад вы контрибутили в опенсорс?

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

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


                          1. VolCh
                            31.03.2018 14:57

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


                    1. AllexIn
                      31.03.2018 08:29
                      +1

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


                    1. saboteur_kiev
                      31.03.2018 18:52
                      +1

                      А почему 10, почему сразу не 50?

                      Самое сложное — первый год, когда ты не высыпаешься, когда ребенок не может подождать тебя 5-10-20 минут, если начинает кричать. Через полгода уже проще, через год еще проще. А когда с ним можно уже поговорить, то выделить себе 1 час непрерывного времени на опенсорс или другое хобби гораздо проще, чем в первые 1-2 года.


                      1. Areso
                        31.03.2018 20:10
                        +2

                        Потом ребенка надо водить (чаще — возить) на кружки, забирать из школы и все такое. На это уходит прорва времени. При условии 1 кружка, от 2 до 3 вечеров в неделю у вас будет уходить на эти логистические упражнения, а с двумя кружками — от 2 до 6 вечеров.
                        Плюс очень многое зависит от характера ребенка — кто-то в 7 лет вполне самостоятельный, кого-то и в 14 надо собирать в школу и на кружки.


                        1. DistortNeo
                          31.03.2018 21:22
                          -1

                          Потом ребенка надо водить (чаще — возить) на кружки, забирать из школы и все такое.

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


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


                          1. Areso
                            31.03.2018 21:35
                            +1

                            Поговорим, когда у вас будет ребенок в этом возрасте, а лучше — пара детей. Знаю три основным причины, по которым у детей нет кружков:
                            1) кружков просто нет. Так случается, если родители живут в некоей попе мира, деревне или депрессушном городке, где все буквально или умерло или разорилось. Shit happens
                            2) нет денег на кружки. Это случается гораздо чаще, и это печально.
                            3) родители забили на свое чадо. Что надо — выучит самостоятельно по самоучителю найденному в интернете (ага).

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

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

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


                            1. DistortNeo
                              01.04.2018 12:18

                              Ну вот лично меня не водили ни на кружки, ни на курсы. Всё, что было — это бассейн раз в неделю в первом классе. Ни о чём не жалею. Зато у меня было детство, а не бесконечная учёба с утра до вечера.

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

                              Кроме того, не забываем, что речь идёт о высокооплачиваемом IT. Если оба родителя — программиста, то деньги вообще не являются проблемой.


                      1. DistortNeo
                        31.03.2018 21:17

                        У меня другой опыт. Первый год — самый простой: желания ребёнка простые и легко удовлетворяемые, ребёнок много спит. Если ребёнок хочет телесного контакта — не вопрос, можно положить на колени и продолжить программировать.


                  1. Labutin
                    31.03.2018 02:22

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


                    1. Viacheslav01
                      31.03.2018 02:26

                      Про жену очень верно


                    1. AllexIn
                      31.03.2018 08:21
                      +1

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


                    1. VolCh
                      31.03.2018 15:00
                      +1

                      Нужно садиться за комп, когда жена садится за комп, что-нибудь для себя попрогать. :)


                  1. Pol1981
                    31.03.2018 11:30
                    +1

                    А если у тебя не один ребенок, а 4 у тебя нет бабушек, нянь и т.д., Ты тратишь 2 часа на дорогу, 8 часов рабочего времени, причем все библиотеки уже добавлены и им больше 7-ми лет, по выходным ты подрабатываешь (ипотека и в отпуск хочется), код показывать нельзя да особо и нечего, пишешь в основном xml и for с if (все давно уже отлажено), читать бесполезно ( забываешь без использования через месяц, что прочел). И что говорить работодателю???????


                    1. AllexIn
                      31.03.2018 11:32
                      +2

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


                      1. VolCh
                        31.03.2018 14:59

                        Няня не всегда вопрос денег.


                    1. VolCh
                      31.03.2018 14:59

                      В дороге контрибутить?


                      P.S. хотел поставить смайлик, но по при желании вполне реально ведь в некоторых случаях.


                      1. AllexIn
                        31.03.2018 15:33

                        ВСё всегда сводится к одному: либо хочешь, либо не хочешь.
                        Время и остальное вторично.
                        Понятно, что если тот же OpenSource интересен, но в списке на 50 позиции — не будешь контрибьютить. Понятно, что если занимаешься OpenSource или чем угодно другим — значит, жертвуешь чем-то в пользу этого дела.
                        Лично меня просто удивляет, что отсутствие проектов аргументируют — невозможно найти на это время!
                        Но это же не правильная формулировка. Правильнее «У меня есть дела и поинтереснее».


                        1. VolCh
                          31.03.2018 15:37

                          Ну, иногда может быть, что действительно обязательные дела занимают всё время. Максимум, какие-то слабопредсказуемые окна по 10-15 минут образуются несколько раз за день, но именно для опенсорса это как-то маловато, вот собрать их хотя бы в час непрерывно — другой разговор.


                  1. semmaxim
                    01.04.2018 00:34
                    -1

                    Посмотрим, что будет, когда ребёнку будет полтора года и жена будет беременна вторым (или второй появится). Откуда время то? Утром в 6:00 проснулся, в 8:00 на работе, домой приехал в 18:00, сходил в магазин, поужинал — уже 19:30, искупали ребёнка и уложили спать — 20:30, поставили вещи стираться, погладили вчера постиранное, помыли посуду, прибрались — уже 21:30. Полчаса блаженно посидели ничего не делая и в 22:00 легли спать. И где-то ещё вечером нужно втиснуть непредвиденные занятия, игру с ребёнком (часто ему мамы недостаточно и нужен ещё и папа), готовку еды (если то, что сделали на выходных, закончилось). На выходных вообще кошмар и ужас — магазины, готовка, тотальная уборка, игра с ребёнком, поездка в парк, поездка к родственникам. К вечеру еле ноги таскаешь.
                    И это не говоря уже о том, что когда папа дома, то ребёнок требует, чтобы папа с ним играл, а не сидел за компом — реально скучает все дни без папы.
                    КАК можно найти время на OpenSource у нормального человека?


                    1. TheShock
                      01.04.2018 00:47

                      КАК можно найти время на OpenSource у нормального человека?

                      То есть у всех программистов всегда ребенок 1.5 года + жена еще одного родила?
                      Ответьте на вопрос, пожалуйста, до того, как жена родила первого, два года назад вы контрибутили в опенсорс?


                    1. AllexIn
                      01.04.2018 11:16
                      +1

                      У меня как у «нормального»(счиаю себя нормальным) нет траты времени на проезд на работу и с работы. Voila, два часа в день «лишних».
                      Я не хожу в магазин каждый день, а езжу раз в пару недель и закупаюсь надолго. Сколько это еще мне времени экономит?
                      Ну и по остальным пунктам вопросы.
                      Вы сами себе устроили жизнь, в которой ни на что нет времени. Это ваша проблема, а не проблема всех людей.


                      1. DistortNeo
                        01.04.2018 12:26

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


                        1. AllexIn
                          01.04.2018 12:27

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


                          1. DistortNeo
                            01.04.2018 12:39

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


                            А дороги с работы домой нет просто.

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


                            1. AllexIn
                              01.04.2018 13:08

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


                    1. DistortNeo
                      01.04.2018 13:30

                      Как минимум, экономить можно на глажке-уборке-стирке и прочих ритуалах.


                1. Skerrigan
                  30.03.2018 10:41

                  Согласен на 98% (ну бывают редкие «особые случаи»). В целом считаю, что вы правы — OpneSource, это легендарная отмазка на сегодня, когда лениво трудиться над собеседованием и нет желания выдавать кредит доверия разработчику из non public enterprise.


                1. firegurafiku
                  30.03.2018 11:17

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

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


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


                  1. Areso
                    30.03.2018 21:14

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


                    1. iit
                      31.03.2018 19:43

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


                      1. TheShock
                        31.03.2018 19:45
                        +1

                        во время работы в компании в том числе и у себя дома в 1 ночи принадлежат копании

                        А это законно?


                        1. iit
                          31.03.2018 19:53
                          +1

                          В принципе да, но над этим парятся только "серьезные компании"


                          Компании поменьше чаще всего над этим не парятся не у нас не на западе. Главное чтобы успевал по своим таскам, а что ты там делаешь — читаешь хабр, пишешь в twitter делаешь левак или катаешь в cs — всем как-то по барабану.


                          1. DistortNeo
                            31.03.2018 21:27

                            Возможно, это связано с повсеместной оплатой за жопочасы. Работник-то может и рад работать не 40 часов в неделю, а 20-30 часов, выполняя тот же объём работы, но тогда его зарплата упадёт. Вот и приходится страдать фигнёй на работе.


                            1. iit
                              31.03.2018 22:12

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


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


                              Именно в такой период стоит посмотреть другие технологии, которые внезапно помогут сдать проект быстрее. Для меня php быдлокодера такой технологией стал React и он позволил мне сэкономить кучу времени на верстку однообразных компонентов — ui киты просто замечательная идея!


                              Если же совсем выгорел то стоит посмотреть смежные области работы, например вместо кодинга можно вести курсы или стать тимлидом. Пара коллег так и сделали — один устроился на постоянную работу в универ, второй взял на себя отдел, пусть из всего 2-х людей но они реально тащат!


                        1. Areso
                          31.03.2018 20:04
                          +1

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


                1. Kwisatz
                  31.03.2018 14:14

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


                  1. khim
                    31.03.2018 17:26

                    Найм специалиста — процесс долгий и сложный и нанимать его на одну задачу банально невыгодно.


                    1. Kwisatz
                      01.04.2018 03:25

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


              1. Druu
                30.03.2018 03:03

                > Да всегда, даже из кровавого энтерпрайза есть выход в open source в свободное время.

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


                1. igor_suhorukov
                  30.03.2018 10:11

                  А если человек имеет какие-то увлечения, не связанные с выжиганием глаз монитором?

                  Так можно же без фанатизма — пол часа раз в пару дней.


                  1. Agranatmark
                    30.03.2018 22:04

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


                  1. Druu
                    31.03.2018 07:48

                    > Так можно же без фанатизма — пол часа раз в пару дней.

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


                    1. TheShock
                      31.03.2018 08:12

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


                      1. Druu
                        31.03.2018 08:45

                        То есть вы пятистрочным багфиксом работодателя восхитить решили?


                        1. TheShock
                          31.03.2018 19:14

                          Не обязательно, хотя почему нет?
                          Но я говорю, что опен-сорс — это не обязательно проект на 50 лет, к чему эти крайности?


                          1. Druu
                            01.04.2018 04:29

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


                            1. TheShock
                              01.04.2018 08:00
                              +1

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

                              Там, с другой стороны стола, тоже сидит живой человек, который, обычно, имеет разум и адекватность и он не станет говорить что-то вроде: «фу, что за недостойный опенсорс ты мне показываешь?». Если бы мне человек сказал бы, что-то вроде: «вот пару месяцев назад я отправил небольшой пул-реквест в МобХ, его, правда не приняли, потому-что не совпадает с будущим видением команды разработки» — я бы не заявил: «ты что, на джуна пришел собеседоваться?? такие фразы недостойны мидла, а уж на синиора теперь даже рассчитывать не можешь».

                              Благо, Druu, ну это смешно ведь)) Опенсорс — это не булево «подходит/не подходит», это не черно-белое «хороший-плохой», это просто дополнительная интересная информация о потенциальном коллеге.

                              Вот почитать всех комментаторов — непонятно как оценивать потенциальных кандидатов вообще.
                              — Задачки нельзя — несчастный разработчик не может тратить свое драгоценное время на алчных работодателей
                              — На листочке/доске нельзя — нежный разработчик может быть травмирован стрессом от того, что пишет ручкой
                              — Ноут дать нельзя — как вообще можно разрабатывать на чужой машине, где нету IDE, да и вообще, как можно писать какой-то код, не сидя в удобном кресле и когда на тебя смотрят, это ведь ужасный стресс.
                              — Алгоритмы спрашивать нельзя — это ведь только олимпиадники их решают, а в реальной практике такого не используется, так что все позабывалось
                              — Опенсорс смотреть нельзя, ведь у каждого программиста трое детей, 10 лет, 2 лет и новорожденный, он ответственный отец, а значит не до опенсорса ему.

                              Такое впечатление, что кандидата я должен оценивать при помощи астрального шара. В резюме люди врут, серьезно.
                              * Пишут «писал хайлоад», а когда спрашиваешь — «все пишут, вот и я написал, но у нас было максимум 100 запросов в сутки».
                              * Пишут «паттерны проектирования», а когда спрашиваешь — они делают удивленные глаза и говорят: «а что это?». Блин, чувак, ты хоть свое резюме прочитай перед собеседованием, если тебе его друг-программист писал.
                              * Не могут рассказать, как бы они написали игру орел-решка (загадываешь сторону, комп подбрасывает монетку и отвечает, угадал ли ты). Ну да, такую что в 5 строчек пишется.
                              * Пишут «10 лет опыта, Senior JS Developer», а никогда не слышали терминов «прототип», «замыкание», не слышали о методе «bind» и не знают, какой баг будет в этом примере, а если им укажешь на баг — не могут придумать ни одного решения:

                              <button>0</button>
                              <button>1</button>
                              <button>2</button>
                              <button>3</button>

                              var buttons = document.querySelectorAll('button');
                              
                              for (var i = 0; i < buttons.length; i++) {
                                  buttons[i].onlick = function () {
                                      alert(i);
                                  }
                              }


                              Серьезно, со всеми этими приколами я сталкивался, когда собеседовал народ в Wargaming на позицию Senior Javascript Developer. Они 10 лет вставляли пару снипетов на JQuery со StackOverflow в 5 разных конторах и так и жили и у них довольно неплохое резюме — куча контор, сначала Jun, потом Mid, а в последней уже Senior был, а уровень — максимум на очень слабого миддла.

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


                              1. Druu
                                01.04.2018 12:07

                                > Такое впечатление, что вы представляете потенциального работодателя/собеседующего такими себе мудаком

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

                                > Вот почитать всех комментаторов — непонятно как оценивать потенциальных кандидатов вообще.

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

                                > * Пишут… пишут… пишут…

                                А если у него три тудулиста на гитхабе, да еще и непринятый пр в мобх, то это, конечно, показатель. Что и в хайлоаде, и в паттернах, и кофе хорошо заваривает. Так что ли?


                    1. igor_suhorukov
                      01.04.2018 12:34

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


                  1. saboteur_kiev
                    31.03.2018 18:56

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

                    Не хватает контрибьюторов? Значит проект умрет. Это не плохо и не хорошо, это так работает.


              1. speller
                31.03.2018 05:47
                -1

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


        1. Mehdzor Автор
          29.03.2018 12:10

          Зачем задавать вопросы? Лид должен сам всё выдать и так. С потрахами. Он же лид, а не джуниор.

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


        1. KYuri
          29.03.2018 13:31
          +1

          Кому должно?

          Лид должен сам всё выдать и так. С потрахами.

          Кому должен?
          А если он не хочет никого потрахивать?


          1. Staltec
            30.03.2018 05:09

            Компетентный тим/тех лид должен уметь потрахивать. Это моё официальное заявление!


        1. singeorange
          30.03.2018 12:45

          С «потрАхами» — волшебно!


      1. Ragnar_by
        29.03.2018 12:47
        +4

        Вряд ли идеологическому лидеру по разработке ИИ, например, кто-либо задаст вопрос про big-O.

        И сразу вспоминается история про разработчика Homebrew


        1. AllexIn
          30.03.2018 10:38

          Он же сам потом писал, что не прав был с жтим твитом.


          1. Mehdzor Автор
            30.03.2018 15:11

            Под пытками и землю плоской называют.


      1. babylon
        29.03.2018 15:47

        Это не способность рекрутеров понять ваши скиллы. Им нужно чтобы ваши скиллы соответствали их представлениям.


  1. mark_ablov
    29.03.2018 11:36
    +3

    Решение задачи про монеты
    Всего монет N, делим их на две кучи — 20 и (N — 20).
    Пусть в первой куче нам попалось X решек, значит во второй их (20 — X).
    Чтобы добиться равенства просто переворачиваем все монеты в первой куче, X решек превращаются в X орлов, а (20 — X) орлов в (20 — X) решек.


    1. Mehdzor Автор
      29.03.2018 11:47
      -1

      А если, например, в первой куче нет монет с решкой наверх? То получится в одной N, а в другой 20. Но логика правильная была.


      1. Mehdzor Автор
        29.03.2018 11:56

        А, неправильно про разделение прочитал. Тогда все правильно, извиняюсь.


      1. mark_ablov
        29.03.2018 11:56
        +1

        Заголовок спойлера
        Ок, пусть монет будет 100.
        80 орлов, 20 решек.
        В первой куче (по вашим словам): 20 орлов и 0 решек
        Во второй: 60 орлов и 20 решек.
        Переворачиваем монеты в первой куче и получаем: 0 орлов и 20 решек
        Видим что в обеих кучах по 20 решек. чтд.


        1. Xtray
          29.03.2018 14:52

          Если в условии написано, что монет-решек всего 20,
          и если все они попали в первую кучку,
          то во второй не 60 орлов + 20 решек, а просто 80 монет-орлов.


      1. saboteur_kiev
        29.03.2018 17:39
        -1

        Ну например у вас в условиях вообще не указано, что в мешке — четное количество монет.


        1. exehoo
          29.03.2018 17:47
          +1

          А это не влияет на решение, как ни странно =)


          1. saboteur_kiev
            29.03.2018 17:59
            -1

            Это только если все монеты на ребро ставить


        1. RolexStrider
          29.03.2018 21:51

          Да, но ведь и не указано, что кучи должны быть равными. Почему-то пытаясь решить эту задачу, очень многие (включая меня) откуда-то вот это несуществующее условие про «равные» в голове нарисовали. И всё, с этим условием — задача уже нерешаема.


          1. gleizer
            30.03.2018 07:16

            По-этому просто сгребаем все в одну кучу, и перекладываем во вторую по одной, пока не освободимся…


            1. Ivan22
              30.03.2018 17:54

              Решение методом перебора. Мое любимое!!!


            1. Agranatmark
              30.03.2018 22:10

              Да, берем и все монеты переворачиваем орлами вверх.


    1. Alesh
      29.03.2018 15:39
      +1

      ОМГ, не ужели есть кто-то кто впервые видит эту задачку на хабре)


    1. Nordicx86
      29.03.2018 16:15
      +1

      а что простые решения отменили?
      посчитать, разделить, пощупать(лизнуть), перевернуть…


      1. bakhirev
        29.03.2018 16:42
        +1

        поставить все монеты на ребро в обоих кучках


      1. AngReload
        29.03.2018 18:12

        Мне почему-то сразу брутфорс на ум пришел:


        1. Собрать монеты в две кучи — в первой 10 шт., во второй остальные;
        2. Спросить, равное ли количество решек в кучах?
        3. Если нет, добавить в кучу#1 одну монету из кучи#2, вернуться ко второму пункту;
        4. Если да, можно собрать деньги и уходить.


      1. Krypt
        29.03.2018 19:32

        А зачем? Задача явно математическая. А значит стороны монет отличаются столько цветом и ядовиты :D


    1. KinLTD
      29.03.2018 18:13

      Подождите. А если проще: делим кучу на 2 части и на ощупь отбираем решки поровну в обе кучи?


    1. bro-dev
      29.03.2018 19:20
      -1

      Сработает только если их больше или равно 40.


      1. mayorovp
        29.03.2018 20:14

        Почему?


        1. bro-dev
          30.03.2018 03:16

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


          1. mayorovp
            30.03.2018 06:54

            Если я отделил 20 и там оказались все решки — то после переворота этих 20 в друх группах будет одинаковое количество решек: 0 из 20 и 0 из 18.


            1. bro-dev
              30.03.2018 07:14

              И? решение то не такое предложено, а заранее не узнать как именно произошло разделение.


              1. mayorovp
                30.03.2018 07:21

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


                1. bro-dev
                  30.03.2018 10:10

                  Значит пост про таких как я.


                1. saboteur_kiev
                  31.03.2018 18:58
                  -1

                  -


    1. snakecase
      30.03.2018 09:43

      `


  1. Mehdzor Автор
    29.03.2018 11:45

    (удалено)


  1. dremdem
    29.03.2018 11:47
    +3

    Прямо в точку. Тут были молодцы, которые просили сделать тестовое задание. Я спрашиваю «Сколько его делать по времени?». Отвечают: День. OMFG! День! При том что ставка в районе 25-30$ в час это выходит минимум 200$. Платить понятно никто не собирается.


    1. Steed
      29.03.2018 16:23
      +1

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


      1. dremdem
        29.03.2018 17:29

        Вопрос был задан и ответ был отрицательный.


    1. JekaMas
      29.03.2018 16:51

      Это рынок. Бывает и выгодно делать. Если предложение достаточно высокое, например. Если бы разговор шел про 80$ час при успешном тестовом, то согласились бы попробовать?


      1. dremdem
        29.03.2018 17:45

        For sure. Но как я написал выше это все for free. Я бы и согласился и за 25$ в час при успешном тестовом. В таком случае это особо не отличается от обычного мелко-среднего контракта на фриланс-бирже где собственно этот контакт и был найден.
        На самом деле в последнее время появилась просто аллергия на потерянное время.

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


        1. JekaMas
          29.03.2018 19:28

          I know your pain!
          Все так. И про тестовые тоже. Еще забавно, когда какое-то задание становится модным и уже в 4-5 раз его получаешь.


          1. Areso
            30.03.2018 19:29

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


            1. JekaMas
              30.03.2018 19:34

              Иногда работает. Иногда приходится делать вид, «решая».


    1. Eldhenn
      29.03.2018 21:25

      Задачу делать день или вам даётся день на задачу? Вы бы предпочли, чтобы вам дали 20 минут и секундомер? Я давал на тестовое задание… (сегодня четверг, ну значит, в понедельник, в первой половине дня вторника я жду ответ), хотя работы (с учётом набивания кода) там было на пару-тройку часов. Как раз потому, что люди все взрослые, занятые, текущая работа, семья, прочая личная жизнь.


      1. dremdem
        31.03.2018 14:50

        Было сказано, что на выполнение задачи уйдет день. Как я уже сказал выше, у меня на потерянное время в последнее время дикая аллергия. Это мое чистое ИМХО разумеется. Возможно кто-то, как при поступлении в Шаолинь готов первый год мести полы в монастыре постигая безначальное ДАО.

        Я - нет
        set_boring_mode(True)

        У меня основная работа, 2 горячих проекта, 2 домашних проекта и очень хочется учиться новому.
        20 лет назад, да, я бы с радостью взялся за тестовое задание и даже провалив его радовался, что бесплатно поимел опыт.
        Но мир изменился (с)
        Все на удаленке и все на аутсорсе. Время не просто деньги, у него есть названая ставка.
        Раньше я думал, как круто будет переехать и работать в штатах. Теперь stackoverflow подсовывает вакансии с тэгом «Remote — ok» и я понимаю, что переехать-то можно но не обязательно навсегда и именно в штаты.
        set_boring_mode(False)


    1. Kwisatz
      31.03.2018 14:29

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

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


  1. IIvana
    29.03.2018 11:52

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


    1. iproger
      29.03.2018 18:03
      +2

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


      1. Skerrigan
        30.03.2018 10:49

        лишь бы не сыплющиеся форды

        Ответный зануда мод
        Так может быть вы не в курсе, но Форд то, «того», то бишь ушел в мир иной. И с текущим положением дел он вполне может и не иметь никакой связи. Ваш кэп.

        Attention — я не Ford-fanboy, люблю иную марку.


  1. terrier
    29.03.2018 11:58
    +1

    Посмотрите приложение маркета, фейсбука, мейлру почты, контакта, ютуба, альфа банка и так далее, и далее, и далее. Как впечатление?

    Да, фиговенькие приложеньки, особенно по сравнению с продукцией вашей компании OOO «Хэндисофт», которая сделала для Департамента торговли и услуг города Москвы такие потрясающие продукты как… эээ… нууу… как что, кстати?


    1. Mehdzor Автор
      29.03.2018 12:01

      Я в этой компании 2 месяца проработал. Не знаю откуда инфа у вас.


      1. terrier
        29.03.2018 12:06

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


        1. Mehdzor Автор
          29.03.2018 12:15

          А у нас будет собеседование?)


          1. terrier
            29.03.2018 12:24

            Вряд ли. Мы не знаем как его проводить:(. Гугл с фейсбуком, оказывается не умеют собеседовать, а у их критиков нет значимых результатов, демонстрирующих преимущества их подхода.
            А вы сами не видите противоречия в том, что вы владеете потрясающим знанием о том, что ведущие мировые IT-компании неправильно ведут свои ключевые бизнес-процессы, но разработать приложение, которое не стыдно показать вам это не помогает?


            1. Mehdzor Автор
              29.03.2018 12:35

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


              1. terrier
                29.03.2018 12:48
                -9

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


                1. crmMaster
                  29.03.2018 15:21
                  -3

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

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

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

                  Все, что хотелось посоветовать автору — не идти в руководители, пока мозги не встанут на место (а встанут в тот момент, когда прочитав данный высер будет сделан вывод о синдроме графоманского бреда у автора статьи)


                  1. Skerrigan
                    30.03.2018 10:59

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


  1. vmm86
    29.03.2018 12:10

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

    У НЕ-гения с заиканием ситуация не сильно лучше.)


  1. Daniil1979
    29.03.2018 12:14
    +2

    Большое спасибо за статью, за выводы в ней, и отдельное спасибо за картинку!
    По поводу этой клятой квазилогической задачи (ненавижу их всеми фибрами души) — ответ какой? Собрать все монеты в одну кучу, и перекладывать по одной во вторую кучу, пока число монет решками вверх не сравняется в обоих кучах?
    Хотя если честно — мой ответ на такую задачу с вероятностью в 80% будет «Сами лазайте по башням колдунов, а мне такое не интересно. Прощайте.».


    1. Mehdzor Автор
      29.03.2018 12:18

      1. DzmitryM
        29.03.2018 15:49

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


        1. Mehdzor Автор
          29.03.2018 15:49

          https://www.youtube.com/watch?v=f1ZyHbKddUc — мультик с более внятной формулировкой задачи.


        1. khim
          29.03.2018 19:36

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


    1. Mehdzor Автор
      29.03.2018 12:21

      Но вариант с брут форсом тоже подходит)


      1. SaM1808
        29.03.2018 14:36

        Здраствуйте… я туплю или…
        Проще известные 20 решек перевернуть и хаотично разбросать монеты на две кучи. В обеих кучах число решек одинаковое == 0, условие соблюдается — выпускай злой колдун!
        Хотя и с пустыми руками…


        1. Mehdzor Автор
          29.03.2018 14:37
          +1

          Известно количество, но не расположение.


          1. SaM1808
            29.03.2018 14:39

            Сорри, но дочитал :)


            1. Jenly
              29.03.2018 17:27

              Спасибо за собеседование, мы вам позвоним


    1. horror_x
      29.03.2018 12:23

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


      1. exehoo
        29.03.2018 12:31

        не понимаю, каким образом эти задачи могут что-то сказать о кандидате.

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


        1. horror_x
          29.03.2018 13:00

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


        1. Druu
          29.03.2018 14:49
          +7

          > Как минимум: насколько устойчива нервная система кандидата

          Это собеседование будущего сотрудника МЧС или программиста? Если где-то при трудоустройстве проверяют нервную устойчивость — значит надо сразу сваливать оттуда. Потому что это одна из основных задач работодателя — обеспечить такие условия труда, в которых эту устойчивость демонстрировать не придется.


          1. TimsTims
            29.03.2018 16:13
            -3

            А если всё упало и горит, вас просят подключиться и помочь решить проблему с программой, которую вы разрабатывали?
            Или вы пишете идеальные программы, которые никогда не ломаются?
            Или ваши программы не настолько бизнес-критичные, что все задачи ставятся в бэклог, и спокойно чинятся в течение нескольких дней/недель/месяцев?
            ПС: ничего личного конкретно к Вам и вашим скиллам, просто разбираю конкретную ситуацию.


            1. horror_x
              29.03.2018 16:34
              +2

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


            1. DistortNeo
              29.03.2018 18:15

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


            1. mayorovp
              29.03.2018 20:27

              Не вижу повода для стресса в описанных вами ситуациях.


              1. TimsTims
                30.03.2018 14:54

                Не вижу повода для стресса в описанных вами ситуациях
                Я в целом тоже(хотя падения бывают разными), но как видно из комментариев ниже, для некоторых это действительно стресс:
                > Если предполагается что будет все падать и гореть — к черту это место работы

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


            1. Arris
              29.03.2018 23:06

              Если всё упало и горит — надо вызывать пожарных и эвакуировать персонал.


            1. Druu
              30.03.2018 09:16

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

              Если предполагается что будет все падать и гореть — к черту это место работы, если только все эти падения и горения не будут оплачены (вместе с сеансами релаксирующего массажа и сеансами психотерапевта, для восстановления нервов). Если же такие ситуации являются исключительными, то тогда можно с тем же успехом требовать от сотрудника уметь добывать огонь трением. Мало ли, на необитаемый остров с ним попадете?


            1. Skerrigan
              30.03.2018 11:06
              +1

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


              1. Estee
                30.03.2018 12:59

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

                вот это бесит так, что аж кушать не могу. а быстро реагировать на проблему — это не стресс


                1. Skerrigan
                  30.03.2018 13:57

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

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


                1. Kwisatz
                  31.03.2018 14:41

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

                  А все остальное оно как погода, есть и все тут. Слегка подбешивает но так блин везде.


                1. VolCh
                  31.03.2018 15:23
                  +1

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

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


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


          1. exehoo
            29.03.2018 16:38

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


            1. Arris
              29.03.2018 23:13
              +1

              Боюсь, под стрессоустойчивостью нынче понимается умение молчать в тряпочку, когда на тебя орёт начальство — раз, и два — готовность не посылать всех на три буквы, а вджобывать в 3 часа ночи за спасибо — потому что ведь завтра дедлайн!

              Ну и плюс, habrahabr.ru/post/352246/#comment_10730912

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


              1. exehoo
                29.03.2018 23:49

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

                А вот объявления, подобные этому, вызывают хтонический ужас.

                P.S. Кстати, часто под стрессоустойчивостью понимают простое умение подавлять агрессию при зачитывании техзадания, составленного заказчиком.


        1. Kwisatz
          31.03.2018 14:37

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


      1. BalinTomsk
        29.03.2018 18:29
        +2

        Помню в Амазоне наряду к 8 интервью, на одном из них еще грубо наезжать пытаются — типа проверить как буду себя вести при стрессе.
        Но я-то человек женатый — к оскорблениям и унижениям привык. :) Домой вечером не тороплюсь.


        1. igor_suhorukov
          29.03.2018 23:25

          5 за юмор!


        1. andersong
          30.03.2018 09:55

          Если глава главного коллектива в жизни допускает оскорбления и унижения (к любому его члену), то грош цена такому руководителю. )))


          1. Mehdzor Автор
            31.03.2018 15:02

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


        1. Kwisatz
          31.03.2018 14:48

          О. Встречал такое 8)
          Причем именно с хамством и криком. Спокойный и четкий ответ «нахер пошел» (уж простите) ввел собеседника в ступор.


    1. Mehdzor Автор
      29.03.2018 12:37

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


    1. HueyOne
      29.03.2018 17:14

      Вам в департамент безопасности.


    1. Kwisatz
      31.03.2018 14:35

      Сами лазайте по башням колдунов, а мне такое не интересно. Прощайте.

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


  1. exehoo
    29.03.2018 12:14
    +1

    они просто готовы больше прогибаться на этапе отбора

    Это ключевой момент в глазах рекрутера практически любой крупной компании. Не только при подборе IT-спецов, но и для вообще любой должности ниже директора-совладельца. Никакой супермегаспец не нужен, если не обладает т.н. «гибкостью». И да, большие конторы готовы мириться с ветром в голове у «гибких».
    Фирмы не заинтересованы в высоком качестве продукта, их интересует только маржа и стопроцентная послушность персонала. Если спец не мирится с маразмом на собеседовании, значит и маразма в задачах не потерпит, и тогда придется или долго и нервно объяснять спецу политическую необходимость красных линий зеленого цвета, или заново давать объявления, устраивать собеседования и т.п. и т.д. Контора просто экономит себе ресурсы, выбирая прогибающихся и нетребовательных. Исключения редки, увы.


  1. GarryC
    29.03.2018 12:20

    Но ведь должны быть и фирмы, в которых рисуют красные линии именно красным цветом?


  1. habradante
    29.03.2018 12:36

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


    1. Mehdzor Автор
      29.03.2018 12:41

      Согласен. Правда, я в такую крайность не впадал) Характер крайне важен. И ложно-отрицательные срабатывания крупные танки могут себе позволить за счет первой категории претендентов.
      Будут ли они лучшими? Трудно сказать. Где-то была статья, что как раз наоборот, но тут без пруфов.


      1. habradante
        29.03.2018 13:02

        Так в том-то и дело, что в крупные компании не нужны лучшие. На должность условного «рядового программиста» в условный Дудль стоят, условные 10 000человек, на должность условного тим лида — 1000человек, а на должность тех дира или ведущего инженера всея Дудля — 10человек. Вот и получается, что более тщательно отбирают тех, чья потенциальная должность выше. Потому что на более высокой должности человек принесет больше пользы и у него будут более дорогие ошибки.
        Придете в Дудль на должность разработчика — будете на собеседовании писать сортировку пузырьком, придете на должность тех дира — вас даже про язык программирования не спросят.


  1. TyVik
    29.03.2018 12:39

    Про то, что мало кто переходит даже в github профиль (я уже не говорю про блог или pet-project) — полностью верно. Недавно менял работу и на каждом собеседовании упоминал свой блог или проект и смотрел на реакцию — как правило её не было. Причём все норовят всучить тестовое задание; и ладно бы оно было на полчаса-час или хотя бы интересным, так нет! К тому же твой 10-летний опыт разработки их вообще не волнует. С другой стороны это и плюс — сразу понятно отношение потенциального работодателя к разработчику.


    1. igor_suhorukov
      29.03.2018 23:31

      У некоторых интервьюверов вызывало агрессию, когда спрашивал что они думают про мои доклады на конференциях, публикации на хабре и dzone, мои хобби-проекты из github которыми регулярно пользуются (хотя бы даже по статистике в maven central). Я расценивал эту злобу как зависть.


  1. nobodyhave
    29.03.2018 13:06
    +1

    Довелось недавно участвовать в довольно большом количестве интвервью. И все кандидаты по резюме как на подбор — больше 3-х лет опыта, разные там проекты, специалисты во всем.
    Начинаешь разговаривать, спрашивать про проекты, про достижения, прочие вопросы. И вроде все хорошо. Проходит час, начинаешь спрашивать технические вещи — и вдруг тишина. Кандидат не может ответить на простейшие вопросы. Даешь элементарную задачу — сделать разворот строки. Из «habrahabr» сделать «rbaharbah». И ведь не могут. Кто-то делает, но с кучей ошибок. И ни один не вспомнил про то, что в Java есть StringBuilder, который может это сделать из коробки, хотя никаких ограничений не ставилось.
    Отсюда и появляется подход — вы мне сначала связный список разверните, а потом мы уже поговорим про ваши проекты. А то тратить впустую час на каждого кандидата несколько расточительно.


    1. horror_x
      29.03.2018 13:16
      +3

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


      1. nobodyhave
        29.03.2018 13:30

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


        1. Skerrigan
          30.03.2018 11:15

          А я и не просил никого вспоминать

          И ни один не вспомнил про то


          Говорю же — ограничений не было

          Что я не вижу в предыдущем сообщении. Гипотетический вывод — вы врете. Где-то в чем-то, осознано или нет, но врете.

          Даешь элементарную задачу — сделать разворот строки. Из «habrahabr» сделать «rbaharbah». И ведь не могут

          Незачем помнить то, что гуглится. Кэш в мозгу сверх-ценен. Плохо, когда начальство подбирает из тех, кто его расходует плохим образом.

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


          1. nobodyhave
            30.03.2018 14:24

            Что я не вижу в предыдущем сообщении. Гипотетический вывод — вы врете. Где-то в чем-то, осознано или нет, но врете.

            Ммм? Вспоминать не просил. Про то, что никто не вспомнил — крик души.
            «И ни один не вспомнил про то, что в Java есть StringBuilder, который может это сделать из коробки, хотя никаких ограничений не ставилось
            Незачем помнить то, что гуглится.

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


            1. Skerrigan
              30.03.2018 14:46

              хотя никаких ограничений не ставилось

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

              Ну «желания vs действительность», это уже кхм… короче не совсем объективно (в отличии от реальной потребности).
              Как ситуация выглядит с моей колокольни? Гуглом в 95% случаев я базовую элементарщину найду быстрее, и, уже сделанную лучше, чем я буду что-то свое мастерить. Поэтому глупо помнить элементарщину — она не важна. Её ведь не продать. И задач, как таковых, она не решает. Задачи решают «решения». И эти «решения» почти всегда — это огромный массив кода (в том или ином виде).

              Микро-оффтоп: в 2014-ом гугл не выдавал ничего в поисковом выхлопе на тематику «Java JSON query selectors». И я сел писать свое решение с нуля.
              Это уже в 2017-ом, из спортивного интереса, нашел проект, что в 2014-ом стартовал. И, удивительно, мой велосипед, ровно как и тот проект .
              Моя версия и эта библиотека оказались даже вполне совместимые друг с другом. Хотя писалось без взаимо-ведома. Ибо так очень сильно радует:
              "$.cities.city[0].streets.range".

              P.S. Еще раз извиняюсь за претензии.


            1. Kwisatz
              31.03.2018 15:05

              Возможно стресс, возможно вопрос был задан среди сложных.
              Знаете, хорошо проходит собеседования вовсе не тот кто хорошо работает. Хотя бывают исключения.

              По вашему вопросу:
              — наверняка есть функция которая разворачивает строку
              — а работает ли она с юникодом?
              — наверняка нет, значит mb_substr в цикле
              — а вообще давайте спросим какая кодировка
              — по опыту ответ наверняка «любая»
              — вот тут совсем все становится грустно, ибо определение кодировки не самая веселая и очевидная задача


        1. staticlab
          31.03.2018 11:39

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

          Суть в том, что нюансы в такой задаче прямо связаны с юникодом, и требуют помнить, какой необходим метод для получения многобайтных символов (особенно, если нужно корректно развернуть не только текст на русском, но и смайлики). И если в одной компании потребуют расписать StringBuilder.reverse(), то в другой ещё и скажут: "Э, уважаемый, а зачем вы городите велосипед, если есть готовый метод reverse()". И пофиг, что reverse() скрывает всю сложность задачи и понимание сути происходящего.


          1. nobodyhave
            31.03.2018 16:16
            +1

            Поверьте, ни один из кандидатов не подошел даже близко к нюансам. А про юникод ни один не заикнулся. Их познаний в строках в Java не хватало даже на то, чтобы знать, что они иммутабельны. По сути, что я хотел бы услышать от кандидата 2 вещи. Попытку использовать StringBuilder.reverse() и затем свое решение. Первое показывает, что кандидат не будет писать свой велосипед и знает стандартную библиотеку. Вместо стрингбилдера можно и другую библиотеку, но попытки затащить guava в проект ради одного метода меня тоже не сильно радуют, пусть proguard и порежет все лишнее.
            Свое решение можно написать банальное — дернуть toCharArray(), развернуть массив на месте, создать новую строку из массива. И я в упор не вижу, что тут сложного, и почему все порываются это нагуглить.
            А вот уже потом идут все вышеописанные нюансы. 99% задач решится вышеописанным. Если человек про них знает, то совсем хорошо. Если нет, то разберется на месте.


      1. lehnh
        29.03.2018 13:47
        +3

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


        1. JekaMas
          29.03.2018 17:02
          -1

          Ну Яндекс — это просто средняя по предложению на рынке компания, далеко не топ, если не нижние процентили…
          Вот и методы соответствующие.


          1. lehnh
            29.03.2018 17:04
            +1

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


            1. JekaMas
              29.03.2018 17:11

              Если разбивать рынок по предложению, то Яндекс в топ не попадет. Видимо, окружение в виде ооо Ромашка влияет. Или то, что у hr тоже не лучшие по рынку условия и следовательно, не лучшие hr идут в Яндекс.


              1. lehnh
                29.03.2018 17:13

                Как раз hr вроде неплохие. Собеседование проводил кто-то из инженеров, т.е. должен был понимать. Ну и на моей памяти, hr из Мирантиса мигрировала в Яндекс, значит условия предложили лучше Оо


                1. JekaMas
                  29.03.2018 17:17

                  Это пример плохих HR. Если они не управляют процессом найма и инженеры его проводят, как захотят.


                  1. lehnh
                    29.03.2018 17:18

                    HR не может определить насколько хорош список вопросов для инженеров просто в силу своей компетенции. Вопрос в другом — кто спустил инженерам подобный «вопросник».


                    1. JekaMas
                      29.03.2018 17:22

                      Может. Можно провести двойное слепое тестирование на уже работающих работниках, например.


                    1. Steed
                      29.03.2018 18:16

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


                      1. Skerrigan
                        30.03.2018 11:18

                        Солидарен — Яндекс «большой и такой разный» (не сарказм).


      1. crmMaster
        29.03.2018 16:29
        -7

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

        Если хотя бы год отработал в Java стеке, StringBuilder должен уже в подкорке находиться. Это те знания, которые надо выдавать инстинктивно, а не лезть в гугл.

        Я годик программировал на яве 5 лет назад, и то помню StringBuilder.reverse(). А если человек, претендующий на должность Java будет это гуглить — то сразу вопрос — в чем причина? И ответов на это обычно два — или у него память как у золотой рыбки, или он просто все свои N лет опыта тусил на кухне с кофейком и девочками из PR отдела, вместо написания кода, а значит грош цена его резюме.


        1. sved
          29.03.2018 17:44
          +4

          Лет 12 на джаве пишу, но я не знал про StringBuilder и даже не догадался бы в нём посмотреть. Скорее бы смотрел в StringUtils. ИМХО этот метод там избыточный, там ему не место и реверс строк — это редкая задача.


          1. crmMaster
            29.03.2018 18:26

            > Лет 12 на джаве пишу, но я не знал про StringBuilder
            > ИМХО этот метод там избыточный

            12 лет писать и не знать про базовые вещи. Вот об этом и речь — по резюме — 12 лет опыта, а в реальности — отсутствие знаний о базовых библиотеках используемого инструмента. Спасибо что подтвердили мои тезисы своим примером. Тащите и дальше org.apache.commons.lang для простейших операций со строками.


            1. Neikist
              29.03.2018 18:35
              +1

              Не писал на java ни дня, но совершенно случайно как раз про StringBuilder и reverse слышал. Вообще не показатель.


              1. khim
                29.03.2018 20:26
                +1

                Как ни странно — соглашусь с обоими сторонами! Если человек не знает про StringBuilder.reverse — это вообще ни разу не минус.

                Но вот если человек минут 15 пытается вспомнить о том, как заменить одну букву в обьекте типа java.lang.String — то это таки клиника и 5 лет работы это не компенсируют. Реальный случай, кстати.


                1. zagayevskiy
                  29.03.2018 20:34
                  +1

                  Заменять буквы в объекте java.lang.String нельзя, это раз. Итерироваться по строке, это, внезапно, тоже нифига не просто, это два. Перекладывание строки туда-сюда это не то, чем люди на работе занимаются, это три.


                  1. khim
                    30.03.2018 01:41

                    Перекладывание строки туда-сюда это не то, чем люди на работе занимаются, это три.
                    Не совсем так. Сладкая тройка (String/StringBuilder/StringBuffer) — это такой микрокосм всего того, чем «занимаются на работе» 99% времени (неизменяемый обьект/фабрика без синхронизации/фабрика с синхронизацией).

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

                    И вас нужно бы отсеять… несмотря на 12 лет работы и прочее. Вот оттуда все эти задачки и берутся.


                    1. zagayevskiy
                      30.03.2018 08:43

                      StringBuilder это не фабрика, а билдер, лол. Я не знаю, где на это тратят 99% времени, у меня есть для этого AutoValue и AutoFactory. Это так, на всякий случай, чтобы руками не писать.
                      Кто вам сказал, что я не знаю чего-то? Я сказал, что итерироваться по строке это нифига не просто. И написать этот реверс на 100% правильно ещё сложнее. Я думаю даже, что почти никто в этом треде за день этого не сделает. И тут ниже говорят, что даже реверс стрингбилдера не на 100% правильно работает.


                      1. horror_x
                        30.03.2018 13:56

                        Я думаю даже, что почти никто в этом треде за день этого не сделает.
                        Ну если вы про учёт UTF16-чанков, то вы явно переоцениваете сложность задачи.


                        1. mayorovp
                          30.03.2018 15:09

                          Еще надо символы-модификаторы учесть.


              1. zagayevskiy
                29.03.2018 20:32

                Если 12 лет и н слышал — очень даже показатель. Товарисч, наверное, и строки в цикле конкатенирует (2 новых объекта на каждую конкатенацию — тот самый StringBuilder и сама новая строка).


                1. sved
                  30.03.2018 05:12

                  Я бы сказал по другому:
                  Если вы постоянно используете Builder то есть повод задуматься.
                  Возможно не знаете про темплейтные движки
                  Возможно вы не используете PreparedStatement-ы
                  Возможно вы генерируете XML руками
                  Возможно вы настолько некомпетентны что придерживаетесь мифа, что String s = «aad»+«sgfdds» это медленнее чем append.

                  И кстати ваш комментарий про циклы и новые объекты может говорить о том что вы не представляете как на самом деле происходит работа над перформансом в реальном проекте


            1. 0xd34df00d
              29.03.2018 20:57
              +2

              Я пишу на С++ тоже в райне лет 12-14, и каждый раз, когда мне нужно сделать что-то чуть нетривиальное с потоками ввода/вывода — я гуглю. Потому что мне в моих задачах потоки надо дёргать в среднем примерно раз в год.

              А кто-то тоже посчитает это базовыми знаниями.


              1. DistortNeo
                29.03.2018 21:34

                Я, кстати, вообще не использую потоки, предпочитая printf.
                Ну не нравится мне, как они реализованы в C++.


                1. 0xd34df00d
                  29.03.2018 21:50

                  Они мне, с одной стороны, не нравятся, с другой — не нужны. std::cout << "!!! " << foo << std::endl; я написать могу для отладочно-исследовательских целей, а так данные либо приходят ко мне (и уходят от меня) по сети, либо прямо в функцию (если я библиотеку пишу), либо их настолько много, что тормоза потоков (и принтфа/сканфа тоже) становятся очевидны, и я беру boost::spirit для парсинга, или mmap + string_view для отсутствия пары лишних копирований, или что-нибудь такое.

                  Интересно, спрашивают ли про это всё любители вопросов про обращение строки потоки.


            1. sved
              30.03.2018 05:01

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

              Давайте рассуждать логически.
              Не очевидно, что StringBuilder содержит реверс. Например ни Arrays ни списки не содержат на порядок более полезного reverse.
              Поэтому если вы знаете про реверс в билдере, значит вы либо целенаправленно читаете по ночам Java API, либо использовали его. Но я, честно говоря, с трудом могу представить где он может понадобиться в реальной жизни.


        1. Hayao
          29.03.2018 17:44
          +6

          Я это загуглю одни раз или два, а потом буду писать это на автомате в своем проекте, где этот метод/утилита нужен часто. Задачи у всех узкие, никому не нужна вся стандартная библиотека каждый день.
          reverse() вы использовали в каком-то проекте или узнали когда изучали StringBuilder/готовились к собеседованию?
          Я сейчас даже не вспомню, разврачивал ли я строку когда-либо в коммерческих проектах или нет.


    1. rework
      29.03.2018 13:33
      +1

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


      1. nobodyhave
        29.03.2018 13:46

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


        1. rework
          29.03.2018 13:51
          +1

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


          1. nobodyhave
            29.03.2018 14:18

            Ну, не так уж и глупо. Например можно выяснить что кандидаты не в курсе о том что:
            — array[array.length] вызовет исключение
            — что строки в Java иммутабельны
            — что string1 + string2 даст новую строку, а не изменит старую
            — что рекурсия потребляет память
            — что char занимает 16 бит, а byte 8
            и прочих банальных вещах.


            1. i360u
              29.03.2018 14:35
              +5

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


              1. nobodyhave
                29.03.2018 14:49
                +1

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

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

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


                1. i360u
                  29.03.2018 15:06
                  +1

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

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


                  1. nobodyhave
                    29.03.2018 15:23

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


                    1. i360u
                      29.03.2018 15:45
                      +5

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


                1. Neikist
                  29.03.2018 16:08

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


                1. Nordicx86
                  29.03.2018 16:27
                  +3

                  расстрою вас, но в условиях стресса накосячат процентов 80% в результате вы упустили 8 из 10 нормальных спецов и один сам ушел посмотрев на фигню в задании.
                  Личный опыт когда «задачку» которую решал буквально вечером перед собеседованием(сисадминское про перечисление пользователей в AD на PS) на собеседовании отбило из памяти напрочь…


                  1. nobodyhave
                    29.03.2018 17:04

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


            1. ChePeter
              29.03.2018 16:29

              В python символ занимает от одного до четырех байт. Это если в utf-8


              1. nobodyhave
                29.03.2018 17:06

                Как видно из сообщения, речь идет про Java. char там является одним из примитивных типов и занимает 16 бит. А байт 8. Поэтому попытка разворачивать не символы в строке, а байты приведет к некорректному результату.


                1. ChePeter
                  29.03.2018 17:08

                  А как в java хранится utf-8 символ?


                  1. nobodyhave
                    29.03.2018 17:24

                    Специально никак. Но можно сделать
                    byte[] utf8Bytes = original.getBytes(«UTF-8»);
                    Где original это экземпляр класса String


                    1. ChePeter
                      29.03.2018 17:41
                      +1

                      Интересно, пришлось лезть в оракл доки.
                      Java использует по умолчанию utf-16 в которой символ может занимать два или больше байт U+10FFFF. Из текста не совсем ясно как эти символы обрабатываются
                      docs.oracle.com/javase/specs/jls/se10/html/jls-3.html#jls-3.1


                      1. Artyomcool
                        29.03.2018 18:28
                        +1

                        Тоже хотел об этом сказать. Если оперировать просто char'ами, то сломаются строки с эмоджами в частности.


                        1. Artyomcool
                          29.03.2018 18:34
                          +1

                          Кстати, StringBuilder.reverse защищает только от простых случаев, с точностью до одного code point.


                          1. zagayevskiy
                            29.03.2018 20:38

                            Наконец хоть кто-то сказал. А задачка-то перестаёт быть простенькой. Больше 5 лет пишу на джаве, и я вот так сходу не реверсну это строку на 100% правильно.


                            1. nobodyhave
                              29.03.2018 21:38

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


                              1. Artyomcool
                                29.03.2018 22:45
                                +1

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


                              1. VolCh
                                30.03.2018 21:28

                                Вы ещё хотите, чтобы utf-16 наизусть помнили и распозновали символы, написание которых совпадает? :) Или было оговорено явно, что нет символов, в utf-16 занимающих больше 16 бит?


                                1. nobodyhave
                                  31.03.2018 16:18

                                  Ни один человек на собеседовании не заикнулся про кодировки и utf-16. Поэтому они по сути пытались развернуть ASCII строку. И многие не смогли…


            1. zagayevskiy
              29.03.2018 20:35

              что string1 + string2 даст новую строку, а не изменит старую

              И по ходу дела ещё создаст пресловутый StringBuilder


              1. Artyomcool
                29.03.2018 22:43

                Зависит от версии Java и JVM, может и не создать.


    1. Druu
      29.03.2018 14:55
      +3

      > И ни один не вспомнил про то, что в Java есть StringBuilder, который может это сделать из коробки, хотя никаких ограничений не ставилось.

      Любому здоровому человеку очевидно, что если ставится задача перевернуть строку — то стандартными ф-ми пользоваться нельзя, даже если это явно не указано.


      1. avost
        29.03.2018 15:28
        -3

        Серьёзно? С чего бы это? Видимо, я — нездоровый человек.
        А когда завтра вашему "здоровому" человеку поручат на реальной работе набростать макетик сайтика он засядет на год за написание своего веб-сервера? Вдруг, он и на этот раз решит, что стандартными средствами пользоваться нельзя, полюс синдром NIH, ну, а задать прямой вопрос (и на собеседовании тоже!) ему религия "здорового человека" не позволяет. В шоппу такого здорового человека.


        1. Neikist
          29.03.2018 16:21
          +3

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


          1. Artyomcool
            29.03.2018 19:24
            +1

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


            1. Druu
              31.03.2018 08:09

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

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


              1. kibergus
                31.03.2018 09:21
                +1

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

                Посмотрите, что такое архитектурная секция у фейсбука. Она вся про уточняющие вопросы т.к. исходно задают очень общий вопрос вида «напиши youtube».


          1. avost
            30.03.2018 15:42

            Ну, а подумать совсем никак? А подумать и потом спростить? Если мне задают подобный вопрос, я, если знаю точно о существовании решения в библиотеке пересправшиваю, — можно ли его использовать. Если не знаю точно, переспрашиваю иначе, — а нет ли, случайно, в стандартной библиотеке какого-либо средства для решения этой задачи? — всегда такой вопрос вызывает у опрошающего положительные эмоции (и, возможно, плюсики в мою карму соискателя). Дальше — по-разному. Иногда говорят, — да, всё круто, молодец. — Иногда — нет такого нет, — или, — есть, но попробуйте ручками. — А вот если я показывают себя полным дебилом здоровым человеком и сходу бросаюсь переизобретать велосипед, они ведь так и думают, — ну и дебил здоровый человек! — Меня больше устраивает позиционирование себя в качестве ленивого и умного программиста, чем жизнерадостного трудолюбивого идиота. Ну, а если отказывают — значит им нужен был именно трудолюбивый идиот и это, определённо, не была работа моей мечты.


            1. Neikist
              30.03.2018 16:36

              Вот хз, у меня к сожалению всего одно собеседование было, после которого меня и взяли, так что статистика так себе, но если погуглить такие задачки (а соискатель при подготовке 100% так и будет делать) то все статьи которые я видел на эту тему — всегда расписывают «велосипеды», а не методы стандартных библиотек. По моему вполне логично на них и ориентироваться. Так то и сортировка, и поиск давно уже реализованы, чем они принципиально отличаются от разворота строки что для них велосипеды писать надо, а для разворота не надо?


              1. nobodyhave
                31.03.2018 16:28
                +1

                Из примеров про сортировку. Сортировка слиянием (merge sort) естественно давно написана. Но ее можно использовать не только для сортировки. Например, при ее помощи можно посчитать количество инверсий в строке/массиве. И это будет быстрее, чем считать в лоб. Но для этого надо знать, как устроена сортировка.
                Быстрая сортировка тоже давно написана. Но ее часть может быть например использована для быстрого поиска К-го элемента в массиве (quick select). Опять же надо знать, как сортировка устроена.
                Оба приведенных мною примера конечно можно нагуглить. Но когда-то люди их придумали именно на основе изучения других алгоритмов, в частности сортировок.
                И пример из личной практики. Человек, явно не понимающий ничего в сортировках, умудрился делать вставку в сортированную коллекцию за O((N^2)*lgN), вместо O(lgN). Что при размере коллекции 1000 элементов дает примерно 7 000 000 (7 миллионов, Карл) операций, вместо 7.


                1. Neikist
                  31.03.2018 16:54

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


                  1. nobodyhave
                    31.03.2018 17:03

                    Дак и нет такой границы. В данном случае вполне логично спросить на счет библиотечной функции. Если говорят, что этого мало, то тогда уже пилить велосипед. И на самом деле я не встречал на собеседовании ни разу просьбы написать стандартный алгоритм (textbook algorithm). Но встречал задачки, которые им решались. И не только одним. На одном собеседовании я например использовал Дейкстру, хотя от меня ожидали поиск в ширину, так как он оптимальнее. Но интервьюер дискуссией все равно остался вполне доволен.


        1. Druu
          31.03.2018 08:00

          > А когда завтра вашему «здоровому» человеку поручат на реальной работе

          А тут не работа, тут тестовое задание. И _здоровый_ человек учитывает контекст ситуации.


    1. DistortNeo
      29.03.2018 18:45
      +2

      Даешь элементарную задачу — сделать разворот строки.

      Не такая уж она и элементарная, если это корректный разворот UTF-8 или UTF-16 строк, а не просто массива из char.


    1. Artyomcool
      29.03.2018 19:21

      В формулировке «развернуть строку в Java» за разумное время без дополнительных ограничений на алфавит задача нерешаема (ибо есть как минимум эмоджи). Если рассматривать как ограничения

      Из «habrahabr» сделать «rbaharbah»
      то даже ваш пример с массивом байт подойдет.


      1. zagayevskiy
        30.03.2018 11:57

        Если как ограничение рассматривать это, то можно сделать проще(доведём до абсурда)


        fun reverse(input: String) = if (input == "habrahabr") "rbaharbah" else throw IllegalArgumentException("$input not supported")


  1. saw_tooth
    29.03.2018 13:27

    стажеры такие животные, которые не обладают навыками. И ранее ничего полезного они не делали

    Это пример, хорошего превентивного отношения к кандидатам, или шутка?


    1. Mehdzor Автор
      29.03.2018 13:31

      Про животных — шутка. Про навыки — это быль, как правило.


      1. Ugrum
        29.03.2018 14:53

        которые не обладают навыками. И ранее ничего полезного они не делали


        Вот это вы мне сейчас живо напомнили приход на производство после техникума — «А теперь забудьте всё, чему вас там учили!»


        1. Mehdzor Автор
          29.03.2018 15:11

          И ранее ничего полезного они не делали

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


  1. rework
    29.03.2018 13:41
    +2

    Больше всего раздражают собеседования без компьютера, когда просят написать код на листочке… Ээмчто? Может быть в вашей компании разработчики и в реальных проектах код на бумаге пишут, а дизайнеры акварелью рисуют макеты?


    1. horror_x
      29.03.2018 13:55

      Вот, кстати, да. Ни отладить, ни отредактировать, не говоря уже об ощущении нелепости ситуации.


    1. i360u
      29.03.2018 14:18
      +2

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


    1. GDXRepo
      29.03.2018 14:28
      +3

      Факт. Меня так попросили сделать только 7 лет назад, на моей первой работе. Чуть не спятил, пытаясь вывести на листочке тонну фигурных и круглых скобочек. Задачу-то решил, но было ощущение, что проверяется умение писать на листочке, а не решать задачу.


      1. TheShock
        30.03.2018 02:28

        Обычно можно писать псевдокодом. Ну что-то вроде:

        arr = char[str.len]
        
        for i = 0, i < str.len, i++
          arr[str.len - i - 1] = str[i]
        
        ret arr.join


        Тут ведь проверяется базовое понимание computer science, можете ли вы вообще написать хоть какой-то код. К нам на синиора приходили люди, которые вообще код не писали. В резюме куча всякой всячины, а потом оказывается, что они кофе разносили, пару книжек прочитали и думали проскочить.

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


    1. spmbt
      29.03.2018 15:05

      Верно, код такого уровня гораздо проще и быстрее продиктовать устно, обычно 3-4 строчки. Слушающий что-то подправит в ответ, и так удобный диалог получается, по телефону.


    1. acmnu
      30.03.2018 16:37

      Я обычно прошу любыми средствами объяснить мне алгоритм. Мне не важен синтаксис и подойдет все: псевдокод, блоксхема, какая-то адавая каша из C и Python, просто фразы на английском. При этом правда я все же прошу писать или слушаю и пишу сам со слов — иначе тяжело ориентироваться в ответе и углубляться в заковыки алгоритма.


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


      1. khim
        30.03.2018 18:08

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


        1. acmnu
          30.03.2018 19:55

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


          1. khim
            30.03.2018 20:01

            Но. Зачем? Проще потратить 10-15 минут на тривиальную задачку про кодирование, убедиться что кандидат на роль технического специалиста не годится — и дальше уже либо распрощаться, либо, возможно, собеседовать на роль PM'а.


            1. acmnu
              30.03.2018 21:29

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


  1. i360u
    29.03.2018 14:13

    Очень хорошая статья, хотелось бы, чтобы ее прочитало как можно больше эйчаров. Однако, корень проблемы таков, что у нее не существует простого, универсального и очевидного решения: "идеальный" процесс найма требует участия специалистов, которых просто нет (крайне мало) на рынке. Либо они заняты непосредственно разработкой и управлением и не могут выступать еще и в роли первичных и вторичных фильтров. Это рождает формальный процесс с формальными критериями, который кажется неадекватным, однако худо-бедно работает на больших числах. Но в частных случаях, ситуация конечно адовая, сам сталкивался не раз.


  1. GDXRepo
    29.03.2018 14:27

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


  1. AVI-crak
    29.03.2018 14:42

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

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


  1. Estee
    29.03.2018 15:07
    +2

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


  1. TrllServ
    29.03.2018 15:52
    +1

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

    Иными словами поддерживаю в статью до момента предложенного решения проблемы.
    Ув. Mehdzor давайте продолжим мысль. К примеру, я условный и даже дотошный(каких мало) владелец геймдев конторы и мне нужны реально хорошие фронт и бэк. Две вакансии. Даже если я учил паскаль в школезакончил вуз «с программированием» лет 10-15 назад — оба соискателя на порядок превосходят меня в знаниях и опыте(должны). Как мне оценить кандидатов?

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


    1. viiy
      29.03.2018 16:18

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


      1. Mehdzor Автор
        29.03.2018 16:22
        +1

        +1, нанимать консультанта. Это единственный вариант, если нет своих спецов по теме.
        И это не придуманное прямо сейчас решение, а вполне практический случай: регулярно подрабатываю так, проводя собеседования для компаний.


        1. VolCh
          30.03.2018 21:33
          +1

          А как нанять консультанта? По резюме, собеседования проводить? )


          1. Mehdzor Автор
            31.03.2018 14:53

            Замкнутый круг нарисовался)


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


  1. viiy
    29.03.2018 16:13
    +2

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


    1. Artyomcool
      29.03.2018 18:45

      Наличие рекомендаций цирк не исключают ;)


  1. maxkomp
    29.03.2018 16:16
    +2

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

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

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

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

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

    А теперь вот вам первая реальная ситуация:
    Я откликаюсь на вакансию (инженера-программиста, если что), прихожу на собеседование в кадровое агентство. Меня встречает очаровательная девушка. Приглашает «технического специалиста», которая начинает задавать мне вопросы, а все вопросы — из бухгалтерии. Точнее исключительно по программе 1С.
    — Дык вам, оказывается, программист 1С нужен?
    — Ну ведь у вас в резюме написано, что вы его знаете.
    — Где это у меня такое написано?

    Оказалось, что девушка просто не видела разницу между С++ и 1С…
    Естественно развернулся и ушел. Что там в действительности требовалось работодателю — не знаю. Знаю одно — с такими кадровыми агентствами специалиста искать бесполезно — разве только вчерашний день найдешь.
    После нескольких подобных встреч сделал для себя вывод — все предложения кадровых агентств лучше просто игнорировать, и не тратить время попусту.


    1. Druu
      31.03.2018 08:14

      > Имхо, очень часто при собеседовании обе стороны не могут (или не хотят) придерживаться принципа равного риска.

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


      1. m_a_d
        31.03.2018 12:28

        Почему работник? Если оформление белое, то как раз у работника риск максимум опять искать работу.


      1. VolCh
        31.03.2018 15:29

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


  1. maxkomp
    29.03.2018 16:18
    +6

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

    Третья реальная ситуация:
    Прихожу на собеседование. Разговариваем с главным инженером, примерно в таком ключе:
    -Значит, мы делаем оборудование для пищевой промышленности. Например, есть у нас такая линия для изготовление маринованных огурцов. Вот таких. Попробуй. Вкусно? Так вот, все это давно нами производится, используется, но есть проблема, которую мы толком решить не можем. В последнее время наши заказчики (консервные заводы) хотят, чтобы…
    Дальше пошел предметный разговор на темы «чего в щах не хватает?», «что делать?» и в
    самом конце — «ну как, возьмешься?»
    — Только я ни разу не знаток в консервном производстве, это ничего?
    — Это все мы тебе расскажем. Главное, чтобы ты систему управления мог сделать.

    То есть делаю вывод — В этом месте налицо понимание работодателем целей, задач. Надо браться. Взялся. Сделал. Причем с удовольствием.

    А если бы мне вместо этого предложили головоломку решать… Скорее всего, тоже развернулся бы и ушел. Мозги тренировать — дело хорошее, но не на работе же!


    1. saboteur_kiev
      29.03.2018 17:58
      +1

      При всем уважении, ваш случай неполно описывает информацию.

      Например, если в первой компании несколько тысяч сотрудников, то даже при низкой текучке 10-20%, тестовые задания уже можно печатать в типографии. И выдать базовое тестовое задание может сотрудник HR, а не высокооплачиваемый специалист, поскольку при таком количестве собеседований в день, это будет весьма много высокооплачиваемых человекочасов, которые можно потратить более эффективно.

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


      1. maxkomp
        29.03.2018 20:07

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


        Объясняю.
        Конкретно 2 случай — SQL я, конечно, знаю. Но делать тестовое задание не стал. Понял, что я тут работать не хочу. Совсем не хочу.

        Конкретно 3 случай — та система управления, которую от меня хотели, была совсем не бизнес-организационная. Напротив, это была насквозь техническая АСУТП. Система управления технологическим процессом, если вдруг кто не знает. Беседовали мы в основном про параметры ПИД-регуляторов, обратные связи, про устойчивость и робастность. То есть самая натуральная теория управления, есть такой раздел математики. На 4-5 курсе математических факультетов ВУЗов этот предмет изучают.
        Без SCADA с OPC дело, конечно, тогда не обошлось. И без С++ с SQL, естественно, тоже. Но на собеседовании код С++ и SQL запросы меня никто писать не заставлял. (Раз уж программист, то должен это уметь).

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

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

        И потом приходится слышать, что «Вот, все плохо, хороших специалистов сейчас не найдешь.»


    1. andersong
      30.03.2018 10:12

      Третий случай — моя тема) Здесь проблема скорее в отсутствии на предприятии толкового технолога. Если есть внятно сформулированное задание от технолога, то решить проблему уже не составит труда. Если на предприятии низкий уровень технологов, то его вынужден компенсировать программист АСУ, становясь и технологом тоже)))


    1. Kwisatz
      31.03.2018 15:36

      Ну там какой-то хитрый запрос на SQL надо написать.

      Имхо где то кто-то когда-то выложил такие задачки. Ибо я подобное встречал уже не раз. Причем в стиле «мы запихнули в одну таблицу все что смогли и не смогли, а ты вот на, разрули»

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

      Я вот на этом моменте почти умер от зависти.


  1. ChePeter
    29.03.2018 16:23
    +1

    “If you wanna hire great people and have them stay working for you, you have to be run by ideas, not hierarchy. The best ideas have to win, otherwise good people don't stay.”

    ? Steve Jobs


  1. darkboatman
    29.03.2018 17:10

    Вот мы ищем системных аналитиков.

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

    И что нам делать?


    1. Mehdzor Автор
      29.03.2018 17:18

      Вы сами все понимаете. Если человек не может внятно рассказать о собственной работе, то тут никакие тестовые задания не помогут. Таких перевертышей везде полно.
      Что делать? Искать дальше. Может быть обратиться к агенствам, поковырять сообщества. Но серебренных пуль тут не вижу.


      1. darkboatman
        29.03.2018 17:21

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


        1. Mehdzor Автор
          29.03.2018 17:28

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


          1. darkboatman
            29.03.2018 17:39

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


            1. Mehdzor Автор
              29.03.2018 17:51

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


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


              1. darkboatman
                29.03.2018 18:00

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


                1. Mehdzor Автор
                  29.03.2018 18:02

                  Конечно. Тогда они отсеются уже на устных задачах, если опыта не набрались.


                  1. darkboatman
                    29.03.2018 18:08

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


                    1. Mehdzor Автор
                      29.03.2018 18:12

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


                      1. darkboatman
                        29.03.2018 18:29

                        На мой взгляд, разница между вопросами и заданием надумана, если задание рассчитано на 10-15 минут.
                        Другой вопрос, зачем нам задачи про монеты и канализационные люки. Но тут ответ дал Паркинсон (Законы Паркинсона. Окончательный список, или принципы отбора кадров).


                1. xyu_c_ropbl
                  30.03.2018 11:45

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


                  1. darkboatman
                    30.03.2018 13:05

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


          1. Fid
            30.03.2018 07:18

            Какие ещё нафиг устные задачи? Например, задают какой-то вопрос, как сделать супер заговыристый вложенный запрос с кучей джойнов разных типов, группировками, аггрегированными функциями, промежуточными переменными. Как это всё делать в голове, когда не видишь промежуточного результата? Мозг может держать в голове максимум 3-5 объекта в «оперативке». А когда есть под руком комп, где всё видно. то можно сделать за пару минут. Такие вопросы задаются с единственной целью — загнобить разработчика и сбить зарплату. Вот они вообще никак не показывают может ли он решить эту задачу на практике.


            1. Mehdzor Автор
              30.03.2018 07:18

              Такой вопрос устно только плохие люди задают)


              1. darkboatman
                30.03.2018 15:50

                Мне когда-то такой задавали. Я рассказал в терминах реляционной алгебры, какой будет ответ. Тогда на SQL мне разрешили не переводить. Может это ожидается?


    1. ChePeter
      29.03.2018 18:16

      А что, по Вашему мнению, должен уметь системный аналитик?
      Какой документ Вы от него ждете, приведите более менее формальное описание.

      Спасибо.


      1. darkboatman
        29.03.2018 18:35

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

        Насколько это формально?


        1. ChePeter
          29.03.2018 18:46
          -1

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


          1. darkboatman
            29.03.2018 18:54

            Это. простите, у вас словоблудие.
            Вот профстандарт СА: classinform.ru/profstandarty/06.022-sistemnyi-analitik.html
            Вот единственное полное русскоязычное описание, как работать с ВИ: www.ozon.ru/context/detail/id/8747662

            Если для вас что-то звучит, как «сепульки» и «фигульки» — это может еще значить, что вы не в контексте.


            1. ChePeter
              29.03.2018 19:13
              -1

              На первый раз «словоблудие» Вам прощаю, но не заблуждайтесь и " базар фильтруйте" — целее будете.
              За документ спасибо, повеселили от души.
              Слишком уж неожиданно так СССР проявился во всей своей силе и мощи.
              Но увы, base.garant.ru/71431038
              Это только для гос контор.
              Действительно, можете соискателей, которые зайдут, спрашивать, документ опубликован и они должны знать, раз уж пришли, свои потенциальнынъе обязанности.
              Это не те системы.
              И, если не секрет, как контора, где Вы собеседуете, называется?


              1. darkboatman
                29.03.2018 19:22

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


                1. ChePeter
                  29.03.2018 19:35

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

                  Покажите характер, выдержку, не поддавайтесь троллингу, я прошу серьезно.
                  Еще раз, для себя: «как называется профессия и специальность по придумыванию алгоритмов?»
                  Спасибо.


                  1. darkboatman
                    29.03.2018 23:23

                    Да ладно вам, откуда у меня характер.

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

                    У вас что по этим пунктам?


                    1. ChePeter
                      30.03.2018 10:47

                      — Занимался от алгоритмов работы прибора до алгоритма работы предприятия.
                      — На входе обычно проблема.
                      — Методы интуиционистские. «Существует только то, для чего есть алгоритм создания»
                      — Сложность разная и риски разные. Сложность алгоритмов в формальной теории систем — моя специализация. Диплом писал о структуре сложности. Но всё зависит от предметной области, обычно там задаются граничные значения. Например придумать алгоритм возврата кредита так, что бы деньги вернули и никого не убили — в 90 долго решал такие. Или придумать алгоритм покупки предприятия с доходностью больше чем Х и не нарушая УК РФ — это в 2000. Или придумать алгоритм управления месторождением такой, что бы лицензию не отобрали, хотя на комиссию по отбору уже вызвали. Сейчас вот решал kaggle digit recognizer и toxic comments. В первой 0.99914 и передо мной не более 50 человек в зависимости от тестовой выборки, а в toxic от победителя отстал на 0.005 accuracy и 1800 мест. Как придумать алгоритм что бы сделать на toxic 0.99? И как его потом продать?

                      — назначение, это обычно увеличение стоимости или целевого интегрированного показателя.
                      — В разных проектах разные люди. Зависит от предметной области.
                      — Обычно если придумываешь алгоритм, то и реакция такая — вот сам его и реализуй. И очень трудно объяснить, что если ты маркетмейкер предприятий морского транспорта, то тебе нет никакой необходимости ходить в океанские маршруты или если ты управляешь нефтяной компанией и у тебя целевая функция стоимость этой компании, то не нужно кормить комаров или судорожно искать дома одежду для -40. Нужно запустить и правильно выполнить алгоритм.

                      В указанном Вами документе не нашел ничего хотя бы отдаленно напоминающего мои занятия. Что мне написать в профессии? В системные аналитики, как специалист по формальным системам, я не гожусь. Архитектор систем — так там тоже, А-17/4 «предлагает описание алгоритмов», или «Определение ключевых сценариев для архитектуры программного средства» Н03.6 — так это совсем неясно. Определил сценарий и название даже придумал — это и есть создание алгоритма?


                      1. darkboatman
                        30.03.2018 13:13

                        Мне кажется, это выходит математик. При доспециализации получится+разработчик ПО или +бизнес-аналитик.


                  1. nobodyhave
                    30.03.2018 07:38

                    Например Algorist.
                    А занимаются этим например тут.


                    1. ChePeter
                      30.03.2018 11:09

                      Мы тут обсуждаем конкретный документ которым обязаны руководствоваться все гос учереждения. Вот похожий classinform.ru/profstandarty/06.003-arhitektor-programmnogo-obespecheniia.html
                      С одной стороны это правильной документ и должно быть одинаковое понимание у всех. В этом darkboatman полностью прав.
                      Но я не вижу в этих документах разработку алгоритмов функционирования. Не обзательно новых математических алгоритмов.
                      Там конкретные действия — поди принеси отнеси составь справку и т.д.
                      Но кто составляет алгоритм работы предприятия? Все системы управления нынче компьютерные, полностью алгоритмизированы должны быть — компьютеры совсем не понимают неформальное общение.
                      Вот в недвижимости понятно, кто архитектор, кто проектировал, кто бетон клал и арматуру вязал.
                      А в IT, куда более формальном, по сути своей существенно формальном занятии, пропущен основной момент. Идет подмена составления алгоритма и его реализации.
                      Это как приглашаешь «питонщика» и говоришь: — ты, братец, подъезды строил? — Да, конечно, вот можно посмотреть. — Ну и молодец, давай нам тоже вот тут подъезд сложи на 22 этажа и покрасивше и что бы «богато».


                      1. darkboatman
                        30.03.2018 13:16

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


                        1. ChePeter
                          30.03.2018 13:36

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


                          1. darkboatman
                            30.03.2018 13:58

                            Если хочется именно создавать алгоритмы, лучше программист-математик.
                            03.6 — это откуда? я не нашел


                          1. darkboatman
                            30.03.2018 16:00

                            Если вместо создания подойдет проектирование: выбор, адаптация и сборка из кубиков под стоящие требования, ограничения и доступную элементную базу, то вот варианты:
                            — программист (разработчик) (алгоритмы работы ПО)
                            — архитектор ПО или систем (алгоритмы взаимодействия частей внутри больших приложений или систем)
                            — Системный аналитик (алгоритмы работы пользователей с системой, алгоритмы взаимодействия компонентов системы)
                            — бизнес-аналитик (алгоритмы выполнения деятельности)

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

                            Чистые алгоритмы — это математик.


    1. Artyomcool
      29.03.2018 18:52

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


      1. darkboatman
        29.03.2018 19:30

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


        1. Artyomcool
          29.03.2018 19:34

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


          1. darkboatman
            29.03.2018 23:33

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

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

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


            1. Artyomcool
              29.03.2018 23:42
              +1

              см. вилку ЗП и свое к ней отношение

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

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

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

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


              1. darkboatman
                30.03.2018 02:38

                Сомневаюсь, что найдется вилка, которая заставит меня пересмотреть свое отношение к тестовым заданиям.

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

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

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

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

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


      1. i360u
        30.03.2018 13:05
        +1

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


    1. Arris
      29.03.2018 23:23

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

      У меня в друзьях три системных аналитика, но ни один не может внятно объяснить, чем он занимается и что делает. А то может я тоже могу так? :)


      1. darkboatman
        29.03.2018 23:46

        Вот из профстандарта, который я выше приводил:

        Основная цель вида профессиональной деятельности:

        Разработка, восстановление и сопровождение требований к программному обеспечению (далее — ПО), продукту, средству, программно-аппаратному комплексу, автоматизированной информационной системе или автоматизированной системе управления (далее — системе) на протяжении их жизненного цикла

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

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


        1. Arris
          30.03.2018 03:36

          Благодарю, стало более понятно.


  1. forcam
    29.03.2018 17:11

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


    1. darkboatman
      29.03.2018 17:24

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


  1. Areso
    29.03.2018 18:04
    +2

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


  1. kabanpvt12
    29.03.2018 18:39

    Это просто в точку! Спасибо. Сам устал от таких собеседований.


  1. Yago
    29.03.2018 20:53

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

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

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


    1. acmnu
      30.03.2018 16:50

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


      1. Yago
        30.03.2018 16:58

        Я больше сталкивался с формулировкой «на любом языке».
        В любом случае, я никогда себя не чувствую комфортно при написании кода на листочке — руки под клавиатуру заточены. Даже если это элементарные sql-запросы. Вспоминаются курсы паскаля в старших классах сразу. Вот там нас за каждую пропущенную точку с запятой в тетрадке гнобили и занижали оценки :)


    1. michael_vostrikov
      31.03.2018 13:06

      Но заметил одну закономерность: туплю при решении, но по приходу домой код с решением задачи пишется как по маслу. Может, сказывается то, что я думаю о решении после фейла, и задача для меня становится не свежей. А может и то, что обстановка не та
      Тоже так бывает. У меня есть мысль, что это связано с переходом информации из оперативной памяти в долговременную. Когда она только появилась, для анализа нужно переключать фокус внимания на разные аспекты «вручную». Потом запомнятся основные моменты и установятся взаимосвязи, и при повторном обдумывании нейроны сами будут выдавать сигнал на знакомые паттерны.
      Еще мне удобнее прочитать новую задачу до обеда, а не откладывать на час. Можно даже не думать о ней, но при втором прочтении анализировать требования проще.

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

      личная история
      Переставлял винду одному парню с 10 на 7. Там был скрытый раздел, и семерка не устанавливалась. Решил сначала стандартными средствами попробовать, потом если что через dd затереть с Ubuntu LiveCD. В процессе гуглил несколько вопросов. Парень общительный, что-то расказывает. Я между делом поддакиваю, и вот вроде все знакомо, но никак не могу сообразить, что же делать дальше. Внимание уходит с задачи на разговор. В итоге все-таки использовал dd, потом нормально установилось.


      1. Neikist
        31.03.2018 13:16

        Рекомендую книгу «Думай как математик», или курс от того же человека «Learning how to learn», там как раз про такое много.


    1. Kwisatz
      31.03.2018 15:50

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


      А даже если не возникает то приятно провели время. Но все чаще встречаю каких то агрессивных айтишников. Причем если в первом случае, в ответ на мои увлеченные рассказы о небывалых приростах производительности, получив «ч0, индекс поставили» я просто удивился. То получив хамство на просьбу предоставить расчет сервера 1с на базе Postgre вместо MsSQL, я просто выпал в осадок.


  1. Mikluho
    29.03.2018 21:13

    О! Любимый холиварчик :)
    В целом автора поддерживаю, но в крайности впадать не стоит. Просто инструмент должен соответствовать цели, а не высокопарным идеалам.
    Я за последние три года отсобеседовал около сотни кандидатов, а уж сколько резюме просеял…
    Но вот банальными тестиками не увлекался ни разу. На предыдущем месте у нас было три фильтра.
    Первый — просмотр резюме и ссылок на работы, если есть. Много можно понять уже тут. Даже по тексту резюме…
    Второй фильтр — собеседование. За жизнь, за опыт, чего знает, как может рассказать о своих прошлых успехах. Очень много проясняется, когда человек сам рассказывает о своём опыте. Многие не могут ничего внятно рассказать, кроме «ну, у нас там сайт был, к нему модули, и чего говорили, я там правил», ноль конкретики и фига толку… Немного пофилософствовать, например про паттерны, но только те, которые человек сам знает (точнее говорит, что знает). Немного про насущные технологии. Главное на этом этапе — оценить способ мышления, багаж знаний и т.п. (Забавно, когда говорливый тимлид наизусть диктует описание десятка паттернов, на не может объяснить, чем отличается адаптер от враппера и от декоратора, а на прямой вопрос отвечает, что вообще это одно и тоже, только названия разные). Потом про нас, про задачи, про технологии. Очень интересно, что человек в ответ спросит…
    И уж третьи этапом, если после собеседования мы друг другу нравимся, был некий тестик на общую соображалку. Давали на дом. Суть теста — ряд вопросов на самые разные темы от sql до office interop. Пользоваться для ответов можно чем угодно. Хоть гуглом, хоть соседом Васей :). Реально его делать — часа два-четыре, мы давали кандидату день (на его выбор). Цель теста — понять, как человек будет решать проблемы. Сможет ли понять суть вопроса и найти хоть какое внятное решение. Но главное не количество правильных ответов, а подход… Ибо компания была маленькая, нам были нужны в достаточной мере самостоятельные разработчики.

    Моё имхо: умного и желающего учиться многому можно научить, да и сам он освоит самое важное. А вот тот, кто не желает учиться… ну… code monkey… Иногда и такие нужны.
    Хотя я признаю, что в зрелый проект на поток задач желательно (а иногда и нужно) брать того, кто уже знает большую часть нужного… И тогда, да, тест быстрее всего прояснит картину.


    1. Paskin
      31.03.2018 08:18

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


  1. DenimTornado
    29.03.2018 22:44
    +1

    Есть такое дело, сталкиваешься с этим постоянно. А при моем чудесном не умении сдавать любого рода экзамены и тесты, это прямо крест на собеседованиях. Ну не могу я перед толпой людей решать задачу, да и зачем?
    Кроме как на этом собеседовании подобного рода задачи решать я никогда не буду. 90% времени это рутина и код-стайл. А те 10%, где реально надо напрячься, выдать свежее и новое, на эти 10% обычно закладывается больше времени, лучше обстановка и набор инструментов.
    Зачем собирать двигатель из говна и палок. Показать, что можешь? Но это не нужно… Нужно, чтобы двигатель был сделан чётко, точно и блестел!

    п.с. Простите, крик души)


    1. Mehdzor Автор
      31.03.2018 15:10

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


      1. DenimTornado
        31.03.2018 21:14

        Спасибо большое, как-то не задумывался о таком варианте! Воспользуюсь)


  1. julia4545
    29.03.2018 22:44
    +1

    Мда, тоже раздражает, когда люди не ценят твое время и предлагают какую-то дичь на собеседованиях. К этому относится написание кода на листочке, причем решение каких-то задачек с кодеварс, которые мне ни разу не встречались в процессе работы, а также тестовые на три дня работы от мелких консалтинговых контор. Я еще могу потратить время на тестовое, если очень хочу устроиться в какой-то крупный IT гигант, работать у которого честь, но не в ООО «DigitalAdoption».
    Также проходила собеседование в Яндекс по скайпу и была шокированна оторванностью собеседования от реальных задач. Т.е. мне предлагали по памяти (время подумать или погуглить не давали, конечно же) в режиме реального времени решить задачки по типу тех, что на codewars.
    Я собеседовалась на позицию фронтенд разработчика. За год работы я ни разу не использовала ни map, ни reduce, просто не было необходимости. Верстка, анимации, запросы аяксом. Во фронтенде используется процентов 10% от возможностей js и то через jquery обертку. Я даже повторила сортировки и структуры данных перед собесом, а надо было решать олимпиадные задачки. Наверное, они просто набирают студентов из ШАД, которые годами решают эти задачки, но даже верстку для мобилы сделать не смогут или бложик запилить. Печально все это.
    Год назад без опыта я ходил по собеседованиям и в 90% из 100 мне давали неадекват аля писать код на листочке или тестовое на 3-4 дня, после которого не перезванивали. Причем через год опыта работы ситуация не поменялась! Все также процентов 90% собеседующих были полностью не в адеквате. Только количество приглашений и зарплата увеличились.
    Наиболее адекватный форма интервью — это просьба кандидата сделать за пол-часа какую-то маленькую задачку, относящуюся к их промышленным задачам на вашем проекте, и посмотреть решение.
    Ходить по собеседованиям и в очередной раз вставать и уходить, когда тебя просят решить олимпиадную задачку на листочке, — настолько неприятный и изматывающий процесс, что я просто хватаюсь за первый устраивающий меня оффер даже не перебирая. В итоге, вторую работу я нашла за неделю.
    Уважаемые собеседующие, пересмотрите свой подход. Вы реально теряете хороших кандидатов и даже потенциальных кандидатов, создавая такую обстановку. При этом специалистов в IT не хватает.


    1. staticlab
      31.03.2018 11:56
      +1

      Я собеседовалась на позицию фронтенд разработчика. За год работы я ни разу не использовала ни map, ни reduce, просто не было необходимости. Верстка, анимации, запросы аяксом. Во фронтенде используется процентов 10% от возможностей js и то через jquery обертку. Я даже повторила сортировки и структуры данных перед собесом, а надо было решать олимпиадные задачки. Наверное, они просто набирают студентов из ШАД, которые годами решают эти задачки, но даже верстку для мобилы сделать не смогут или бложик запилить.

      Фронтенд бывает разный. Вёрстка бложиков — это одно, а разработка веб-приложений — другое.


      1. julia4545
        31.03.2018 13:44

        Какие там веб-приложения во фронтенде, расскажите?
        В моем понимании фронтенд включает в себя верстку, анимации, валидацию и обработку данных, отсылка данных аяксом на сервер, работу с канвасом и svg. Недавно делала отрисовку маршрутов на карте через апи 2Gis.
        Но видимо это все слишком легко, куда уж мне до задачек с codewars на скорость.


        1. VolCh
          31.03.2018 15:34
          +1

          reduce — вывести строку "итого за год" по пришедшему с сервера массива данных по месяцам
          map — преобразовать массив данных по месяцам сложной формы в массив плоских объектов из строк для <td>


        1. Areso
          31.03.2018 20:32

          Вот прямо сейчас пишу веб-игру целиком на фронте (т.е. никакого сервера и взаимодействия с ним). Все, что есть — это HTML5, vanilla JS, CSS. Все. Причем даже без jQuery. Никаких фреймворков. Это было специальное условие — не тащить за собой сотни килобайт фреймворков на каждый чих. И ничего, плюс-минус все работает, вся логика и весь интерфейс.
          Ну и довольно популярная задача — это различные калькуляторы и конфигураторы. Они, в целом, тоже веб-приложения почти целиком на фронте, и лишь иногда, в конце процесса, скидывают готовый заказ на сервер.


        1. roma219
          01.04.2018 10:08

          Ваше понимание устарело лет на 6.


    1. roma219
      31.03.2018 14:54

      Интересный у вас фронт-енд без массивов и map и reduce… jquery в 2018м?


      1. julia4545
        31.03.2018 15:00

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


        1. roma219
          01.04.2018 10:06

          Без работы? Да ведь полно проектов с нормальным современным стеком, но видимо если не знаешь, что такое map, приходится довольствоваться поддержкой древних жиквери проектов. Сочувствую.


        1. michael_vostrikov
          01.04.2018 13:44

          Но ведь вы собираетесь работать в другом бизнесе, который не использует jquery, а использует фреймворки и map/reduce. И он тоже не хочет терять бабки, нанимая того, кто даже не хочет разбираться.


  1. Arris
    29.03.2018 22:54
    +2

    Это очень, очень, очень меткая и очень злободневная статья.

    Прочитал очень внимательно и подпишусь под каждым словом. Спасибо!




    Lifestory из шизненного опыта:

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

    Вот вам тестовое задание: Напишите класс, реализующий собственный функционал плейсхолдеров для запросов к БД MySQL.


    Хотят велосипед, который писан-переписан тысячи раз (и делать 100501-ый вариант долго, нерационально и бессмысленно, потому что он нигде никем и никогда не будет использован).

    Разумеется, я об этом сразу пишу: «Я не вижу смысла делать это тестовое задание, возьмите PDO, там все сделано до нас. Не нравится PDO — возьмите этот класс, этот или этот»

    Мне отвечают: «Ок, мы ценим ваше мнение (ложь) и обязательно с вами свяжемся, чтобы пригласить на собеседование» (еще одна ложь).

    Через пару дней напоминаю о себе и пооучаю ответ: «Отказавшись делать тестовое задание вы не прошли КОНКУРС соискателей».

    P.S. ЧСХ, веб-программиста эта контора ищет до сих пор…

    P.P.S. Ах да, а еще в письме они предлагали скачать презентацию, рассказывающую о том, какая у них крутая фирма. Презентация — это PDF-ка на яндекс-диске. Весит она 54 мегабайта. ПЯТЬДЕСЯТ ЧЕТЫРЕ МЕГАБАЙТА, уважаемые читатели.

    Я ради интереса её скачал. Внутри — ничего интересного. 7 страниц, фоном каждой сраницы монструозная картинка, немного текста (что-то там про первое место на рынке, печеньки в офисе и спортзал напротив).

    Я сжал PDF-ку. Получился 1 (ОДИН) мегабайт.


  1. vmarunin
    30.03.2018 00:04

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

    И тут вы со своим кодом в виде Pet-project или код с прошлой работы. Этот код читать это тоже работа!!! Кто любит читать чужой код пусть первый бросит в меня камень.
    Код может быть написан на малознакомом языке, наверняка в малознакомой области, очень часто по другим стандартам. Вот и получается вместо бегло глянул за 10 минут надо потратить полдня тяжёлой работы, чтобы посмотреть что же там у вас.
    А там у вас форк чужого проекта и немного напильника. И информации получилось мало. Нет, оно работает как заказывали, вопросов нет, но информации для собеседующего мало.

    Если же вас просят сделать задачу, то эту задачу смотрят уже раз 10 или 100. Все подходы известны (сами соискатели их на первых 5 решениях обозначили), это полностью ваше творчество (пусть и с копипастой со StackOverflow). Да, будет ваш язык и ваш стиль, но читать гораздо легче. Ну и тесты написаны, ошибки можно быстро ловить.
    Задачу из жизни часто сложно сформулировать. «Напишите плагин для нашего проприетарного мониторинга» и что? Там врубаться 2 дня и 2 часа работы, это же невозможно давать людям.

    Вторая пробема в том, что до вас разговаривали с человеком без кода, у него NDA на рабочий код и нет Pet project (или есть, но на Lisp/COBOL/ASM). Надо вас сравнить. Как?
    Удобнее всего дать одинаковые задания и по ним сравнивать.

    По поводу «продавать себя» и интровертов. Экстраверты в отрасли тоже есть, вот только их социальный пылесос сразу поднимает или в тимлиды, или в продажники или ещё куда. Гляньте, Вася и в компьютерах немного шарит и людей не боится и может рассказать что происходит!!! Не то что эти 9 интравертов. Вот мы Васе задачу поставим и пусть он уже там раздаёт и докладывает о прогрессе.
    Если вы работаете командой, то умение говорить «must have», его и ищут.

    Резюме:
    — Стандартные задачи сильно упрощают жизнь тем кто собеседует
    — Олимпиадные задачки/деревья/сортировки те немногие области, которые знают большинство (потому что в ВУЗе учат)
    — Умение коммуницировать очень важное и ценное

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


    1. darkboatman
      30.03.2018 02:50

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


      1. vmarunin
        30.03.2018 03:43

        Так всё ещё и хуже.
        Если в компании уже есть открытая позиция (рост команды или кто-то ушёл), то в этот момент те кто собеседуют уже тянут за себя и за того парня! Им просто работать тяжело, и тратить много ресурсов на собеседование просто нет сил.

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


        1. xyu_c_ropbl
          30.03.2018 11:58

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


          1. vmarunin
            30.03.2018 15:19

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

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


            1. xyu_c_ropbl
              30.03.2018 16:04

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

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


              1. vmarunin
                30.03.2018 16:34

                Я же написал про DGPR (закон о персональных данных). Это изменения в законодательстве, причём в EU (в США нечто подобное тоже принимается).

                Закон приняли, через 2 года вы должны ему соответствовать или штрафы на территории EU. А выполнять должны все, если работаете с даннымиграждан EU.
                Билет на поезд Ульяновск-Самара с фамилией продали гражданину EU, всё приплыли. Причём у этого же гражданина может быть двойное гражданство, то есть вы даже не узнаете что он гражданин EU

                Итого, на вас и свалилось +100% работы с жёстким дедлайном.
                Вот что должно быть в консерватории, чтобы подобные шутки судьбы выдерживать?


    1. mayorovp
      30.03.2018 07:06

      А я вот люблю чужой код читать… В каком виде камень предпочитаете? :-)


      1. vmarunin
        30.03.2018 15:20

        В завёрнутом. В купюры. Камень поменьше, купюры побольше и поценнее :)


    1. julia4545
      30.03.2018 12:23
      +1

      Олимпиадные задачки/деревья/сортировки те немногие области, которые знают большинство (потому что в ВУЗе учат)

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


      1. vmarunin
        30.03.2018 15:24

        «83% статистики берётся с потолка во время разговора»
        Откуда вы знаете про большинство?
        Сортировки и те же деревья самоучки вполне могут пройти уже к концу школы. Во всяком случае школьные олимпиадные задачи они про это.

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


  1. dns78
    30.03.2018 01:22

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

    Из личного опыта, касающегося относительно крупных контор:

    — Яндекс. Был как положительный, так отрицательный опыт общения с ними.

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

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

    Выводы для себя сделал.

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

    — Dell EMC

    “Работать в нашем банке — большая честь!”. Мы — крупная международная компания со всеми вытекающими. Отовсюду.

    Три собеседования. На ин. язе. Не прочитано не то, что резюме, но даже краткая выжимка из него. Никем. Ни один из интервьюеров не смог внятно описать задачи, характерные для предлагаемой позиции. На третьем собеседовании качество связи было таким, что я слышал каждый второй слог каждого третьего слова. Как по оптике, так и по мобильной связи. Предполагаю проблемы на той стороне. Был бы и рад развить в себе дедуктивные способности заранее — но не предполагал, что будет предложена игра “Телепат”. Тем, кто возмущается решением задач на листочке или доске (я с вами заодно, кстати) — это не финал интересных вариантов! Обойдите в полночь бинарное дерево голосом без рекурсии (предположим, что Вы правильно поняли вопрос, невзирая на помехи в канале). Смогли? Классно! А я нет. Почему? Да потому что бинарные деревья не так часто растут на дороге современного разработчика, а держать в голове подобную белиберду и думать над ней в середине ночи — спасибо, нет. Надо будет — нагуглю за 5 минут, али сам придумаю. Кстати, для предлагаемой позиции эти знания совершенно не требовались.

    Желаю компании Dell EMC успехов в развитии, а также закупки партии пар коробков, соединенных ниточками — для обеспечения комфортного общения интервьюера и интервьюируемого.

    Выводы для себя сделал.

    — JetBrains

    Адекватный диалог. На удивление.


  1. syouth
    30.03.2018 02:07

    Странная статья. Хочется спросить: а если Яндекс, Гугл, и т.д. не умеют нанимать сотрудников и соответственно делать продукты, может вы покажете свои и мы сравним? А то обычно такие облечители сами никакую алгоритмическая задачу сложнее разворота списка решить не могут и соответственно у них и результаты такие же: плохо спроектированные, не расширяемые, глючные и медленные поделки с кучей костылей. Но зато много "опыта". Я вам по секрету скажу зачем тот же Яндекс на алгоритмы так внимание обращает: потому что им интересны люди с фундаментальными знаниями, потому что имея их можно сделать очень многое(знание некоторых принципов возмещает незнание некоторых фактов). А при подходе вашем вы просто смотрите насколько много фактов знает кандидат. При этом способность анализировать никак не проверяется. Проще говоря вас интересуют ремесленники, а Яндексу, Гуглу и прочим нужны учёные.


    1. igor_suhorukov
      30.03.2018 10:18

      Яндексу, Гуглу и прочим нужны учёные.

      Чтобы 99% времени поддерживать легаси код и править sql и json/xml конфиги.


    1. julia4545
      30.03.2018 12:13

      Где взаимосвязь между умением проектировать расширяемый проект (т.е. знание паттернов и опыт работы на больших проектах) и умение развернуть список или написать сортировку пузырьком?


      1. syouth
        31.03.2018 15:46
        +1

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


  1. als_fi
    30.03.2018 07:18

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


    1. Eldhenn
      30.03.2018 09:09

      А тестовое задание у адекватного работодателя не нужно решать идеально.
      Тестовое задание обычно даётся на уже реализованную, работающую часть продукта. «Мы понимаем, как делать такие вещи, а поймёте ли вы?». Портфель — что портфель? Как вы его делали, этот портфель, мы не знаем. И работать нам нужно не с вашим портфелем, а с нашими задачами. И откуда вообще взялась мысль, что тестовые задания — это попытки скроить на оплате труда? Всё равно решение будет неидеальным, неполным, его надо доводить до ума, стыковать с другими частями продукта — и всё это без оригинального разработчика! Пфф, да проще написать самим, чем доводить до ума то, что сделал какой-то соискатель на коленке за пару часов.


      1. als_fi
        30.03.2018 13:03

        1. Посмотреть как соискатель решает задачи можно и не рабочем продукте
        2. Для проверки работника придуман испытательный срок
        3. Работодатель хочет что бы ты решил идеально, иначе какой смысл давать такое задание.
        4. Работодателю важно как можно быстрее выпустить продукт, не потратив много ресурсов.
        В чем суть я сейчас объясню, продуктовые компании b2c, или b2b-b2c, применяют модель скорого выпуска продукта, график хайпа можете погуглить (Garther Hype Cycle for Emerging Technologies) маркетологи и бизнесмены фактически следуют этому, кто успел первый выпустить продукт, тот и молодец. Так же есть график продолжительности жизни компаний (Everage Company Lifespan) можно увидеть, как сокращается их жизнь, когда они не могут ничего нового придумать. Поэтому все эти тестовые задания на реальном продукте это пыль в глаза соискателю, все хотят сэкономить на ресурсах. Возможно кто-то им понравится, но остальное это сбор идей.
        Так что не надо меня убеждать, что решать рабочий продукт, как тестовое задание — это круто для соискателя, попытка решить свои проблемы за счет других, это обман. А для соискателя сплошная трата времени. По такой логике, решив их проблему, можно спокойно создавать продукт без них или продать кому-то.


        1. Eldhenn
          30.03.2018 15:06

          1. Как соискатель решает НАШИ задачи. Те, которые он будет решать у нас.
          2. Воу-воу, зачем тогда собеседования? Нанимаем всех подряд на испытательный срок, у нас же денег много, времени на возню с документами — ещё больше, уволить по статье за несоответствие — в десять раз проще, чем не взять вообще.
          3. Дискутировать с религиозным фанатиком не вижу смысла.


  1. vladvul
    30.03.2018 07:18

    В резюме можно написать всё что угодно, а рекомендации даст благожелательный коллега.
    Тесты is only thing that matters


    1. Areso
      30.03.2018 08:36

      Только тесты должны быть адекватны должности, задачам и по времени. До 4 часов, считаю это потолок по времени, когда еще не нужно платить за результат.


  1. Kos13
    30.03.2018 08:23

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


    1. exehoo
      30.03.2018 10:27

      Вы работодатель? Работодатели все как один мечтают, чтобы на каждую их вакансию приходили только готовые профессионалы, способные в одно рыло работать за целую бригаду. И чтоб не пил, не курил, в отпуска бы не ходил, а только работал-работал-работал 24/7 с КПД 100%.


      1. als_fi
        30.03.2018 11:16

        Добавь и что бы зп была как у джуна


        1. exehoo
          30.03.2018 11:21

          Лучше чтобы сам доплачивал за право работать =)


          1. als_fi
            30.03.2018 11:58

            =))


      1. Kwisatz
        31.03.2018 18:00

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


        1. khim
          31.03.2018 19:31

          Заметим что как раз критикуемые компании (за исключением Яндекса) как раз до сих пор под управлением людей, которые изначально из и сделали с нуля… то есть вроде как должны разбираться…


          1. Kwisatz
            01.04.2018 03:30

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


  1. androidsoft
    30.03.2018 11:26

    Мой профиль разработчика виден в и интернете поэтому время от времени рекрутеры связываются со мной и тех специалисты проводят собеседования.
    По скайпу прислал этот Java код и спросил что выведется на экран. И соответственно обосновать.
    class A {
    public static void print() {
    System.out.println(«A»);
    }
    }

    class B extends A {
    public static void print() {
    System.out.println(«B „);
    }
    }

    public class C {
    public static void main(String args[]) {
    B b = new A();
    b.print();
    }
    }

    попробуйте в уме прикинуть и дать ответ. Потом кто хочет может в ide проверить.


    1. Steed
      30.03.2018 11:40

      Неужели Java позволяет вот так без ошибок и ворнингов положить базовый класс по указателю на производный? На плюсах с таким компилятор сразу отправит. А если его обмануть reinterpret_cast'ом, то в зависимости от реализации либо честно вызовет виртуальную функцию (ответ "А"), либо для оптимизации выкинет виртуальный вызов, т.к. у B нет других наследникв (ответ "В").
      (Извините, если для Java-программиста мой ответ звучит глупо, стало интересно, применимы ли знания из плюсов при рассуждениии о Java).


      1. mayorovp
        30.03.2018 11:41

        Поправка: в этом коде нету виртуальных функций. Но это не важно потому что код и правда не скомпилируется.


        1. Neikist
          30.03.2018 12:43

          Спасибо, вернули мне веру в java, не работал с ней, но до этого думал что такое она допустить не должна. Хорошо что так и продолжу думать дальше.


          1. mayorovp
            30.03.2018 12:46

            Вера не важна если есть ideone: ideone.com/HU4Ni9 :-)


            1. androidsoft
              30.03.2018 12:55

              B b = new A();
              Да код и не скомпилируется, но тот кто проводил собеседование мне минут пять рассказывал какой будет правильный ответ и почему и как static влияет на ответ, потом еще пару вопросов задал о вещах (наверно с хакотрона какогото ) которые за 7 лет ни разу не применялись в моей практике.


    1. Kwisatz
      31.03.2018 18:03

      попробуйте в уме прикинуть и дать ответ

      я дико извиняюсь. Вот только для собственного развития интересуюсь: а нафига? У меня при просмотре этого мысли:
      — лень
      — воткнуть бы в иде да автоформатером
      — а с другой стороны а пошли они со своими B extends A. Ни читать ни писать такое не желаю.


  1. reeshkov
    30.03.2018 11:26

    "… Благодарим за выполнение тестового задания.
    К сожалению, вынуждены отклонить вашу кандидатуру, т.к. не выполнено указанное в задании требование использовать систему сборки cmake.
    Желаем успехов в дальнейшей работе..."
    Видимо cmake намного сложнее qmake что считается что на освоение потребуется неоправданно много времени, но я думаю исходники дальше hr не ходили — зря я написал в письме что не юзал cmake


  1. androidsoft
    30.03.2018 12:49

    B b = new A();
    Да код и не скомпилируется, но тот кто проводил собеседование мне минут пять рассказывал какой будет правильный ответ и почему и как static влияет на ответ, потом еще пару вопросов задал о вещах (наверно с хакотрона какогото ) которые за 7 лет ни разу не применялись в моей практике.


  1. beerware
    30.03.2018 15:38

    Также приходилось участвовать по разные стороны баррикад: вначале как соискатель, потом как наниматель.
    Наблюдения в качестве соискателя: самое главное пройти барьер HR. Как правило у них смутное представление о том что в действительности нужно компании. Лучше всего проходить собеседование с ЛПР. Как правило эти люди интуитивно чувствуют подойдет человек или нет.
    Помню забавный случай, когда в конце 90-х проходил собеседование на программиста. Было много тестов, ряд из которых требовал просто запоминания, это раздражало. В результате после заключительной фазы с гендиром, когда он произнес: «программист из вас так себе...», я дал ему развернутую оценку его системы найма и ее кривизну.
    В результате он предложил возглавить отдел программистов )


  1. kibergus
    30.03.2018 22:56
    +1

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

    Автор статьи упускает один важный момент. У меня в арсенале есть задачи, которые я могу дать и junior'у и senior'у. Но вот оценивать я их буду по-разному и смотреть на разные вещи. Там не будет сложного алгоритма. Но её можно разбить на подзадачи, использовать нужные структуры данных или алгоритмы из стандартной библиотеки. Заметил ли кандидат граничные случаи? С senior'ом можно поговорить, как это протестировать. Можно обсудить особые варианты постановки задачи: ввести многопоточность, а что есть памяти мало а данных много, а если памяти наоборот много? И вообще, моя задача — найти сильные стороны кандидата. Я возьму простую задачу и буду от нее раскручивать беседу в разные стороны, нащупывая границы знаний.

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


    1. Mehdzor Автор
      30.03.2018 23:23

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


      Кстати, недавно с вами(яндексом) общался ради интереса. Был в таком шоке, что пошел писать эту статью.


      Итак, собеседование в яндексе это:


      • Когда вас игнорирует HR по несколько дней.
      • Когда на собеседование с вами никто не приходит. А в качестве извинений дают промо код на лапшу.
      • Когда CTO проекта говорит, что тех. собеседования у вас бесполезные и он не видит в них смысла, но ничего не может с этим поделать.
      • Когда на добровольное предложение сделать реальное живое тестовое задание объемом в пару рабочих дней(!!!) HR кидает ссылку на сборник математических задач с просьбой подготовиться.

      Пусть вывод за меня сделает утка:
      image
      P.S. До тех. собеседования дело не дошло после этого.


      1. kibergus
        31.03.2018 00:02
        +1

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

        Ну задача все-таки была не найти фиксированную подстроку в строке, а найти подстроку, удовлетворяющую определенным свойствам. Готовой реализации в STL нет. Человек не смог решить задачу даже неоптимальным способом: перебрать все возможные подстроки и каждую проверить. В том числе не смог решить явно поставленную мной подзадачу: перебрать все подстроки в строке.
        Если задача решается функцией из стандартной библиотеки языка и кандидат это знает — это большой плюс. У того же facebook'а есть целый кластер задач, которые легко решаются с использованием std::nth_element. Правда все равно попросят реализовать сам алгоритм.

        По остальным пунктам: я ни в коем случае не говорю, что процесс хорошо налажен. Проблемы есть, их решают. Я не могу сказать ничего конкретного про Ваш случай, это вне моей компетенции. Но пункты 1 и 2 это про качество самого процесса, а не про подход в целом. Это не доводы за/против того, как устроено собеседование. Но да, это не нормально, это считается проблемой и это лечат. Третий пункт комментировать не могу, это пересказ личного мнения другого человека, которого я не знаю. А про четвертый… есть много причин, почему тестовое задание не может быть единственным критерием. Результаты интервью должны быть сравнимыми (заставить всех тратить пару рабочих дней на задание нельзя, это неуважение), оценивать должны несколько независимых человек (для получения объективной оценки), как проверить, кто именно выполнил задание?

        P.S. Я даже не утверждаю, что типовые задачи с собеседований это идеальный вариант. Некоторые компании пытаются искать другие формы. В uber'е, например, практиковали тестовое задание на ноутбуке в onsite интервью. Но весь этот процесс значительно более сложный, чем Вам кажется.


        1. Mehdzor Автор
          31.03.2018 00:09
          +1

          Спасибо за последовательный ответ на мой токсичный комментарий)


  1. garudagiri
    30.03.2018 22:58
    +1

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

    В первую очередь, интересует Человек, который станет частью команды. И если всё, что он может — это обижаться на просьбу написать простенький алгоритм, то скорее всего, мы не сработаемся.
    Такие персонажи попадаются, с такими запросами… извините все остальные, но я вам не верю. Никому из вас.
    Хотел бы верить, и стараюсь с вами говорить о том, что вы типа знаете, мало ли чему-то полезному научите. Но чаще обламываюсь.


  1. Labutin
    31.03.2018 09:26

    Коммент мой будет в самом низу и мало кто его прочитает.
    Но давайте прикинем.
    Какой процент ВСЕХ программистов/разработчиков способен пройти собеседование, где задают задачки на алгоритмы (деревья, графы и т.п.)? Ну явно меньше половины. Мне даже кажется, хорошо, если таких будет процентов 20%. Хорошо это или плохо — это отдельный вопрос.
    Итак, 80% не способны. Им это и не нужно. И скорее всего бОльшая часть из них вполне себе отличные разработчики.
    К чему я веду? Да это уже далего не первая статья, где закидывают тухлыми помидорами гуглы и фейсбуки с их подходами. Догадываетесь почему? Потому что большинству такие собеседования не по зубам. Известно же, что при таком подходе ложно отрицательных решений (не берут отличного разработчика) очень много.
    Вот из-за этого люди и любят такие статьи.


    1. Mehdzor Автор
      31.03.2018 11:33
      +1

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


      1. khim
        31.03.2018 17:37

        Интересно, какой именно «результат работы» показывает вам, что у них куча непрофессионалов. То, что какой-нибудь Google Wave «не взлетел» ничего не говорит о том, насколько качественные разработчики его писали.


        1. Mehdzor Автор
          31.03.2018 20:02

          Эти продукты упомянуты в статье.


    1. VolCh
      31.03.2018 15:47
      +1

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


  1. shopoloff
    31.03.2018 11:30
    +2

    Проблема в том, что в нашей стране отсутствует понятие нормального HR. Давайте взглянем правде в глаза. Кто идет в HR? Девочки проучившиеся на социологов/экономистов/юристов/историков/маркетологов, но в реале ничего из себя не представляющих. Ведь даже в IT индустрии они отнимают минимум 1/3 рекрутингового процесса. А потом же, именно они растут по должности в HR отделах и, соответственно, так или иначе формируют эту порочную практику. HR и рекрутингом должны заниматься те, кто это действительно любит, а не вчерашние "мамины отличницы" неожиданно обнаружевшие, что их красные дипломы по политологии никому и даром не нужны.


  1. reci
    31.03.2018 12:23

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


  1. iPilot
    31.03.2018 14:55
    +2

    А вариант анкеты от работодателя вида:




    Вопрос N: <тема вопроса>


    1. Знаю хорошо, очень много раз использовал на практике во множестве различных кейсов;
    2. Знаю хорошо в теории, но на практике мало использовал;
    3. Остаточные, но глубокие знания: быстро восстанавливаются чтением манов/легким гуглением;
    4. Остаточные, поверхностные знания: уточняется углубленным чтением манов/гуглом, требуется время на «кэширование» этих знаний.
    5. Не знаю, никогда не работал с этой технологией

    ***

    Пункты В и Г — это соответственно А и Б, но спустя некоторое время(год? два?)


    1. VolCh
      31.03.2018 15:51

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


  1. iroln
    31.03.2018 23:33

    Недавно как раз читал про отчёт и впечатления парня, который год готовился к собеседованиям в Google, Facebook, etc. Он пишет так, словно всё так и должно быть, словно все так должны делать и это норма. Полтора года решать какие-то оторванные от жизни олимпиадные задачи на LeetCode или InterviewBit вот это всё… Ему кажется, что это правильно. Но ведь это же какой-то идиотизм, если подумать. Полтора года своей жизни потратить непонятно на что ради того, чтобы потом "делать сайты" в google? :) То, чем он занимался, это даже не Computer Science, это фигня какая-то, "синтетические знания" исключительно ради прохождения собеседования в IT гигант.


    В общем, кому интересно, почитайте :)
    http://telegra.ph/google-03-22-2


  1. maybe_im_a_leo
    01.04.2018 01:16

    Ситуация конечно зависит от компании, специфики конкретного бизнеса и продукта. Но самое главное — тех кто проводит собеседование.
    Я работаю в Tesla и меня иногда приглашают провести интервью. Всегда трачу не менее часа для детального изучения что делал человек до этого. Читаю его диссертацию (если есть), статьи, блог, смотрю проекты на GitHub. Т.е. к моменту интервью у меня может и не быть к кандидату вопросов — и так все понятно.