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

Cо стороны соискателя (aka разработчик Петя)


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

Бывают ли действительно клевые задачи? Бывают но очень редко, может быть одна на 100. В основном, все стандартно и не интересно — считать откуда-то данные, что-то с ними сделать, записать куда-то данные (файл/база/сокет..). Или реализовать на месте какой-то известный алгоритм. Почему это так? Да потому что, в большинстве случаев нанимателю нужно просто проредить стопку CV на его рабочему столе, об этом я расскажу подробней дальше.

Cо стороны нанимателя (aka тимлид Вася)


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

А зачем нам неудачники
Конец рабочего дня. Сидят два специалиста по подбору персонала, старый и молодой.
Старый:
— Ну что, я закончил. Пошли домой?
Молодой, посматривая на пачку необработанных резюме:
— Да у меня ещё работы уйма.
Старый подходит, делит пачку на две, одну выбрасывает в урну. Молодой:
— Как?!
Старый:
— Им не повезло. А зачем нам неудачники?

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

Собеседующий


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

Время выполнения и объем задания


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

Качество кода и оформления


Тут наниматели пытаются реализовать в постановке задач то, чего они лишены в реальной работе — код с комментариями, покрыт unit-тестами, обязательно с code style, а бывали случаи, когда требовали краткий tutorial по программе. В большинстве же случаев в реальной работе совсем другие требования, гораздо прозаичней.

Формат задания


Можно встретить как стандартные задания на дом, так и такие извращения, как:

  • написать решение на доске(этим обычно грешат западные компании)
  • написать решение в notepad на ноуте компании
  • написать решение удаленно в режиме pair programming

Что Вася видит на выходе?


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

Что бы хотел видеть Вася?


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

Что дают тестовые задания в реальности?


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

Хорош нагонять, автор, наверное в крутых конторах меньше бреда с заданиями


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

image

Что, тестовые задания совсем не нужны?


Находясь на месте Васи, я иногда давал тестовые задания для того, чтобы было что обсудить после его выполнения. Но только, если сам разработчик не против его выполнить. Это хорошо подходит для Junior и Middle-разработчиков, если у них нет кода, который они могут продемонстрировать. Senior'ов и выше небольшим тестовым заданием уже не оценить, тут нужен другой подход.

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


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

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

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


  1. saipr
    28.09.2019 12:09

    Дотошный читатель скажет — «ОК, автор, если не тестовое задание, то как еще можно отобрать нужного сеньора?».

    Мои тестовые задания (вопросы) такие:


    • какую книгу сегодня читаем?
    • какую книгу последнюю купил (именно купил) и когда?
    • что такое fork?
    • что такое pipe?
    • что такое pid?
      Этого бывает достаточно


    1. JustDont
      28.09.2019 12:14
      -1

      какую книгу сегодня читаем?
      какую книгу последнюю купил (именно купил) и когда?

      Вы библиофилов в библиофильскую контору нанимаете?


      1. saipr
        28.09.2019 12:16

        Нет, я ищу профессионалов, которые умеют учиться!
        А вы как новые знания приобретаете?


        1. JustDont
          28.09.2019 12:23
          -2

          Наводящий вопрос задам: мы с вами где сейчас общаемся?


        1. TargetSan
          28.09.2019 12:25

          Я к примеру разбираю примеры и документацию по требуемой теме. В 95% случаев это проще чем искать непонятно какую книгу (если вообще есть) и выковыривать из неё нужные 2 абзаца по требуемому вопросу. Которых там скорее всего нет. БОльшая часть требуемой информации размазана тонким слоем по форумам и исходникам. О временном лаге книг я вообще молчу.
          И нет, это не какой-нибудь свежий React. А к примеру особенность поведения plugin API свежего SolidWorks.


          1. saipr
            28.09.2019 12:42

            проще чем искать непонятно какую книгу (если вообще есть) и выковыривать из неё нужные 2 абзаца по требуемому вопросу.

            Странно, зачем выковыривать-то? Мне важно, умеет человек учиться, следит он за развитием отрасли, повышает свои профессиональные знания или он застыл.


            1. JordanoBruno Автор
              28.09.2019 12:46

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


              1. saipr
                28.09.2019 14:06

                У каждого свой смысл жизни.


            1. TargetSan
              28.09.2019 12:58
              +2

              Окей. Я пишу в основном на С++. Мне нужен обзор последнего стандарта. Гораздо полезней для меня почитать референс, пролистать пропозалы, статьи от профильных блоггеров, обсуждения. А книга по С++20 будет фиг знает когда.


              1. sshikov
                28.09.2019 13:02

                C++ тут не одинок.


              1. saipr
                28.09.2019 14:03

                А вы посмотрите как описывали Си более 30 лет назад:


                Введение в Си. Послание из прошлого столетия


              1. saipr
                28.09.2019 14:05

                Так самое Главное — Вы Читаете. И в этом смысл. ы ищите и читаете. Честь и хвала вам.


                1. sborisov
                  28.09.2019 22:14

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


            1. Dolios
              28.09.2019 19:28
              +3

              А если последняя книга, которую я купил, была фантастика (а также предпоследняя и предпредпоследняя, я трилогию Лю Цысиня купил), то я не прошел квест?


              1. vdshat
                28.09.2019 20:33
                -6

                Ценность книг в комплексном и системном походе (не берем в расчет плохие книги), что в статьях практически невозможно достичь из-за малого объема. Если человек не осилил книгу по объему, то и большие задачи с множеством переменных и составляющих не по плечу. У меня был начальник, которого от одного вида 1000 страничной книги по С++ передергивало. Но и мышление было на таком же уровне.
                Читаете фантастику (именно читаете, а не слушаете или только смотрите), тем более если хорошую, то это очень хорошо, т.к. развито абстрактное мышление и воображение, а это в творчестве необходимо. А если у вас есть еще и знания по требуемым технологиям — вы ценный сотрудник


                1. Ahen
                  29.09.2019 01:36
                  +5

                  У меня был начальник, которого от одного вида 1000 страничной книги...

                  Но при этом он был вашим начальником, а не подчинённым ;)


                1. vdshat
                  29.09.2019 18:02

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


            1. YemSalat
              30.09.2019 11:35

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

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


        1. sshikov
          28.09.2019 13:01

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

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


        1. sergyx
          28.09.2019 14:36
          -1

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


          1. saipr
            28.09.2019 15:05

            Человек по книгам учится много чему: и математике, и языкам, и осваивает культуру да всему. Это какая информация устарела при выходе книг Льва Толстого или братьев Стругацких. Шекспира читают до сих пор. И вы пишите что что-то сиюминутное...


            1. sergyx
              28.09.2019 15:33
              +1

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


              1. sergyx
                28.09.2019 15:46

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


                1. vdshat
                  28.09.2019 23:42

                  Именно, повышение квалификации — это когда человек не застревает на чем-то одном.


                  1. ardraeiss
                    30.09.2019 23:38

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


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


                    1. vdshat
                      01.10.2019 00:04

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


                      1. ardraeiss
                        01.10.2019 10:36

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


      1. DoubleW
        29.09.2019 00:30
        +4

        Вы библиофилов в библиофильскую контору нанимаете?

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


        1. JustDont
          29.09.2019 12:47
          +1

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


          1. VolCh
            29.09.2019 14:07

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


            1. JordanoBruno Автор
              29.09.2019 15:10

              А в чем полезность книги про SQL, да еще такой древней, для фронтент? Где он применит знания?


              1. VolCh
                29.09.2019 20:27

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


            1. JustDont
              30.09.2019 09:10

              Ну ничего страшного, если фроненд разработчик будет читать книгу об SQL года так 2000

              Конечно. Но книгу об SQL года так 2000 в 2019 году гораздо проще найти/прочитать, опять же, в интернетах.


              1. VolCh
                30.09.2019 12:11

                Кому проще, кому нет. Особенно если к копирайту трепетно относишься, а читалки нет.


            1. MaxVetrov
              30.09.2019 10:37

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


              1. VolCh
                30.09.2019 12:12

                Новые такого же качества (например, 9-е издание) заметно дороже обычно стоят.


    1. kdmitrii
      28.09.2019 12:23

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


    1. Anton23
      28.09.2019 13:52

      А если я вообще не купил ни одной книги(по программированию)?


      1. saipr
        28.09.2019 14:00

        Сочувствую. А хоть в руках держали?


        1. AlexZaharow
          28.09.2019 19:05
          +4

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


          1. DoubleW
            29.09.2019 00:32
            +2

            Книги можно не только читать, но и писать

            Я думаю это тоже было бы хорошим началом беседы.


    1. kinall
      28.09.2019 17:45
      +2

      1. Peacemaker
        28.09.2019 21:38
        +1

        И если ответил хоть что-то, кроме «Не смотрю» — собеседование провалил? =)


        1. kinall
          28.09.2019 22:02

          По ссылке примерно так и сказано)


    1. 0xd34df00d
      28.09.2019 23:08

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


      какую книгу сегодня читаем?

      Certified programming with dependent types.


      какую книгу последнюю купил (именно купил) и когда?

      Algebra: Chapter 0. В апреле где-то, с тех пор прочитал примерно треть, сейчас пробуриваюсь через скучное для меня умножение и деление (это не веселые диаграмки гонять и доску для крестиков-ноликов чертить).


      Ваш вердикт?


      1. DoubleW
        29.09.2019 00:25
        +4

        Ваш вердикт?

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


    1. StrangerInTheKy
      29.09.2019 00:01

      какую книгу последнюю купил (именно купил) и когда?

      "iPhuck 10", пару месяцев назад (ответ совершенно честный — на самом деле купил именно ее). Иииииии???


      1. DoubleW
        29.09.2019 00:34
        +1

        Иииииии???

        Продолжим по списку :D
        — что такое fork?
        — что такое pipe?
        — что такое pid?


        1. MaxVetrov
          29.09.2019 09:20
          +2

          — вилка
          — труба
          — Pelvic inflammatory disease :)


          1. MaxVetrov
            29.09.2019 11:03

            Position-Independent Daemon )
            Phone I Do

            pipe — raspberry PI Product Edition
            fork — flustrated ork



        1. StrangerInTheKy
          29.09.2019 22:49

          Меня, собсна, интересовало, как вы будете интерпретировать ответ на этот вопрос. Какую информацию о кандидате можно извлечь из его ответа на вопрос "что такое fork", я более-менее представляю. А вот какую из ответа про книгу — не представляю совершенно.


          1. DoubleW
            30.09.2019 22:43

            Считайте это заменой разговора о погоде.


  1. JustDont
    28.09.2019 12:12

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

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

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


    1. DoubleW
      29.09.2019 10:03

      Во-первых, предварительное тестовое задание нетривиального объема (т.е. не на 5-10 минут кодинга или гугления) неплохо фильтрует тех, кто идёт на собеседование в режиме «я только спросить», а работа ему на самом деле особо не сдалась.

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


      1. JustDont
        29.09.2019 12:43
        +1

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

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


        1. VolCh
          29.09.2019 14:13

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


          1. JustDont
            30.09.2019 09:08

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


            1. VolCh
              30.09.2019 12:15
              +1

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


          1. DoubleW
            30.09.2019 22:44

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

            А второй и сам торопить не будет же :)


        1. DoubleW
          30.09.2019 22:46

          Более интересными для кого? Для них самих?

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


  1. ustasby
    28.09.2019 12:45
    -1

    Вы даже не представляете сколько можно отсеять безобидным тестовым заданием (или похожем)
    $a = [1, 2, 3, 4];
    удалите второе значение.

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


    1. JordanoBruno Автор
      28.09.2019 12:53
      -1

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


      1. ustasby
        28.09.2019 13:42
        +1

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


    1. kdmitrii
      28.09.2019 12:58
      +1

      Что-то я не понял. Удалить элемент "2" из массива состоящего из 4 чисел? В чем представленное решение не найс?


    1. jahr
      28.09.2019 13:47

      И какой же правильный ответ?)


      1. ustasby
        28.09.2019 14:00

        Очевидный — unset($a[1]);


        1. Amokmorg
          28.09.2019 15:36

          т.е. вы не решение хотели, а проверить память?


          1. SADKO
            28.09.2019 16:22

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


          1. ustasby
            28.09.2019 19:24
            -2

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


        1. maximw
          28.09.2019 16:41

          А почему не unset($a[2]);? Второй же удаляем, а нумерация с нулевого.

          Правильно было бы спросить, а второй это какой? Что делать с ключами, должна ли сохраниться последовательность?


          1. ustasby
            28.09.2019 20:03
            -4

            и ведь даже кто то плюсанул, интересно даже что у вас получится ))


          1. ustasby
            28.09.2019 21:00
            -7

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


            1. maximw
              28.09.2019 21:42
              +3

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


              Если это был сарказм и попытка "уколоть", то у вас не получилось.


              1. ustasby
                28.09.2019 22:09
                -1

                Тогда прочитайте что вы там написали. Особенно про ключи.


                1. maximw
                  28.09.2019 23:19
                  +6

                  Что конкретно у вас вызывает сомнения?

                  С ключами все довольно ясно. Т.к. при удалении элемента unset'ом ключи массива не меняются, получается не массив, а словарь Это разные структуры, хотя в PHP это один тип данных. Проиллюстрирую разницу:

                  $a = [1,2,3,4];
                  echo json_encode($a); //[1,2,3,4]
                  unset($a[1]);
                  echo json_encode($a); //{"0":1,"2":3,"3":4}
                  Вопрос про ключи и заключался в том, что вам нужно на выходе — массив или словарь?


                  1. JordanoBruno Автор
                    29.09.2019 00:56
                    +4

                    На самом деле, unset — не самое лучшее решение для массивов, как Вы верно заметили.
                    В данном случае более корректно будет:

                    array_splice($a, 1, 1);


                    Это, кстати, хороший пример плохого тестового задания для нормального разработчика, разве что подколоть очередного «php-эксперта».


                    1. maximw
                      29.09.2019 01:14
                      +3

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


              1. ustasby
                28.09.2019 22:48

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


                1. Dolios
                  29.09.2019 10:24
                  +8

                  Конечно, бессмысленно. Вы сели в лужу, о чем вам популярно объяснил ваш оппонент:
                  https://habr.com/ru/post/469099/#comment_20685681


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


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


                  1. ustasby
                    30.09.2019 12:27
                    -2

                    не хочу даже читать этот бред


                  1. wadeg
                    01.10.2019 04:04

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


        1. mamento
          28.09.2019 18:53
          +3

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


          1. avost
            28.09.2019 19:52

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

            Эээээ? Так ведь ни то и ни другое. Проверяют способность решать задачи. А в случае сомнения в правильности понимания условий задачи — способность задавать уточняющие вопросы. Я бы на вашем месте занялся прокачкой обоих этих скилов. По-моему, они у вас хромают :)


            1. mamento
              28.09.2019 20:06
              +2

              Это только по вашему ;)


    1. AlexTest
      28.09.2019 17:42
      +9

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


      1. DoubleW
        28.09.2019 21:01
        +2

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

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


        1. Lissov
          28.09.2019 23:15
          +1

          Присоединюсь тоже — человек с опытом собеседований понимает, что в 95% случаев с таким вопросом от него ждут собственную реализацию а не вызов библиотечного метода. И не расчитывать на 5% — вполне нормально.


          1. DoubleW
            29.09.2019 00:15

            И не расчитывать на 5% — вполне нормально.

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


          1. VolCh
            29.09.2019 14:21

            От опыта зависит.


    1. YemSalat
      30.09.2019 11:55
      +2

      Вы даже не представляете сколько можно отсеять безобидным тестовым заданием (или похожем)
      $a = [1, 2, 3, 4];
      удалите второе значение.

      Я не особо знаю php, но насколько я понимаю, предложенное вами решение не удаляет элемент из массива, а присваивает ему значение «нe определено»

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


      1. Lissov
        30.09.2019 12:36

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


        1. YemSalat
          30.09.2019 13:08

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


      1. MaxVetrov
        30.09.2019 13:47

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


        1. YemSalat
          30.09.2019 14:41

          Мне просто любопытно — насколько часто в ежедневной разработке требуется «удалять значение» в списке :)
          Нe элемент, а именно «значение»
          Ну и насколько я знаю — в php нету понятия декларированной переменной без значения. Хреновый у них фильтр кандидатов по итогу.


          1. sergyx
            30.09.2019 15:30

            Вообще-то unset($a[1]) именно удалит элемент массива, а не присвоит ему значение «не определено».


            1. YemSalat
              30.09.2019 16:21

              Возможно, как уже выше говорил — в php не очень разбираюсь.
              Тут вопрос скорее о том, что считать удалением.
              При использовании unset получается что-то вроде: `{0: 1, 2: 3, 3: 4}`
              Это вообще применимый случай? Теперь $a[1] говорит что такого значения нету. В таком случае это не «массив», а скорее словарь.
              Логичнее, на мой взгляд называть «удалением из массива» вот такой результат:
              `{0: 1, 1: 3, 2: 4}`


            1. MaxVetrov
              30.09.2019 16:30

              Дырку в массиве сделает, индексы у остальных элементов останутся теми же. array_splice — поставит новые индексы для элементов после удаляемого.


              1. sergyx
                30.09.2019 16:52

                Дырку в массиве сделает

                Это понятно, но это уже другая история)


                1. MaxVetrov
                  30.09.2019 18:54

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

                  $a = [1,2,3,4];
                  $b = &$a[1];
                  $b = 99;
                  print_r($a);
                  
                  $a[1] = 100;
                  unset($a[1]);
                  print_r($a);
                  print($b . "\n");


                  Output
                  Array
                  (
                  [0] => 1
                  [1] => 99
                  [2] => 3
                  [3] => 4
                  )
                  Array
                  (
                  [0] => 1
                  [2] => 3
                  [3] => 4
                  )
                  100


    1. knagaev
      01.10.2019 10:58

      А если массив должен быть immutable?


      1. ustasby
        01.10.2019 11:10
        -1

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


        1. knagaev
          01.10.2019 11:53

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


  1. sshikov
    28.09.2019 12:57

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

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


    1. JordanoBruno Автор
      28.09.2019 13:07

      Две дюжины сеньорских резюме — это даже мало для известной компании или компании с хорошим бюджетом для позиции. Это все для популярных технологий, если искать какого-нибудь редкого, типа erlang или embedded или в условном Мухосранске — там да, выбор будет скуден.


      1. sshikov
        28.09.2019 13:17

        Ну видимо мое направление Java разработка достаточно редкое для Москвы. Я никогда сам не видел даже 10 «подходящих» резюме за раз — обычно присылают кандидатов по одному, раз в месяц в лучшем случае. А позиция с вилкой «до 250 на руки» как висела с весны, так и висит…


        1. JordanoBruno Автор
          28.09.2019 13:32

          Джавистов в Москве — пруд пруди, причем весьма грамотных, но 250 — не так много для сеньора. Сбертех +20% премии к рынку давал в свое время, чтоб укомплектовать команды.


          1. sshikov
            28.09.2019 14:20

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


            1. JordanoBruno Автор
              28.09.2019 17:10
              +1

              Чтоб синьоры шли — нужно их звать хорошо, они — люди разборчивые.

              Может у вас джависты — это андроид разработка?

              Да не, самые обычые — широкого профиля бэкэндщики-джависты.


              1. sshikov
                28.09.2019 19:25

                >Чтоб синьоры шли — нужно их звать хорошо, они — люди разборчивые.
                Вот это несомненно.


  1. Static_electro
    28.09.2019 13:23

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


    1. JordanoBruno Автор
      28.09.2019 13:29

      онлайн теста на знание языка с вариантами ответов хватает за глаза

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


      1. Static_electro
        28.09.2019 13:35

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


  1. GrieverGraver
    28.09.2019 13:27

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


  1. VladVR
    28.09.2019 15:11

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


    1. SADKO
      28.09.2019 16:32

      Может у него просто настроения не было.
      Одно дело когда ты в заранее определённое время решаешь заранее определённую задачу. И совсем другое когда обстановка не рабочая и soft skills activated.


    1. YemSalat
      30.09.2019 17:58
      +1

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


  1. user_man
    28.09.2019 18:53

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

    Да, нетривиально, но другие варианты неэффективны.


  1. RouR
    28.09.2019 19:08

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

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


    1. JordanoBruno Автор
      28.09.2019 19:17

      А кандидат должен на слово поверить что оплатят, или будет какой-то договор?

      Это может быть договор, либо сделка через фриланс-биржу.

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

      Очень многим, Вы ни разу на фрилансе или по контракту не работали?


    1. SbWereWolf
      29.09.2019 00:18

      как минимум не надо человек в кадрах оформлять и прочие бумажки.


  1. Dolios
    28.09.2019 19:45
    -2

    Хорошо известен случай, когда автора пакетного менеджера Homebrew не взяли в Google, лишь по той причине, что на 7-м интервью он не смог на доске написать алгоритм, как инвертировать бинарное дерево.

    А меня одного удивило, что на 7(!) интервью в Google человека попросили инвертировать бинарное дерево (элементарная задача для джуна)? И что программист не смог это сделать? Задача рекурсией (хоть это и не оптимально) решается студентом за 10 минут, даже если этот студент до этого ни разу не слышал вообще ничего про двоичные деревья и 5 минут из этих 10 потратит на осознание того, что это такое.


    Имхо, в этой ситуации люди что-то не договаривают.


    1. DFooz
      28.09.2019 20:06
      +1

      ну если всё элементарно в этом мире, чего ты ещё премию Тьюринга не получил?


      1. Dolios
        28.09.2019 21:01
        +1

        ну если всё элементарно в этом мире

        Поэтично. Но где ты это вычитал в моих комментариях?


        Пускай тебе будет стыдно.
        https://leetcode.com/problems/invert-binary-tree/


        1. DFooz
          28.09.2019 21:41
          +4

          вот это

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

          бла-бла-бла. Отучайся говорить «просто», если для тебя это просто. У всех разный опыт, каждодневная практика и тп.
          ЗЫ: не уточнишь, за что мне должно быть стыдно?


          1. Dolios
            28.09.2019 21:56

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


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


            1. DoubleW
              29.09.2019 00:17
              -2

              Да и гугл не стал бы на 7 интервью такие вопросы задавать.

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


              1. tamakio
                29.09.2019 05:32
                +1

                Нет. Обычно это решается на совещании до интервью или рекрутер описывает какую часть знаний надо проверить.
                Говорю на собственном опыте и опыте друзей в роли интервьюера. И как соискатель. Даже видна разница и усложнение заданий. У нас если на первых двух онсайт сессиях кандидат плохо показывает себя — да остальных отменят.
                Не знаю отменяют ли в Амазоне, но там нарастает сложность. Первое задание будет на простой алгоритм и умение писать код. Потом дизайн на уровне приложения, потом взаимодействие сервисов.
                Но есть и исключения. Когда-то в VMware, второй интервьюер задал проблему, а я даже не стёр её с доски


          1. YemSalat
            30.09.2019 12:11
            +1

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

            Блин, сорян, но в «разворачивании бинарного дерева» действительно все настолько просто, что ваш «аргумент» звучит кхм…
            Вот вам пример:
            foo = {
              left: 1,
              right: 2
            }
            

            Задача: поменяйте местами значения left и right.
            Вы считаете это действительно просто только для каких-то избранных гениев алгоритмизации?
            Мне кажется тут скорее проблема в том что у многих людей само выражение «бинарное дерево» вызывает диссонанс и кажется чем-то совсем академическим и нe применимым нa практике.


  1. SbWereWolf
    28.09.2019 20:44
    +1

    тестовое задание это именно повод поговорить. И это действительно способ отсечь тех кто «просто спросить».
    И конечно тестовые задания делаются по принципу — что быстрей то и сделал, и если ты получил дооолгое тестовое, то ты его дооолго не делаешь, и скорей всего работу найдёшь раньше чем до выполнения этого задания дойдёт очередь.
    Мне как работодателю, всегда интересно посмотреть на код будущего сотрудника, за 2-4 часа можно написать достаточно кода что бы показать кто ты есть, поэтому чем то громоздким ни когда не гружу.
    Тестовых за свою жизнь я сделал не мало, из моих 40 репозиториев на гитхабе, только 5 это какие то проекты, остальное — тестовые.
    Тестовые попадаются интересные, одно из 5-ти не чаще, и как правило эти тестовые укладываются в один рабочий день, а чаще в пару часов.
    Например написать сложение столбиком двух чисел произвольной размерности ( одно число это 40+ десятичных знаков), тут мы видим и как человек с валидацией работает и как человек делает декомпозицию и делает ли он её вообще, как называет переменные и как оформляет код.
    Хорошее задание, возьмите себе на заметку.


    1. JordanoBruno Автор
      28.09.2019 23:18

      Хорошее задание, возьмите себе на заметку.

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


      1. DoubleW
        29.09.2019 00:20
        +1

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

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


      1. SbWereWolf
        29.09.2019 03:33

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


      1. billyevans
        29.09.2019 08:09
        +1

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


        1. 0xd34df00d
          29.09.2019 16:21
          +1

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

          Эм, а зачем к интервью готовиться и что-то там решать?


          1. billyevans
            30.09.2019 05:55

            Ну тк это совершенно отдельный скил, который вообще не используется на работе. Уметь за 40-50 минут решить какую-то задачку и писать код на доске/бумажке(очень редко бывает на лэптопе) это не то, что делаешь на работе. Я, несмотря, на то, что провожу интервью так сходу не пройду интервью в гугл, фб, убер или еще куда в подобное место, даже про phone screen не уверен. Как думаю и большинство людей, кто-то может бесспорно, да.
            Именно поэтому я в реальности и не готовлюсь ;-) Тк считаю, что если меня будут оценивать по такому странному навыку — то и нахер работать в таких местах.


  1. ameli_anna_kate
    28.09.2019 22:57
    +1

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


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


    1. DoubleW
      29.09.2019 00:23

      Мне не нравится тестовое, если его выполнение займет от четырех часов и больше

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

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

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


      1. Lissov
        29.09.2019 00:34
        +1

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

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

        и вот это тоже не получится, потому что тот-же Амазон пригласит поговорить с технарями куда-нибудь в другой город часов на 5, и там «вставать и уходить» после 15 минут глупо.
        В одном я с Вами совершенно согласен — для условных Гугла и Амазона это адекватно по очевидным причинам, а «ПупкинРоссельМашУгорску» так делать не стоит.


        1. DoubleW
          29.09.2019 00:36
          +1

          и там «вставать и уходить» после 15 минут глупо.

          Глупо сидеть 5 часов если через 15 минут уже совершенно точно понятно что «дела не будет».
          Другой вопрос, что таким уходом можно получить плохую репутацию.


          1. AlexZaharow
            30.09.2019 08:56

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


          1. Lissov
            30.09.2019 23:09

            Я один раз уже до собеседования понимал, что «дела не будет». О чём аккуратно намекнул сразу. Но если фирма оплатила перелёт и 4 дня проживания, и предпочла продолжить разговор в надежде меня убедить — с моей стороны честно напрячься и предоставить им шанс.
            И это был не Гугла и не Амазон, а для них тем более актуально — если уж приехал на собеседование на 5 часов с разными технарями, то даже если конкретный проект не подходит, там много разного — стоит проявить себя и потом обсуждать другие варианты.


  1. Shadow_DarK
    28.09.2019 23:15
    -1

    есть что нибудь актуально про собеседования backend developer? тут вроде вода)


  1. aidarchikable
    29.09.2019 10:03

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

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


  1. kinall
    29.09.2019 12:31
    +1

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


  1. VladimirAndreev
    29.09.2019 12:56

    Скорее понять, умеет ли кандидат читать…


  1. YemSalat
    29.09.2019 14:37
    +1

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


  1. VolCh
    29.09.2019 14:40

    Сильно зависит от кучи факторов. Основной, по-моему, кто на данной вакансии по факту продаёт, а кто покупает. Если компания активно хантит уже работающих специалистов без заметного повышения в позиции/деньгах для них, то ей надо продать себя раньше, по сути, чем вообще заикаться о процессе отбора. Типа "вот краткое описание вакансии, вот подробное, вот компании, вот проекта. Если вас заинтересовало, но есть вопросы, то вы можете подъехать к нам и мы опишем подробнее и ответим. Если вас всё устроит, до договоримся о дальнейших шагах".
    Заикаться о тестовом когда кандидат ещё даже не кандидат, о компании, о проекте, о позиции ничего не знает, кроме" работу работать, молодой дружный коллектив" и, главное, его и на текущей работе всё в целом устраивает — большая ошибка, повод отсеять себя в качестве неадекватного работодателя, причём надолго.


    1. DoubleW
      30.09.2019 22:54

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

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


  1. KvanTTT
    29.09.2019 15:38

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


    1. YemSalat
      30.09.2019 07:17

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

      Потому что у них есть чем заняться? Если у вас одно-два предложения и особо выбора нету, то тестовое задание — это ОК (при этом все-равно небольшое)
      А если у вас больше 5ти предложений и каждый даст вам по тестовому зданию?


      1. VolCh
        30.09.2019 08:00

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


  1. vdshat
    29.09.2019 18:29

    Пару раз делал тестовые задания. Один раз было довольно интересное — чат-сервер и бот с мониторингом (java). Честно говоря, не думал наниматься, просто задание понравилось. Решил проверить за сколько напишу в таком режиме. Фигню писать не хотелось, а нормальное решение, которое бы можно было хоть в прод выставить заняло больше времени, чем ожидалось. После чего понял, что я на собеседованиях красть время не буду никогда, да и сам не буду в этом участвовать. Но поддался…
    Второй раз, нужно было быстренько за 2 часа архитектуру набросать для сервиса каршэринга, хотя на сертификацию на Java Architect неделю дают. Тут была засада, т.к. описание архитектуры в разных компаниях ведется по-разному. И даже, если ты сто раз это делал, то не факт, что твое описание будет принято. Вывод был у нанимателя, что я сам архитектуру никогда не делал. Супер! А кто ж за меня ее делал раньше?! Тем не менее на лида предложение получил, но отказался, т.к. шило на мыло менять не стал. Но опыт был безценен, т.к. еще раз убедился, что оценка всегда субъективна, а время свое на чьито хотелки не должно тратиться, либо должно оплачиваться.


    1. DoubleW
      30.09.2019 22:56

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

      Как так то? Вот какой логикой они руководствовались?


      1. vdshat
        30.09.2019 23:14

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


  1. djalin
    29.09.2019 21:37

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

    По идее конторка так и работала — один кандидат одно напишет, второй второе, третий слепит.


  1. vdshat
    30.09.2019 09:01

    Хороший поиск и подбор кандидатов пока встречал только в одной компании.
    HR проводит блиц-опрос «да»-«нет», без времени на подумать, по языку и ООП. И высылаешь свой лучший, как ты считаешь, код.
    Собеседование уже со старшим специалистом, чтоб оценить мышление кандидата.
    И финальное собеседование о приеме на работу.
    Все было построено, я бы сказал, идеально.
    Не тратится много времени специалистов, чтоб отсевать трэшь. После HR-опроса ты уже, примерно, понимаешь уровень кандидата, а не полусаешь «сеньора» с годом реальной работы.


    1. VolCh
      30.09.2019 12:20

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


      1. vdshat
        30.09.2019 20:17

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