Мы в Хекслете делаем не только практические курсы по программированию, но и готовим людей к карьере программиста. Например, недавно запустили полную программу обучения «Профессия PHP-программист», куда входят основы программирования, частично книга СИКП, веб, базы данных, деплой, управление конфигурацией и многое другое, что мы считаем важным для настоящего разработчика. По завершению учебной программы мы помогаем людям получить первый опыт и устроиться на работу.
Важный аспект последнего шага это подготовка к собеседованиям. Мы знаем, что собеседования могут быть пугающими и сложными, поэтому решили предложить нашему активному сообществу (которое живет, в основном, в большом слак-чате) идею: публичные собеседования в прямом эфире!
Сразу нашлось несколько кандидатов, и наш технический директор Кирилл toxicmt Мокевнин провел три собеседования в прямом эфире. Сегодня публикуем видеозаписи этих собеседований. Все кандидаты претендуют на позицию джуниор-программиста.
Собеседование 1: Денис Кривощеков
Занимается фрилансом, изучает Ruby on Rails.
Собеседование 2: Евгений Синицын
Начинает с PHP-разработки, хочет двигаться в сторону чего-то сложнее и интереснее.
Собеседование 3: Данияр Супиев
Занимается фрилансом. Про себя: «Пишу в основном на питоне, но, в принципе, могу писать на чём угодно, если гугл под рукой. Учился в колледже ЦАТЭК в Алматы».?
Еще мы проводим бесплатные вебинары и публикуем открытые лекции, их можно найти на гитхабе.
Комментарии (51)
ankaid
29.03.2016 14:23+4Хекслет — один из немногих образовательных проектов, где новичков учат не только списку функций языка X.
Сообщество в слаке довольно живое, рекомендую :)
ubushan
29.03.2016 14:23-1По первому видео.
На Python3 эти задачки решаются проще простого
print('hello world'.title())
Hello World
print('hello world'.upper())
HELLO WORLD
mukizu
29.03.2016 15:16+2>Python3
Версию (если сравнивать с актуальной 2й) можно и не указывать.
В рубях собственно не сильно сложнее:
.map(&:capitalize).join(" ") — без рельсов
.titleize — с рельсами
Ну и downcase\upcase
183614956
29.03.2016 16:58+2Сама идея подобных вопросов в том, чтобы посмотреть понимает ли кандидат, что в данном случае нужно просмотреть строку символ за символом и заменить его на заглавный, например. Понятно, что есть функция, но я думаю, что в случае такого ответа прозвучал бы вопрос: «А как бы ты сам это написал?»
lirq
29.03.2016 14:23+7Люди-то в курсе были, что вы их на всеобщее обозрение выложите?
freetonik
29.03.2016 14:24+7Конечно.
В публикации сказано:
...[мы] решили предложить нашему активному сообществу идею: публичные собеседования в прямом эфире! Сразу нашлось несколько кандидатов...
Borz
29.03.2016 16:24+6прямой эфир и выкладывание записи эфира несколько разные вещи. Нет?
AlexP11223
29.03.2016 16:28Разве бывает прямой эфир без записи? Как минимум кто-то записал бы, особенно если сказать, что запись выкладываться не будет :)
freetonik
29.03.2016 16:46+3Все были в курсе и все дали согласие на эфир, запись и распространение, не волнуйтесь.
ubushan
29.03.2016 16:27+6Посмотрел от начала и до конца все 3 видео, потратил конечно 3,5 часа драгоценного времени, но это того стоило, очень интересные интервью, вопросы, задачи, как будто сам побывал в роли проходящего интервью. Понял для себя, куда стремиться, куда изначально делать упор, а куда лучше пока не соваться, т.к. только начал углубляться в программирование, для меня это важно.
Спасибо вам ребята Хекслетяни! Вы молодцы!telp
29.03.2016 16:49+7потратил конечно 3,5 часа драгоценного времени
а вы не пробовали прослушивать на скорости 1.25х, 1.5х?
Я начал слушать в ускорении (видео, аудиокниги, подкасты) после того как прочитал, как слепые люди пользуются скрин ридерами и слушают страницы в сети.ubushan
29.03.2016 16:57+6Спасибо кстати за совет, попробовал немного посмотреть, на 1,25 в принципе на слух не заметно, что скорость увеличена и голоса не деформировались, круто. И почему я раньше не додумался?))
Спасибо)kazmiruk
29.03.2016 17:17+7Самое интересное, что со временем начинаешь привыкать и можно увеличивать скорость. Я сейчас почти все слушаю на скорости 2х и мне вполне комфортно. Здорово экономит время.
Rasifiel
29.03.2016 20:35+8Самое тяжелое потом с живыми людьми общаться или слушать их. Очень медленно все.
fetis26
29.03.2016 18:22+6Что-то я не понял, что такого неправильно сказал паренек про тестирование сервиса. Мокинг HTTP класса это классическое решение, тока он начал говорить про метод, что не верно согласно терминологии. Надо было натолкнуть его на эту мысль, а вы зарубили идею сказали что мокинг фигня и тут не применим. И как же тогда надо было это дело тестировать в вашем понимании?
tenbits
29.03.2016 22:25Нaверное лучше всё таки — реализация интерфейса доступа к данным. То-есть мы делаем стаб для IDataProvider
fetis26
29.03.2016 22:36Стаб — это заглушка для метода.
Я как бы специально не стал конкретизировть, потому что везде это по разному реализуется. В Ангуларе например мокается $http сервис. Думаю, что слово "сервис" без знания контекста, взорвало бы мозг джуниору.
evnuh
29.03.2016 18:56+14Второй парень — Евгений, вообще идеальный джуниор. Он всё правильно говорил, а главное — правильно думал. Зато собеседовавший его человек явно некомпетентен и не умеет проводить собеседования.
Во-первых, на первой задаче про часы. Как человек. знающий решение. вполне можно было бы догадаться, обо что споткнётся джуниор при попытке её решения, а значит и быстро дать понять, в чём косяк. Но вместо четкого контрпримера или вопроса, вы только запутали человека своими объяснениями про 0-11 часов. Я уверен он так и не понял, как же быть при 24 формате.
Во-вторых. задача про Яндекс. Тут вы вообще мега коряво формулировали задачу. Путали слово с буквой постоянно. Евгений уже сам додумался, что вы всё-же спрашиваете про слово А, а не про букву А. Потом начали про устройство яндекса спрашивать. И вопросы у вас были абсолютно не чёткие, не только в этой задаче. Поэтому вы часто слышали от Евгения "я наверное не допонял вопрос", а сами чатсо произносили "нет, я немножко другое имел в виду / немножко другое спрашивал". Я, как человек. понимающий о чём речь, знал, что вы хотите услышать. Но человек, который не знаком с теорией даже не мог подумать, потому что не понимал, в каком формате вы хотите получить ответ и о чём ему надо думать.
Короче, вы как препод на экзамене: "Как должна выглядеть эта кривая?". И студенты сидят мучаются, пытаясь догадаться, какой же ответ он хочет услышать, хотя знают, как она выглядит.complexityclass
29.03.2016 23:41Вот совсем не джуниор, у человека нет даже базовых понятий и конечно Кириллу было сложно из него хотя бы что-то вытащить. Джуниор должен задачки на логику решать, знать язык и в алгоритмах и структурах данных разбираться.
Pazzik
30.03.2016 08:57-2Только недавно на хабре был нехилый спор, нужно ли вообще программисту знать алгоритмы и структуры данных. А вы говорите джуниор.
Apathetic
30.03.2016 10:18+2Послушайте, ну только совсем упоротые требуют от джунов знание каких-то сложных (и не сложных) алгоритмов. Речь не о том, чтобы знать алгоритмы, речь о том, чтобы иметь способность их придумывать. Хотя бы даже самые элементарные. Задача про часы отлично показывает эту способность.
Arlekcangp
30.03.2016 10:40Т е от джуниора требуется идеальные знания языка а от того парня с опытом нет? Иначе как объяснить что ему кода писать не пришлось?
woworks
29.03.2016 19:12+4Собеседование 2, 1:04:17 — Штирлиц еще никогда не был так близок к провалу :)
mbait
29.03.2016 21:09+11Я думаю, подобный проект, где собеседуют всяких технических директоров и прочих сениор-тим-лидов, получил бы большую популярность. Без шуток. Показать на собственном примере или обосраться.
pshhpshh
29.03.2016 21:36+1А немного больше бекграунда к данным ситуациям?
Что за задания были для первого человека два года назад?
Pazzik
29.03.2016 21:36+3Во втором собеседовании так в итоге и не понял вопроса про поиск в тексте. Какой ответ ждали от парня?
tenbits
29.03.2016 22:23+2Раз про структуры и доступ к данным, наверное имелась ввиду индексация текста. Но показалось, что человек думал как можно сходу очень быстро из "миллиона" текста выудить нужные слова. То-есть препроцессинг вовсе не рассматривался.
Accetone
29.03.2016 22:35+4Я так понял интервьюер хотел построить хэшмапы по словам для каждого текста, но сформулировать вопрос ему действительно не удалось.
evnuh
29.03.2016 23:36+4Мне понравилось особенно, когда джуниору сказали, что "просматривать миллион текстов будет очень долго, это не работает". И тут в его глазах прямо видна была борьба "вроде да, должно быть долго" и "но как же узнать что в тексте, если их все не просмотреть". Поэтому он начал пытаться что-то про "сузить выборку, отбросить ненужные тексты". Его обманули, а он бедняга не понимал, в чём не прав :)
FreeNickname
30.03.2016 10:41+1На ум приходит параллелизм (очевидно) и построение индекса (к примеру, по словам). Что ещё могли хотеть – я без понятия)
nikola166
29.03.2016 21:36+3Во втором интервью вообще что-то не понятно на кого данного человека собеседуют. Вопросы просто жуть.
summerwind
30.03.2016 01:31+1Интересно, почему на одну и ту же позицию взяли кандидатов такого несравнимого уровня?) Двое только-только начали программировать, а третий — человек, пишущий парсеры, знающий многопоточность, асинхронность, очереди задач, юнит-тесты и с опытом Python N лет =)
m0sk1t
30.03.2016 02:113 видео… Цой жив, или мне одному парень показался похож как внешне так и голосм? =)
Mugik
30.03.2016 08:46+3Напомнило игры в детском садике. Что-то вроде а давай поиграем в пожарных. Ты будешь тушить пожар, а я буду доктором.
Тут как бы тоже самое, только взрослые дяденьки в летах играют в hr и в программиста.summerwind
31.03.2016 00:08Видимо, в вашем представлении идеальное собеседование выглядит как-то так:
catcher1951
30.03.2016 15:00+2Во втором собеседовании парень, вроде, толковый, но видно что нет базы. Мое мнение — ему нужно было более внятно объяснить это как причину отказа и причем сделать это сразу после того, как человек дал понять что не знает структур и больше не мучить его вопросами на эту тему. Ну и можно еще дать список того, что нужно чтоб ответить на их вопросы, например: почитать дискретку, поработать с указателями в С — С++, выучить алгоритмы и структуры данных, выучить архитектуру ПО, почитать про шаблоны проектирования и попрактиковаться с их применением, почитать про БД и, наконец, написать свое небольшое приложение.
x88
Теперь я знаю, об идиотизме HRов все.
neuotq
Нужно было отметить что Кирилл проводит собеседования из принципа спрашивать то, что кандидат не знает, чтобы посмотреть на гибкость ума и перспективы.
Так что логика есть.
VadimChin
Честно говоря, я бы с большей вероятностью взял человека который может набрасать парсер на либах, чем живого ума товарища умеющего переставлять буковки. А насчет джуниора, закидываем его на фриланс сайт — он выбирает себе задачу по интересу и возможности запилить (те не абстрактную конину в космосе, а то, что реально требуется людям), после, подготавливается список книг и с указанием разделов которые 100% надо читать. Ну и стартуем. Периодически сморим bitbucket и отвечаем кучно на вопросы со стороны дж. Несколько итераций и уже ясно ху из ху. А чтобы был стимул — сразу оговаривается зп выше рыночной.
Aleksey_Babukh
Не могли бы Вы раскрыть мысль?
Kroid
Вы мой парсер сломали.
AlexP11223
Не увидел в видео ни одного HR'а :)