Привет, Хабр!

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

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

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

Собеседование 1: Денис Кривощеков


Занимается фрилансом, изучает Ruby on Rails.



Собеседование 2: Евгений Синицын


Начинает с PHP-разработки, хочет двигаться в сторону чего-то сложнее и интереснее.



Собеседование 3: Данияр Супиев


Занимается фрилансом. Про себя: «Пишу в основном на питоне, но, в принципе, могу писать на чём угодно, если гугл под рукой. Учился в колледже ЦАТЭК в Алматы».?



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

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


  1. x88
    29.03.2016 13:51
    +47

    Теперь я знаю, об идиотизме HRов все.


    1. neuotq
      29.03.2016 14:21
      +1

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


      1. VadimChin
        30.03.2016 15:05

        Честно говоря, я бы с большей вероятностью взял человека который может набрасать парсер на либах, чем живого ума товарища умеющего переставлять буковки. А насчет джуниора, закидываем его на фриланс сайт — он выбирает себе задачу по интересу и возможности запилить (те не абстрактную конину в космосе, а то, что реально требуется людям), после, подготавливается список книг и с указанием разделов которые 100% надо читать. Ну и стартуем. Периодически сморим bitbucket и отвечаем кучно на вопросы со стороны дж. Несколько итераций и уже ясно ху из ху. А чтобы был стимул — сразу оговаривается зп выше рыночной.


    1. Aleksey_Babukh
      29.03.2016 14:24
      -3

      Не могли бы Вы раскрыть мысль?


    1. Kroid
      29.03.2016 14:30
      +13

      Вы мой парсер сломали.


    1. AlexP11223
      29.03.2016 16:30
      +5

      Не увидел в видео ни одного HR'а :)


  1. ankaid
    29.03.2016 14:23
    +4

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


  1. ubushan
    29.03.2016 14:23
    -1

    По первому видео.
    На Python3 эти задачки решаются проще простого
    print('hello world'.title())
    Hello World
    print('hello world'.upper())
    HELLO WORLD


    1. mukizu
      29.03.2016 15:16
      +2

      >Python3
      Версию (если сравнивать с актуальной 2й) можно и не указывать.

      В рубях собственно не сильно сложнее:

      .map(&:capitalize).join(" ") — без рельсов

      .titleize — с рельсами

      Ну и downcase\upcase


    1. 183614956
      29.03.2016 16:58
      +2

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


  1. lirq
    29.03.2016 14:23
    +7

    Люди-то в курсе были, что вы их на всеобщее обозрение выложите?


    1. freetonik
      29.03.2016 14:24
      +7

      Конечно.
      В публикации сказано:

      ...[мы] решили предложить нашему активному сообществу идею: публичные собеседования в прямом эфире! Сразу нашлось несколько кандидатов...


      1. Borz
        29.03.2016 16:24
        +6

        прямой эфир и выкладывание записи эфира несколько разные вещи. Нет?


        1. AlexP11223
          29.03.2016 16:28

          Разве бывает прямой эфир без записи? Как минимум кто-то записал бы, особенно если сказать, что запись выкладываться не будет :)


          1. RouR
            29.03.2016 16:38
            +8

            Бывает. Это разные вещи.


        1. freetonik
          29.03.2016 16:46
          +3

          Все были в курсе и все дали согласие на эфир, запись и распространение, не волнуйтесь.


  1. ubushan
    29.03.2016 16:27
    +6

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


    1. telp
      29.03.2016 16:49
      +7

      потратил конечно 3,5 часа драгоценного времени

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


      1. ubushan
        29.03.2016 16:57
        +6

        Спасибо кстати за совет, попробовал немного посмотреть, на 1,25 в принципе на слух не заметно, что скорость увеличена и голоса не деформировались, круто. И почему я раньше не додумался?))
        Спасибо)


        1. kazmiruk
          29.03.2016 17:17
          +7

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


          1. Rasifiel
            29.03.2016 20:35
            +8

            Самое тяжелое потом с живыми людьми общаться или слушать их. Очень медленно все.


            1. kazmiruk
              29.03.2016 20:39
              +1

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


              1. copist
                30.03.2016 08:00
                +1

                особенно сериалы


                1. Ti_Fix
                  30.03.2016 11:35
                  +1

                  Если смотреть локально, то и сериалы с фильмами можно ускорять и замедлять по желанию...


  1. fetis26
    29.03.2016 18:22
    +6

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


    1. tenbits
      29.03.2016 22:25

      Нaверное лучше всё таки — реализация интерфейса доступа к данным. То-есть мы делаем стаб для IDataProvider


      1. fetis26
        29.03.2016 22:36

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


        1. tenbits
          29.03.2016 22:48

          Разумеется заглушаются методы, но лучше, когда на базе интерфейса.


          1. fetis26
            29.03.2016 22:49

            Это разумется. Оно по другому ведь и не сделаешь.


  1. evnuh
    29.03.2016 18:56
    +14

    Второй парень — Евгений, вообще идеальный джуниор. Он всё правильно говорил, а главное — правильно думал. Зато собеседовавший его человек явно некомпетентен и не умеет проводить собеседования.
    Во-первых, на первой задаче про часы. Как человек. знающий решение. вполне можно было бы догадаться, обо что споткнётся джуниор при попытке её решения, а значит и быстро дать понять, в чём косяк. Но вместо четкого контрпримера или вопроса, вы только запутали человека своими объяснениями про 0-11 часов. Я уверен он так и не понял, как же быть при 24 формате.
    Во-вторых. задача про Яндекс. Тут вы вообще мега коряво формулировали задачу. Путали слово с буквой постоянно. Евгений уже сам додумался, что вы всё-же спрашиваете про слово А, а не про букву А. Потом начали про устройство яндекса спрашивать. И вопросы у вас были абсолютно не чёткие, не только в этой задаче. Поэтому вы часто слышали от Евгения "я наверное не допонял вопрос", а сами чатсо произносили "нет, я немножко другое имел в виду / немножко другое спрашивал". Я, как человек. понимающий о чём речь, знал, что вы хотите услышать. Но человек, который не знаком с теорией даже не мог подумать, потому что не понимал, в каком формате вы хотите получить ответ и о чём ему надо думать.
    Короче, вы как препод на экзамене: "Как должна выглядеть эта кривая?". И студенты сидят мучаются, пытаясь догадаться, какой же ответ он хочет услышать, хотя знают, как она выглядит.


    1. complexityclass
      29.03.2016 23:41

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


      1. Pazzik
        30.03.2016 08:57
        -2

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


        1. Apathetic
          30.03.2016 10:18
          +2

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


      1. Arlekcangp
        30.03.2016 10:40

        Т е от джуниора требуется идеальные знания языка а от того парня с опытом нет? Иначе как объяснить что ему кода писать не пришлось?


    1. copist
      30.03.2016 08:01

      Опять часы :( Всё те же часы.


  1. woworks
    29.03.2016 19:12
    +4

    Собеседование 2, 1:04:17 — Штирлиц еще никогда не был так близок к провалу :)


  1. mbait
    29.03.2016 21:09
    +11

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


  1. pshhpshh
    29.03.2016 21:36
    +1

    А немного больше бекграунда к данным ситуациям?
    Что за задания были для первого человека два года назад?


  1. Pazzik
    29.03.2016 21:36
    +3

    Во втором собеседовании так в итоге и не понял вопроса про поиск в тексте. Какой ответ ждали от парня?


    1. tenbits
      29.03.2016 22:23
      +2

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


    1. Accetone
      29.03.2016 22:35
      +4

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


      1. evnuh
        29.03.2016 23:36
        +4

        Мне понравилось особенно, когда джуниору сказали, что "просматривать миллион текстов будет очень долго, это не работает". И тут в его глазах прямо видна была борьба "вроде да, должно быть долго" и "но как же узнать что в тексте, если их все не просмотреть". Поэтому он начал пытаться что-то про "сузить выборку, отбросить ненужные тексты". Его обманули, а он бедняга не понимал, в чём не прав :)


        1. tenbits
          30.03.2016 00:00
          +2

          ) Прямо в точку!


    1. FreeNickname
      30.03.2016 10:41
      +1

      На ум приходит параллелизм (очевидно) и построение индекса (к примеру, по словам). Что ещё могли хотеть – я без понятия)


  1. nikola166
    29.03.2016 21:36
    +3

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


  1. summerwind
    30.03.2016 01:31
    +1

    Интересно, почему на одну и ту же позицию взяли кандидатов такого несравнимого уровня?) Двое только-только начали программировать, а третий — человек, пишущий парсеры, знающий многопоточность, асинхронность, очереди задач, юнит-тесты и с опытом Python N лет =)


    1. Apathetic
      30.03.2016 10:19
      +1

      Третьего Кирилл и интервьюировал по-другому.


  1. m0sk1t
    30.03.2016 02:11

    3 видео… Цой жив, или мне одному парень показался похож как внешне так и голосм? =)


  1. Mugik
    30.03.2016 08:46
    +3

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

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


    1. summerwind
      31.03.2016 00:08

      Видимо, в вашем представлении идеальное собеседование выглядит как-то так:


      image


  1. catcher1951
    30.03.2016 15:00
    +2

    Во втором собеседовании парень, вроде, толковый, но видно что нет базы. Мое мнение — ему нужно было более внятно объяснить это как причину отказа и причем сделать это сразу после того, как человек дал понять что не знает структур и больше не мучить его вопросами на эту тему. Ну и можно еще дать список того, что нужно чтоб ответить на их вопросы, например: почитать дискретку, поработать с указателями в С — С++, выучить алгоритмы и структуры данных, выучить архитектуру ПО, почитать про шаблоны проектирования и попрактиковаться с их применением, почитать про БД и, наконец, написать свое небольшое приложение.