Здравствуйте, mymuss, Вы писали:
M>В Гугле считают, что умение решать головоломки есть признак хорошего разработчика. В Гугле хотят нанять хороших разработчиков. Поэтому для отсева кандидатов им предлагают порешать головоломки.
Но там и не задают таких вопросов как записать строчку в файл... Т.е. лично мне больше всего не нравится третий вопрос — про второй — ну некоторые конторы практикуют вообще собеседование по алгоритмам (Гугл и МС, например). И там много чего нужно продемонстрировать, что потом никому не нужно будет. Правда нужно приготовиться платить хорошо за тех, кто их проходит.
Кстати, интересный вопрос — где-то гуляет анекдот про индийских программеров — что приходит первый срезается на первом вопросе, приходит второй — на втором вопросе и т.д. В Вашем случае это не так?
Здравствуйте, landerhigh, Вы писали:
ГВ>>Попробуем. Получим отказ и вернём false. Что не так? Не хрен флешки дёргать когда ни попадя. L>Уверен, что не встанем раком вместе с ОС или не удалим такой же файл с другой, только что воткнутой флешки?
Можем и удалить. Я ж говорю — не надо флешки дёргать, когда ни попадя. Но с другой стороны — фиг с ним, с удалением. Достаточно того, что неудачное закрытие файла может служить признаком неудачи всей транзакции.
L>Такие вещи нужно оставлять на откуп ОС. Если там атомная война в рантайме случилась, то все равно рухнем.
Я бы поправил — "можно", а не "нужно".
L>Вот проверять статус операции записи очень даже полезно как раз.
+1
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Gradient, Вы писали:
G>Здравствуйте, Lloyd, Вы писали:
L>>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>>осталось доказать, что неучтённая площадь пренебрежимо мала
L>>Это уже мелочи.
G>Нарисовать и показать что при увеличении количества долек в 2 раза оставшаяся площадь уменьшается более чем в 2 раза, и можно будет взять с полки пирожок.
А если просто вспомнить что предел sin(x)/x при x->0 равен 1, а cos(x) — нулю? И взять интеграл по углу.
Здравствуйте, Геннадий Васильев, Вы писали:
L>>Этот матерый С++ уже в сотый раз сталкивается с там, что гнущие пальцы наниматели его резюме даже не удосужились прочитать. ГВ>Наниматели отфильтровали не один десяток крутоопытных, которые на поверку несли такую чепуху, что уши закладывало...
А кто обещал, что будут одни только апельсины с мандаринами? ГВ>Эдак мы до многого доспоримся. L>>Видимо, поэтому и умудрялись нанять описанных тобой добывателей творога из вареников. L>>Это — неуважение к кандидату. Стоит ли идти работать в такую контору, каждый решает сам. ГВ>Знаешь, если человеку 10 раз сказать "свинья", то он захрюкает. Здесь то же самое — если 15 кандидатов оказались распальцованными пустышками, то будь ты хоть мегагуру, но 16-м по счёту, то тебя на сформировавшихся рефлексах и встретят как 16-ю пустышку. Тут уже впору не беситься, а сочувствовать.
Тут прикол еще в том — если на объявление о вакансии приходят одни распальцованные пустышки, то что-то явно не так. То ли никто не читает резюма, приглашая всех подряд, то ли, что вероятнее, объявление составлено так, что никто, кроме означенных персонажей, не беспокоится. Или просто хотят Эйнштейна за рубль.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, landerhigh, Вы писали:
ГВ>>>Попробуем. Получим отказ и вернём false. Что не так? Не хрен флешки дёргать когда ни попадя. L>>Уверен, что не встанем раком вместе с ОС или не удалим такой же файл с другой, только что воткнутой флешки? ГВ>Можем и удалить. Я ж говорю — не надо флешки дёргать, когда ни попадя. Но с другой стороны — фиг с ним, с удалением. Достаточно того, что неудачное закрытие файла может служить признаком неудачи всей транзакции.
А может и нет. И чаще всего не является.
Определяется исключительно задачей и контекстом. Так вот, задача "записать дату в файл" такого не подразумевает даже неявно.
L>>Такие вещи нужно оставлять на откуп ОС. Если там атомная война в рантайме случилась, то все равно рухнем. ГВ>Я бы поправил — "можно", а не "нужно".
Точнее, нужно, если нет необходимости сделать обратное.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, alzt, Вы писали:
A>>Если дать мне листок бумаги и время подумать — подберу коэффициенты, но вспомнить точно не смогу.
L>Не надо ничего подбирать. Береш круг и нарезаешь его на дольки. Эти дольки выстраиваешь в ряд. Получаешь ряд треугольников. Высота каждого — примерно равна радиусу круга r, сумма длин оснований — 2*П*r. Сумма площадей соответственно — r * (2*П*r) / 2. В итоге — П*r^2
А показать откуда взялось 2 \pi r ? Если знать длину окружности, то площадь берется элементарным интегралом по радиусу концентрических окружностей, я его ниже писал. Вопрос в том, сможете ли вы вывести формулу длины окружности? Я бы вот не смог, наверняка.
Из функционального задания полуокружности получаем интеграл для длины . Так как мы не знаем, что это r arcsin(x/r), да и вообще arcsin явно слишком сложно вспомнить, нужно догадаться, представить это в виде , где r f(x/r) — первообразная. Ну вот и все. И никаких \pi. Чтобы было \pi надо вспомнить определение. , т.е. . Вот вам и формула. Но все равно, надо кучу чего знать и помнить, чтобы её вывести хотя бы так.
Здравствуйте, olegkr, Вы писали:
L>>сумма длин оснований — 2*П*r. O>Это тоже знать надо. Вот так вот сходу понять откуда здесь взялось Pi будет посложнее, чем вспомнить формулу круга
Да ничуть не сложнее, достаточно помнить, что пи это и есть отношение длины к диаметру. по определению, так сказать.
Здравствуйте, jartur, Вы писали:
G>>Нарисовать и показать что при увеличении количества долек в 2 раза оставшаяся площадь уменьшается более чем в 2 раза, и можно будет взять с полки пирожок.
J>А если просто вспомнить что предел sin(x)/x при x->0 равен 1, а cos(x) — нулю? И взять интеграл по углу.
Вы в своем уме? Раз человек не знает формулу площади круга, то интегралы он и подавно не знает.
Здравствуйте, zakima, Вы писали:
Z>Здравствуйте, mymuss, Вы писали:
M>> 3. записать текущую дату в текстовый файл Z>Без компа, MSDN и intellisense впал бы в глубокий ступор. Возможно бы и справился, но не уверен )
var
f: textfile;
begin
assignfile(f, 'c:\txt.txt');
rewrite(f);
writeln(f, datetimetostr(now));
closefile(f);
end;
ы? понятно что никаких проверок, файл константа а можно было взять из параметров ком строки итд. но факт остается фактов. что ж вы так сишники от жизни отдаляетесь?
Здравствуйте, Lloyd, Вы писали:
O>>Это тоже знать надо. Вот так вот сходу понять откуда здесь взялось Pi будет посложнее, чем вспомнить формулу круга
L>Да ничуть не сложнее, достаточно помнить, что пи это и есть отношение длины к диаметру. по определению, так сказать.
Ага, только сейчас Вам тут расскажут, что знать это программисту не обязательно, это ж не на пальцах до десяти считать, а знание, которое в реальной жизни бесполезное
Здравствуйте, Vzhyk, Вы писали:
>> Хм. Значит, никогда не приходилось преобразовывать выражения вот так: >> >> if (!a || !b) ==> if (!(a && b))
V>И самое что важное, задача эстетического удовлетворения от чтения кода V>минимально приоритетна — это когда делать програмеру нечего.
код пишется один раз, а читается 10. и если второе будет понятней, то я обязательно перепишу
Здравствуйте, mymuss, Вы писали:
M>2. Дорого. С услугами аутсорсеров нам выходило от 25 в час. Я не знаю сколько из них перепадало сотруднику, а сколько уходило на взятки, налоговые итд. Но за 30-35 уже можно поискать в США, а это будет, как правило, повыше уровень, никаких проблем с английским и часовыми поясами.
Тока мне кажется, что производительность спеца за 25/ч в Киеве будет в несколько раз выше производительности спеца за 30/ч в штатах. 25/ч в Киеве- это сеньер хорошего уровня, 30/ч в штатах — жуниор с качеством кода "сделано на коленках". Так что врезультате экономия будет не 5/ч, а куда больше.
Геннадий Васильев пишет: > > > V>Вероятность здесь неприменима. Применима только Ваша уверенность что > V>скорее всего будет или не будет успешна, а это исключительно > V>субъективная вещь и притом зависит от опыта. > > Нет. Именно вероятность, которая и становится основой "уверенности".
Ну и назови мне вероятность возврата ошибки функцией close(). Да, потом
я задам вопрос, как ты ее считал.
А по жизни ты именно свой опыт и ассоциируешь с вероятностью.
> > V>А вот когда опыта мало, параноидальный код выходит. > > Не надо обобщать. Наличие проверок не всегда означает, что к коду можно > приклеить ярлык "параноидальный". И опыт — тоже не всегда надёжный советчик.
Нет, но и избыток проверок, что я тоже не раз наблюдал (когда человек не
совсем понимает, когда нужно проверять, а когда нет).
А опыт — это уже наша психология — по большому счету мы основываемся
только на нем, хотя часто пытаемся выдать за истину в последней инстанции.
> > Э... Зависит от многих факторов. Понятно, что "в реальности" требования > к качеству зачастую снижаются. Но как тебе сказать... Собеседование, это > своего рода игра. В сущности, игра несложная. Если даже в неё играть по > правилам "тяп-ляп", то в этой самой пресловутой "реальности" всё может > оказаться гаже и плоше.
Лично мне такая игра не интересна. Или есть взаимовыгодное
сотрудничество или нет.
> >> > >> > Именно. И именно в случае тестового задания на собеседовании имеет смысл >> > показать полную обработку ошибок. > V>Это уже Ваше видение, я противник такого. Собеседование — практически > V>всегда стресс и гарантировано, практически каждый человек наделает ошибок. > > Ошибки ошибкам рознь. Можно забыть последовательность параметров или > название метода. То о чём я здесь говорю — принципиальные вещи.
Опять, повторюсь, это для тебя принципиальные вещи. Для меня нет,
например. И из-за подобной неточностью на собеседовании я ни в коем
случае не собираюсь отказывать специалисту, которые в общем-то
справиться с задачами для него.
Если какой-либо момент принципиальный, с точки зрения будущих задач, я
сам укажу человеку на него, и послушаю, что он скажет.
> > Ну, если бы я увидел тест без проверок открытия/записи, то однозначно бы > засомневался в кандидате. Что он показывает? Что может быстро-быстро > прилепить одну команду к другой в более или менее правильном порядке?
Ну тогда, как много ты видел людей, которые могут эту "правильную"
последовательность сделать?
Например, тест, который мы даем кандидатом может иметь громадное
количество путей решения. И на многие мелочи эффективнее не обращать
внимания, а смотреть на ключевые моменты.
Не давайте такой тест людям с нормальным опытом работы. Как уже много раз обсуждалось, это может обидеть.
Добавлю свои пять копеек. Если вопрос идет не о найме мастера-зомбивода который будет всех за ниточки дергать, то хотелось бы чтобы человек нормально уживался в колективе. Если человек обижается по мелочам... .
Здравствуйте, IID, Вы писали:
IID>Здравствуйте, Volgaboatman, Вы писали:
V>> Ну коли на то пошло, то еще можно проверять мат. логику. Типа сложное выражение с кучей and и or переписать на отрицание.
IID>А что тут сложного ? Закон Де-Моргана
Да ничего сложного, на вид только посложнее чем вспомнить площадь круга и в отличии от нее требуется на практике периодически. Я тут встречал такие перлы у студентов...
Здравствуйте, Vzhyk, Вы писали:
>>> > V>Жду рецепта "серебрянной пули". >>> > Возвращаем ошибку в вышестоящий слой. >> V>Поехали дальше, а что сделает вышестоящий слой? >> Возвратит ошибку в вышестоящий слой V>И так до господа бога дойдем?
Здравствуйте, landerhigh, Вы писали:
L>Тут прикол еще в том — если на объявление о вакансии приходят одни распальцованные пустышки, то что-то явно не так. То ли никто не читает резюма, приглашая всех подряд, то ли, что вероятнее, объявление составлено так, что никто, кроме означенных персонажей, не беспокоится. Или просто хотят Эйнштейна за рубль.
Нет смысла на техническом интервью тестировать память и знание деталей.
А.Пуанкаре (Математическое творчество. М., 1909) выделял три уровня способностей к математике.
1. Совершенно неспособные. Не обладают ни силой памяти, ни вниманием.
2. Одарены редкой памятью и большой способностью внимания. «Они запомнят наизусть частности, одну за другой; они смогут понять математическую теорию и даже иной раз сумеют ее применить, но они не в состоянии творить». По моим наблюдениям, такие программисты склонны «думать руками»: перебирать и пытаться применить все возможные комбинации из уже известных пакетиков своих знаний. «Паковщики» ((с) Алан Картер, Колстон Сенджер, «Программистский камень», 1997).
3. Не только смогут понять математику, не обладая особенной памятью, но они смогут оказаться творцами. «Творчество состоит как раз в том, чтобы не создавать бесполезных комбинаций, а строить такие, которые оказываются полезными; а их ничтожное меньшинство». «Картостроители» ((с) тот же).
ИМХО, программирование и математическое доказательство имеют много общего, поэтому «картостроители» гараздо более полезны в в программировании.
О себе Пуанкаре пишет: «Что же касается, например, меня лично, то я должен сознаться, что неспособен сделать без ошибки сложение».
Здравствуйте, Vzhyk, Вы писали:
V>Но в чем смысл сего действа? Эстетическое удовлетворение?
Смысл — простота чтения, понимания, и, как следстрвие — сопровождение.
V>Но есть многие мегабайты кода, работающего, написанного многими людьми. V>И самое что важное, задача эстетического удовлетворения от чтения кода V>минимально приоритетна — это когда делать програмеру нечего. А так V>обычно есть еще немерянно задач по развитию продукта и гораздо более V>приоритетных.
Код красив тогда, когда его легко читать, понимать, дебажить и модифицировать.
И в таком случае развитие продукта будет проходить планируемо и с минимальными трудозатратами.
-----
Любимая фраза физика-теоретика: "Вот видите, мы ошиблись всего лишь на порядок".