Здравствуйте, errest, Вы писали:
E>Какие тестовые задания могут дать на C/C++? E>Нужны простенькие — типа сортировки массива и найти ошибки
Ну например, написать реверс строки или перевод из одной системы счисления в другую, подсчитать число единичек в байте.
E>Какие тестовые задания могут дать на C/C++?
Какие угодно. Это неважно. На нормальном собеседовании тест — всего лишь предмет для разговора, чтобы было, с чего начать.
Здравствуйте, errest, Вы писали:
E>Какие тестовые задания могут дать на C/C++? E>Нужны простенькие — типа сортировки массива и найти ошибки
Мне очень нравятся string similarity алгоритмы (http://www.dcs.shef.ac.uk/~sam/stringmetrics.html).
Вряд-ли кто-то ответит что-то вменяемое, если никогда с этим не сталкивался, но для завязывания разговора может подойти.
Ну а если в поисковик набираем и т.п. — must.
Здравствуйте, placement_new, Вы писали:
_>Здравствуйте, errest, Вы писали:
E>>Какие тестовые задания могут дать на C/C++? E>>Нужны простенькие — типа сортировки массива и найти ошибки _>Ну например, написать реверс строки или перевод из одной системы счисления в другую, подсчитать число единичек в байте.
Реверс строки я уже писал на трех-четырех собеседованиях и делаю это исключительно по памяти — своп двух указателей идущих навстречу друг другу. Это старый баян, его знают почти все, тест на "лоха".
То же самое и с подсчетом единичек. Оптимальное решение — lookup table c 8 или 16 битными "чанками". Ну и тест на "лоха" с << и | в цикле.
Здравствуйте, Handie, Вы писали:
H>Здравствуйте, placement_new, Вы писали:
_>>Здравствуйте, errest, Вы писали:
E>>>Какие тестовые задания могут дать на C/C++? E>>>Нужны простенькие — типа сортировки массива и найти ошибки _>>Ну например, написать реверс строки или перевод из одной системы счисления в другую, подсчитать число единичек в байте.
H>Реверс строки я уже писал на трех-четырех собеседованиях и делаю это исключительно по памяти — своп двух указателей идущих навстречу друг другу. Это старый баян, его знают почти все, тест на "лоха".
H>То же самое и с подсчетом единичек. Оптимальное решение — lookup table c 8 или 16 битными "чанками". Ну и тест на "лоха" с << и | в цикле.
H>Все это тесты начинающих кодеров
Так оно и есть. Я эту задачу (реверс строки) всегда задаю первой в технической части интервью. И в зависимости от того решает или нет и как решает строится дальнейший разговор.
И я всегда поражаюсь сколько людей не могут решить эту задачу с первого раза (без подсказок). Причём это не всегда студенты, а люди и с 2-3 летним "опытом" на С.
PG>Так оно и есть. Я эту задачу (реверс строки) всегда задаю первой в технической части интервью. И в зависимости от того решает или нет и как решает строится дальнейший разговор.
...без выделения дополнительной памяти?
PG>И я всегда поражаюсь сколько людей не могут решить эту задачу с первого раза (без подсказок). Причём это не всегда студенты, а люди и с 2-3 летним "опытом" на С.
А какой сакральный смысл в подсчете единичек и замене lookup table на битовый сдвиг(или деление по модулю 2) и наложение маски?
Как они помогут в реальном проекте, когда надо будет оптимизировать какой-нибудь алгоритм Левенштайна, или спектрально-корреляционное преобразование(чисто навскидку крайние задачи, для которых пришлось использовать unmanaged. Подставьте сюда свои реальные задачи, тысячи их...)
?
Человеку со склонностью к математике проще решить через деление и маску. Человеку со склонностью к архитектуре и дизайну такие задачи вообще за разумное время решить сложно, паттерны здесь не применишь.
Итого, кто остается? На поиск кого они заточены — "начинающих кодеров", которые будут пахать за миску доширака от забора и до обеда?
Re[5]: а никто и не задумывается: зачем собеседование
Здравствуйте, StandAlone, Вы писали:
SA>Итого, кто остается? На поиск кого они заточены — "начинающих кодеров", которые будут пахать за миску доширака от забора и до обеда?:)
Такими вопросами никто и не озадачивается.
Технарей до собеседования допускать нельзя. Собеседовать должен только менеджер (желательно, забывший кодирование) которого интересует только одно: сможет ли человек решать задачи и выполнять работу.
Для этого хорошо помогает разговор о прошлых проектах.
Задачки предлагают только идиоты. Особенно для сеньоров.
Джуниорам можно предложить что-то несложное, на понимание. Никаких алгоритмов обычно не надо. вообще.
Здравствуйте, StandAlone, Вы писали:
SA>Итого, кто остается? На поиск кого они заточены — "начинающих кодеров", которые будут пахать за миску доширака от забора и до обеда?
ИМХО история у всех этих задачь такова — по этим задачам гоняли в институте. Далее, кто-то попал на работу, оказался набирающим. Как определять квалификацию не знает, и не находит ничего лучшего, как использовать те же критерии оценки, какие были в институте. Далее появляются первые люди под его началом, те снова начинают набирать людей. И снова не знают что спрашивать, и спрашивают именно так, как их гоняли в институте. Ситуация усугубляется тем, что часто народ становится начальниками, так и не научившись программировать, так и не поняв, а что же главное в профессии разработчика и что реально ему требуется в работе.
Мне вообще веселит, как набирают. Человека с 10 летним опытом будут гонять по задачкам, которыми в институте гоняют, и наоборот, студента без опыта будут просить спроектировать систему, спрашивать о роли в прошлых проектах и т.д .
PG>Так оно и есть. Я эту задачу (реверс строки) всегда задаю первой в технической части интервью. И в зависимости от того решает или нет и как решает строится дальнейший разговор. PG>И я всегда поражаюсь сколько людей не могут решить эту задачу с первого раза (без подсказок). Причём это не всегда студенты, а люди и с 2-3 летним "опытом" на С.
то есть надо что-то вроде этого:
#include <stdio.h>
#include <string.h>
Здравствуйте, errest, Вы писали:
PG>>Так оно и есть. Я эту задачу (реверс строки) всегда задаю первой в технической части интервью. И в зависимости от того решает или нет и как решает строится дальнейший разговор. PG>>И я всегда поражаюсь сколько людей не могут решить эту задачу с первого раза (без подсказок). Причём это не всегда студенты, а люди и с 2-3 летним "опытом" на С.
E>то есть надо что-то вроде этого: E>#include <stdio.h> E>#include <string.h>
Здравствуйте, denisko, Вы писали:
D>Здравствуйте, StandAlone, Вы писали:
D>Вы соревнуетесь в том, кто быстрее отымеет мозг интервьюеру чтоли?
Собеседование — дело такое, тут надо успеть отыметь моцк интервьюеру, пока интервьюер не отымел моцк тебе... :-D
А реально, я просто привык пользоваться семантикой массивов в применении к указателям.
Удобно и нагляднее, чем все эти жуткие разыменования указателей: