Aggregator резюме программистов

Senseye

Новичок
Предыстория:
Два месяца искали PHP программиста в проект.
Приглашал на собеседования руководитель, а технически уже спрашивал я.
Это был мой первый опыт с "другой" стороны - то спрашивал по нарастающей.
Первый вопрос звучал так:
"Какая разница между строковым и числовым ключем "1" в массиве. Могут ли у них быть разные значение" (наверно слишком требовательный, но на этот вопрос ответили 2 из 7, одного из них мы сразу после собеседования пригласили, но он попросил время до понедельника и ушел к другим)
На третьем месяце написал маленький парсер на Symfony чтобы локально отфильтровать данные одного из популярных сайтов с резюме (так как мой взгляд на фильтрацию отличается от создателя сайта)

После парсера задумал создать здоровую конкуренцию и даже название выбрал Senseye - поиск программистов, но сейчас хочу написать aggregator для резюме, как первый шаг.
Надеюсь это этично (уже есть связанная тема Парсинг в вакансиях)
Если у кого-то есть сложности в поиске специалистов в своем регионе - то напишите в теме название региона или города и для него в закрытой части сайта за пару месяцев создам поиск.
Предпочтительнее страны со знанием русского языка (кроме України, России, Беларуси) - хочу начать с более дальних от себя стран

UPDATE: Ссылка на сам поиск http://senseye.com.ua/developers
 
Последнее редактирование:

Senseye

Новичок
@grigori, а можно более конструктивную критику или замечания? (кстати впервые такое читаю в свою сторону, новый опыт)
 

AnrDaemon

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

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Перевожу на программерский. Два месяца тешили ЧСВ, обламывая соискателей инверсией бинарного дерева. Полимеров много, просрали еще не все, но никто в городе на BDSM-сессиюсобеседование уже не идет, а ЧСВ выросло и требует. Решено продолжать в других городах, но там никто не нужен, так что ищутся такие же садисты, с которыми можно уютно реализовывать свои девиации.
Посему, мой пост выше.

p.s. я б своим менеджерам сосватал, но у них есть индусы
 
Последнее редактирование:

Senseye

Новичок
@grigori, программиста в команду нашли на 3 месяце за 7-9 собеседований. С ЧСВ - все в порядке (в плане адекватный).
Раз мы уже "девиацировали" от темы ...
Вот представь у нас продуктовый проект где уже настроен процес разработки - тесты, CI, Code Review - хороший framework Symfony, есть NoSQL (Redis, Elasticsearch) и в команду нужен разработчик, но почему-то разработчики больше тянутся в большие "галеры" (сам таким был пару лет назад), где тесты пишут если менеджер смог их продать... По этому подбирали тщательно - в обязательных критериях было - хорошое знание PHP, МуSQL, остальные используемые в проекте шли в "плюс"
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Симфони, Redis, Elastic, CI и Code Review - да я б сам с тобой работал :)

Одного не могу понять - каким образом к такой красоте относится выражение ["1"=>1,1=>2] и такое количество ошибок в первом посте?

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

fixxxer

К.О.
Партнер клуба
Какая разница между строковым и числовым ключем "1" в массиве
программиста в команду нашли
Это потому что все неправильно. Слишком простой вопрос.

Чтобы гарантированно никого не найти и точно услышать в свой адрес "аффтар выпей йаду", надо так:

PHP:
$a = new stdClass();
$a->{"1"} = 1;
settype($a, "array");
var_dump($a[1], $a["1"]);
Что выведет?
 

Senseye

Новичок
Возможно это выглядит как ЧСВ, но было бы приятнее в команду взять человека у которого можно будет научится новому, чем часто исправлять его в PR.
Одного не могу понять - каким образом к такой красоте относится задача по выражению ["1"=>1,1=>2]
Список вопросов появился после первых-двух собеседований из-за слабых знаний у кандидатов, а вопрос про ключи стал первым и с него делал выводы - интересуется ли кандидат разработкой или просто пошел в ИТ чтобы "деньги" косить. + знание массивом было важно - кэш данных хранился в Redis в виде ассоциативных массивов и множеств - которые нужно было конвертировать (сейчас уже иначе фильтрация построена)
и такое количество ошибок в первом посте?
Увы с грамматикой слабо, руководитель иногда шутит что вместо курсов английского будут делать курсы "правописания"
Симфони, Redis, Elastic, CI и с Code Review - да я б сам с тобой работал :)
Сам рад проекту, стоял выбор компании - то между "сейчас" и большой "галерой" (тогда такого понятия не знал) - отказался от галеры из-за редкого пересмотра вознаграждения - "раз в год"
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@fixxxer, нихрена себе, тут надо спрашивать что выведет var_dump($a). Такого я вообразить себе не мог.
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@Senseye, твой вопрос по ключам - идиотский, и знать ответ на него не нужно. Если вам приходит в голову такой вопрос, можно сделать вывод, что вы пишите такой код, а его поддерживать невозможно. Писать надо только на здоровом подмножестве языка, и вопросы должны быть по реальным задачам в проекте.

