M>У Миши есть 5 яблок, а у Васи 7. Рядом есть железная дорога, там проходит поезд дважды в день. В нем Иван. Петя и Ваня кидают в него яблоками, а он в них.
Ваня кидает яблоками в Ивана ?
И куда делись Миша с Васей ?
Здравствуйте, mizuchi, Вы писали:
M>опять чушь мелишь?
Кто тут? Чушь тут несёшь ты.
Хороший разработчик быстро и эффективно решает поставленные задачи любым доступным способом.
Отличный разработчик сам ставит (и решает) задачи максимизируя прибыль основного бизнеса.
Посредственные разработчики сидят на подачках от первых двух ("развернуть список или что-то такое").
Тесты (кроме всего прочего) проверяют способность читать и понимать условия задачи в незнакомой предметной области за ограниченное время. Хорошо бы конечно и по итогам выполнения задачи заставлять выводы писать. Многие хорошие разработчики совершенно не умеют формулировать свои мысли на бумаге. Да и в речи тоже.
Абстрактные тесты. Особенно с таймером. На hacker rank такие часто есть.
Типа
""
У Миши есть 5 яблок, а у Васи 7. Рядом есть железная дорога, там проходит поезд дважды в день. В нем Иван. Петя и Ваня кидают в него яблоками, а он в них.
Надо смоделировать такую систему. Язык программирования не важен.
""
От таких тестов сразу становится скучно, сразу хочется закрыть и пойти отлить. И послать подальше таких работодателей.
Да, алгоритмы, вроде бы, ну и что? Можно ведь придумать что-то более приземленное?
Развернуть список или что-то такое — и то в 500 раз лучше.
Здравствуйте, ned, Вы писали:
ned>Здравствуйте, mizuchi, Вы писали:
M>>Развернуть список или что-то такое — и то в 500 раз лучше.
ned>Программисты (не кодеры!) решают задачи. И в реальных задачах именно "Пети с яблоками", а не абстрактные алгоритмы со списками.
%>Ну вот я смотрю в код таких "решенных задач из реальной жизни" и там адский трешак.
Ну, значит так отбирали.
Я же не про то, как вы сейчас отбираете. Я про то, что используя метод "жизненных тестовых заданий" ты можешь отобрать того, кто:
а) умеет решать "жизненные тестовые задания",
б) делает это эффективно и красиво.
Используя же для отбора задачи типа "разверни список", ты отберешь того, кто может развернуть список. Но не факт, что он при этом может в жизненной задаче найти место, где нужно список развернуть, а вместо этого навернет дичайший код.
Здравствуйте, 0xCAFEDEAD, Вы писали:
CAF>У нас кстати, помнится одной из задачек, просили дедлок продемонстрировать. Вообще антизадача, так сказать.
Ну как бы надо понимать как образуется дедлок чтоб потом не писать код с дедлоками
Здравствуйте, mizuchi, Вы писали:
M>Типа
M>"" M>У Миши есть 5 яблок, а у Васи 7. Рядом есть железная дорога, там проходит поезд дважды в день. В нем Иван. Петя и Ваня кидают в него яблоками, а он в них.
M>Надо смоделировать такую систему. Язык программирования не важен.
M>""
Здравствуйте, 0xCAFEDEAD, Вы писали:
CAF>>>>У нас кстати, помнится одной из задачек, просили дедлок продемонстрировать. Вообще антизадача, так сказать. CC>>>Ну как бы надо понимать как образуется дедлок чтоб потом не писать код с дедлоками
CAF>%>Понимать то можно, а вот чтоб не писать с дедлоками- это сложнее. Вопрос на дедлок imho- тест на искренность, если в резюме есть многопоточка- реально ли писал, или наврал.
CAF>Разумеется, но все же задача не совсем практическая. Но помогает увидет, знаком ли человек с темой. Кстати ЕЕ программисты вообще не знают многопоточности. Все сделано до них Они по-моему вообще Java Core плохо понимают.
Я по ответам Креатора могу понять, что он с многопоточкой не работал
Лучший способ избежать дедлоков- не делать мнгопоточное программирование. Ибо это такой (анти)паттерн.
Здравствуйте, _ABC_, Вы писали:
_AB>Используя же для отбора задачи типа "разверни список", ты отберешь того, кто может развернуть список. Но не факт, что он при этом может в жизненной задаче найти место, где нужно список развернуть, а вместо этого навернет дичайший код.
Такую задачу сложнее придумать, её сложнее решить кандидату. Твой пойнт понятен. Как пример, 2 задача из код джема. Я навернул там рекурсию, и провалил её 2 этап теста (временную или по памяти слржность сделал 2^N). Когда понял идею куда смотреть- решение в 1-2 строчки, линейная сложность. Если идею увидел, напишет школьник. Если не знаешь идею или пошел ложным путём- может быть сложнее. А с списками всё понятно: не может в списки- смело досвидос.
_AB>Это если утрировать, но идею ты понял.
Здравствуйте, %, Вы писали:
8>Я бы предпочёл такого, который развернёт список. А то от решённых задач «любым доступным способом» у меня стадия истерики заканчивается, и приходит мысль «а не пошло бы оно всё на...».
Можно и так. Это уровень интерна-выпускника. Но тебе (или компании) придётся вложиться в него чтобы выучить толкового разработчика. Зато дёшево. И если повезёт, то можно перехватить гениев пока большая четвёрка до них не добралась.
%>Понимать то можно, а вот чтоб не писать с дедлоками- это сложнее.
Если понимаешь как они случаются то это помогает распознать места в коде где может дедлокнуться.
Здравствуйте, Vlad_SP, Вы писали:
V_S>Садись, два! V_S>А ничо, что по условию задачи ни у Ивана, ни у Пети, ни у Вани нет ни одного яблока?
По условиям задачи у них undefined яблок.
Здравствуйте, ned, Вы писали:
ned>Здравствуйте, mizuchi, Вы писали:
M>>Развернуть список или что-то такое — и то в 500 раз лучше.
ned>Программисты (не кодеры!) решают задачи. И в реальных задачах именно "Пети с яблоками", а не абстрактные алгоритмы со списками.
я вчера обедал с рекрутером и спросил его про тесты
с его слов он обоими руками за тесты потому что
тысячи людей читают книжку алогоритмы для чайников и учать javaScript
делают себе фиктивный опыт в 5 лет и
после чего идут на собеседования
Здравствуйте, sergey2b, Вы писали:
S>Здравствуйте, ned, Вы писали:
ned>>Здравствуйте, mizuchi, Вы писали:
M>>>Развернуть список или что-то такое — и то в 500 раз лучше.
ned>>Программисты (не кодеры!) решают задачи. И в реальных задачах именно "Пети с яблоками", а не абстрактные алгоритмы со списками.
S>я вчера обедал с рекрутером и спросил его про тесты S>с его слов он обоими руками за тесты потому что S>тысячи людей читают книжку алогоритмы для чайников и учать javaScript S>делают себе фиктивный опыт в 5 лет и S>после чего идут на собеседования
— тесты тестам рознь
— что за рекрутер такой, что не может отличить 5 лет опыта от вранья? а если у кандидата есть open source проекты и свои собственные проекты? а на собеседование что вообще не видно, если ли 5 лет опыта или он все нарисовал и прочитал одну книжку?
— мне один hr недавно прислал недавно мыл, сам первый, где сказал — "так, вот тестовое задание. когда сделаешь — тогда можно и первичное собеседование проводить"
M>- мне один hr недавно прислал недавно мыл, сам первый, где сказал — "так, вот тестовое задание. когда сделаешь — тогда можно и первичное собеседование проводить"
M>>У Миши есть 5 яблок, а у Васи 7. Рядом есть железная дорога, там проходит поезд дважды в день. В нем Иван. Петя и Ваня кидают в него яблоками, а он в них.
IID>Ваня кидает яблоками в Ивана ? IID>И куда делись Миша с Васей ?
А Миша с Васей снабжают их яблоками, чтобы произвести рейдерский захват железной дороги.
Здравствуйте, ned, Вы писали:
ned>Хороший разработчик быстро и эффективно решает поставленные задачи любым доступным способом. ned>Отличный разработчик сам ставит (и решает) задачи максимизируя прибыль основного бизнеса. ned>Посредственные разработчики сидят на подачках от первых двух ("развернуть список или что-то такое").
Я бы предпочёл такого, который развернёт список. А то от решённых задач «любым доступным способом» у меня стадия истерики заканчивается, и приходит мысль «а не пошло бы оно всё на...».
%>Я бы предпочёл такого, который развернёт список. А то от решённых задач «любым доступным способом» у меня стадия истерики заканчивается, и приходит мысль «а не пошло бы оно всё на...».
Студент первого курса, развернувший список на вчерашней лабораторке, подойдёт?
У вас есть перекресток, на котором 4 светофора — по одному на каждом из четырех направлений. На каждом светофоре есть кнопка включения красного света (для пешеходов), которая включает красный свет на всех четырх светофорах. Смоделируйте порядок работы светофоров.
Я так и не понял, что от меня хотят. Очевидные вещи типа
зеленый включается только в двух встречных направлениях (или даже в одном)
нажатие кнопки включит красный там, где был зеленый, и предотвратит включение зеленого на всех светофорах на определенный период времени
после истечения времени после нажатия кнопки зеленый включится только на двух светофорах во встречных направлениях
я перечислил. Но, насколько я понял, этого было недостаточно и от меня хотели что-то еще.
Здравствуйте, Anonymous123, Вы писали:
A>Да, вот еще пример:
A>У вас есть перекресток, на котором 4 светофора — по одному на каждом из четырех направлений. На каждом светофоре есть кнопка включения красного света (для пешеходов), которая включает красный свет на всех четырх светофорах. Смоделируйте порядок работы светофоров.
A>Я так и не понял, что от меня хотят. Очевидные вещи типа
A> A>зеленый включается только в двух встречных направлениях (или даже в одном) A>нажатие кнопки включит красный там, где был зеленый, и предотвратит включение зеленого на всех светофорах на определенный период времени A>после истечения времени после нажатия кнопки зеленый включится только на двух светофорах во встречных направлениях A>
A>я перечислил. Но, насколько я понял, этого было недостаточно и от меня хотели что-то еще.
Imho нужно найти все возможные состояния и нарисовать таблицу переходов.
%>Я бы предпочёл такого, который развернёт список. А то от решённых задач «любым доступным способом» у меня стадия истерики заканчивается, и приходит мысль «а не пошло бы оно всё на...».
А что мешает оценить не только сам факт решения задачи, но и качество решения?
Это же не обязан быть выбор "или-или". Это может быть "и-и".
Здравствуйте, _ABC_, Вы писали:
_AB>%>Я бы предпочёл такого, который развернёт список. А то от решённых задач «любым доступным способом» у меня стадия истерики заканчивается, и приходит мысль «а не пошло бы оно всё на...».
_AB>А что мешает оценить не только сам факт решения задачи, но и качество решения? _AB>Это же не обязан быть выбор "или-или". Это может быть "и-и".
Ну вот я смотрю в код таких "решенных задач из реальной жизни" и там адский трешак. Как если для сортировки массива заимплеменчен пузырёк. Т.е. да, требовалась не сортировка, поэтому библиотечной функции не нашлось. Поэтому чел написал то, что написал и потом это прошло код ревью(!) никто не задал вопрос что за х.
Здравствуйте, _ABC_, Вы писали:
_AB>Здравствуйте, %, Вы писали:
_AB>%>Ну вот я смотрю в код таких "решенных задач из реальной жизни" и там адский трешак. _AB>Ну, значит так отбирали.
_AB>Я же не про то, как вы сейчас отбираете. Я про то, что используя метод "жизненных тестовых заданий" ты можешь отобрать того, кто: _AB>а) умеет решать "жизненные тестовые задания", _AB>б) делает это эффективно и красиво.
_AB>Используя же для отбора задачи типа "разверни список", ты отберешь того, кто может развернуть список. Но не факт, что он при этом может в жизненной задаче найти место, где нужно список развернуть, а вместо этого навернет дичайший код.
_AB>Это если утрировать, но идею ты понял.
А можно пример привести, что есть "жизненные тестовые задания"?
Переворот списка показывает лишь что человек может читать/запоминать и записывать ссылки на базовом уровне. Строки — про умение работать с массивами. Я не представляю, что может нарешать жизненного человек не зная ссылок. Конечно, если минимальный порог выше — то не зачем пратить время. Но тут мне кажется сетью по самому дну ишут... Ну или под дном...
В общем пишите ваши тестовые задания (примерно).
У нас кстати, помнится одной из задачек, просили дедлок продемонстрировать. Вообще антизадача, так сказать.
Здравствуйте, 0xCAFEDEAD, Вы писали:
CAF>Переворот списка показывает лишь что человек может читать/запоминать и записывать ссылки на базовом уровне. Строки — про умение работать с массивами. Я не представляю, что может нарешать жизненного человек не зная ссылок.
Ты слова про утрированность не пропустил, случаем?
CAF>В общем пишите ваши тестовые задания (примерно).
У меня своя специфика, далекая для большинства здесь присутствующих. Она не про программирование по большей части. Не про алгоритмы.
Для моей области, например, дать запрос умеренной сложности с рядом косяков, план его выполнения и попросить его проанализировать, найти проблемы и исправить — вполне себе хорошая "жизненная задача" для уверенного середняка на минут 10-15, ну, может, 20. С параллельным обсуждением, пояснением.
CAF>У нас кстати, помнится одной из задачек, просили дедлок продемонстрировать. Вообще антизадача, так сказать.
С другой стороны, если ты можешь специально создать дедлок, велики шансы, что ты сможешь его узнать и починить, когда возникнет нужда.
Вполне себе практическая задача, если копнуть, ИМХО.
Здравствуйте, _ABC_, Вы писали:
_AB>Здравствуйте, 0xCAFEDEAD, Вы писали:
CAF>>Переворот списка показывает лишь что человек может читать/запоминать и записывать ссылки на базовом уровне. Строки — про умение работать с массивами. Я не представляю, что может нарешать жизненного человек не зная ссылок. _AB>Ты слова про утрированность не пропустил, случаем?
Нет.
CAF>>В общем пишите ваши тестовые задания (примерно). _AB>У меня своя специфика, далекая для большинства здесь присутствующих. Она не про программирование по большей части. Не про алгоритмы. _AB>Для моей области, например, дать запрос умеренной сложности с рядом косяков, план его выполнения и попросить его проанализировать, найти проблемы и исправить — вполне себе хорошая "жизненная задача" для уверенного середняка на минут 10-15, ну, может, 20. С параллельным обсуждением, пояснением.
Это другой тип задач — дается кусок кода, и разбор проблем. Где там переполнение буфера, не проверки аргументов, и подобная хрень.
CAF>>У нас кстати, помнится одной из задачек, просили дедлок продемонстрировать. Вообще антизадача, так сказать. _AB>С другой стороны, если ты можешь специально создать дедлок, велики шансы, что ты сможешь его узнать и починить, когда возникнет нужда. _AB>Вполне себе практическая задача, если копнуть, ИМХО.
Но при этом почти никто дедлоки на работе не пишет (сознательно имею ввиду). У меня был один, дле теста нужен был, и я наверное рекодсмен в этом плане
Здравствуйте, CreatorCray, Вы писали:
CAF>>У нас кстати, помнится одной из задачек, просили дедлок продемонстрировать. Вообще антизадача, так сказать. CC>Ну как бы надо понимать как образуется дедлок чтоб потом не писать код с дедлоками
Понимать то можно, а вот чтоб не писать с дедлоками- это сложнее. Вопрос на дедлок imho- тест на искренность, если в резюме есть многопоточка- реально ли писал, или наврал.
%>Здравствуйте, CreatorCray, Вы писали:
CAF>>>У нас кстати, помнится одной из задачек, просили дедлок продемонстрировать. Вообще антизадача, так сказать. CC>>Ну как бы надо понимать как образуется дедлок чтоб потом не писать код с дедлоками
%>Понимать то можно, а вот чтоб не писать с дедлоками- это сложнее. Вопрос на дедлок imho- тест на искренность, если в резюме есть многопоточка- реально ли писал, или наврал.
Разумеется, но все же задача не совсем практическая. Но помогает увидет, знаком ли человек с темой. Кстати ЕЕ программисты вообще не знают многопоточности. Все сделано до них Они по-моему вообще Java Core плохо понимают.
Здравствуйте, 0xCAFEDEAD, Вы писали:
CAF>Это другой тип задач
Согласен. Но так у меня и специфика несколько другая.
CAF>Но при этом почти никто дедлоки на работе не пишет (сознательно имею ввиду).
Ну так и Вань с Васями никто не пишет на работе.
%>Я по ответам Креатора могу понять, что он с многопоточкой не работал
%>Лучший способ избежать дедлоков- не делать мнгопоточное программирование. Ибо это такой (анти)паттерн.
Садись — 2. Это вообще не способ. Дедлоки появились раньше потоков. Надо не лочить более 1 ресурса для отутствия дедлоков.
Садись, два!
А ничо, что по условию задачи ни у Ивана, ни у Пети, ни у Вани нет ни одного яблока?
M>>У Миши есть 5 яблок, а у Васи 7. Рядом есть железная дорога, там проходит поезд дважды в день. В нем Иван. Петя и Ваня кидают в него яблоками, а он в них.
%>Такую задачу сложнее придумать, её сложнее решить кандидату. Твой пойнт понятен. Как пример, 2 задача из код джема. Я навернул там рекурсию, и провалил её 2 этап теста (временную или по памяти слржность сделал 2^N).
Совершенно верно. С той лишь поправкой, что практические задачи при собеседовании должны быть проще, с более очевидными решениями, а не головоломки.
Здравствуйте, Anonymous123, Вы писали:
A>У вас есть перекресток, на котором 4 светофора — по одному на каждом из четырех направлений. На каждом светофоре есть кнопка включения красного света (для пешеходов), которая включает красный свет на всех четырх светофорах. Смоделируйте порядок работы светофоров.
A>Я так и не понял, что от меня хотят.
Здравствуйте, mizuchi, Вы писали:
M>Абстрактные тесты. Особенно с таймером. На hacker rank такие часто есть. M>Типа M>У Миши есть 5 яблок, а у Васи 7. Рядом есть железная дорога, там проходит поезд дважды в день. В нем Иван. Петя и Ваня кидают в него яблоками, а он в них. M>Надо смоделировать такую систему. Язык программирования не важен.
Какая же она абстрактная? Это жизнь, коллега, 99% ТЗ от заказчиков выглядят примерно так.
Здравствуйте, Dym On, Вы писали:
DO>Здравствуйте, mizuchi, Вы писали:
M>>Абстрактные тесты. Особенно с таймером. На hacker rank такие часто есть. M>>Типа M>>У Миши есть 5 яблок, а у Васи 7. Рядом есть железная дорога, там проходит поезд дважды в день. В нем Иван. Петя и Ваня кидают в него яблоками, а он в них. M>>Надо смоделировать такую систему. Язык программирования не важен. DO>Какая же она абстрактная? Это жизнь, коллега, 99% ТЗ от заказчиков выглядят примерно так.
"Сделай мне сайт с админкой, CRM, API и чтобы мы могли с командой переговариваться текстом через чат. И через видео тоже".
Где тут Миши, Вани, яблоки и вагоны, хотя бы отдалённо?
Здравствуйте, Vlad_SP, Вы писали:
V_S>Здравствуйте, Hobbes,
H>>В ТЗ было требование бросать яблоки. Что и было реализовано
V_S>Яблоки, но не исключения. Пункт ТЗ не выполнен.
если ivan.GetApple() возвращает apple, то таки выполнен.