А теперь проверь свой ответ.
 

Senseye

Новичок
А теперь проверь свой ответ.
PHP:
$a = new stdClass();
$a->{"1"} = 1;
settype($a, "array");

var_dump(gettype($a)); // "array"
var_dump($a);
/*
array(1) {
  ["1"]=>
  int(1)
}
*/
var_dump($a[1]); // Notice: Undefined offset: 1
var_dump($a["1"]); // Notice: Undefined offset: 1

$a = ["1" => 1];
var_dump(gettype($a)); // "array"
var_dump($a);
/*
array(1) {
  [1]=>
  int(1)
}
*/
var_dump($a[1]); // 1
var_dump($a["1"]); // 1

Писать надо только на здоровом подмножестве языка, и вопросы должны быть по реальным задачам в проекте.
Такие тоже были:
PHP:
// Знаете ли Вы как преобразовать одной строчкой
$a = [[1, 2, 3], [5, 6, 7], [9, 10, 11], ..., [123, 125, 127]];
// в $b = [1, 2, 3, 5, 6, 7, 9, 10, 11, ..., 123, 125, 127]

$a = [['code' => 1], ['code' => 2]];
// в $b = [1, 2]; (PHP 5.5)
[sql]
-- Можно ли обойтись в MySQL без HAVING?
-- Если мы хотим проверить, были ли у пользователя заказы, будете ли Вы использовать такой запрос:
SELECT COUNT(*)
FROM `order`
WHERE `user` = 1;
[/sql]
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
А между прочим вполне реальный кейс, если вместо ручного создания stdClass был бы json_decode('{"1":1}'). Был такой топик недавно. :)

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

Senseye

Новичок
Способность кандидата реализовать рекурсию или цикл со стеком намного больше говорит о нем, чем знание эзотерических трюков с call_user_func_array.
Рекурсии сложнее читать, а сейчас уже проще написать
PHP:
$a = [[1, 2, 3], [5, 6, 7], [9, 10, 11], ..., [123, 125, 127]];
// в $b = [1, 2, 3, 5, 6, 7, 9, 10, 11, ..., 123, 125, 127]
$b = array_merge(...$a);
 

Senseye

Новичок
Способность кандидата реализовать рекурсию или цикл со стеком намного больше говорит о нем, чем знание эзотерических трюков с call_user_func_array.
Или переписать первое во второе ;)
Был горький опыт до знания этой возможности: через Kohana querybuilder - нужно было вставить 10к записей в БД и раньше этот код был реализован через array_merge, а цикл на 10к превратился в 19 секунд - задачу решил через расширении класса и переопределения метода, правильное решение на тот момент было - ’call_user_func_array’
Тоже люблю писать алгоритмы, но толку если есть уже готовые функции - которые за 2 года при активной разработке уже хорошо знаешь.
К примеру в "моем" проекте есть 2 "редких" места с алгоритмами по 20-25 строк кода - они покрыты тестами, но их все равно сложно читать и вносить правки.
Алгоритмы в основном спрашивают на начальном уровне или при первом приеме в профессию. Даже есть истории когда студент с опытом проходил собеседование на стажировку (3-4 задачи) и получал отказ, но через время проходил успешно собеседование на Middle-a.
Да и это вечный спор: "Кандидат мало знает, Interviewer придирался или тешил ЧСВ"
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
// Знаете ли Вы как преобразовать одной строчкой
$a = [[1, 2, 3], [5, 6, 7], [9, 10, 11], ..., [123, 125, 127]];
Способность кандидата реализовать рекурсию или цикл со стеком
javascript-style self-envoking function
PHP:
($c = function($c,$a) {static $r=[];foreach ($a as $v) if (is_array($v)) $c($c,$v);else $r[] = $v;return $r;})($c, [[1,2],[3,4]] );
одна строка - счастливой отладки, твоя постановка задачи гарантирует непонимание и некорректное исполнение

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

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