Spidola wrote: > > ИМХО: странная компания Поясню. > > Есть математики, есть програмисты. Первые специализируются на решении > математических задач (в том числе и численными методами). Вторые умеют > правильно закодировать алгоритм, чтобы "компьютер" смог решать задачу.
. . . . > Вот объясните мне, пожалуйста, какую цель приследует работодатель, давая > такие задания?
Посмотрев на решение, можно очень многое узнать о человеке.
Например, если человек погонится за оптимальным алгоритмом, но при этом
не будет обрабатывать ошибки во входных данных, я бы такого человека не
взял. Его программы будут (наверное) хорошо работать в некоторых
стерильных условиях, взятых из идеального мира, но в жизни работать не
будут.
Если же человек выберет пусть и не самый оптимальный, но приемлимый в
реальной жизни алгоритм, но закодирует его надежно, с таким человеком
можно работать. В конце концов, элегантные алгоритмы встречаются в
реальных программах нечасто, а надежное кодирование необходимо всегда.
Хорошо бы так же понять, как человек собирается отлаживать такую
програмку. Например, assert'ы и/или отладочная печать в ключевых местах,
это плюс. Отсутствие этого, или бессмысленная отладочная печать на
каждом углу, по которой ничего не поймешь, это минус.
И наконец, чтобы отсечь кандидатов, которые не сами придумали решение,
есть смысл прямо на собеседовании слегка изменить условия задачи, и
попросить человека подкрутить програмку.
Spidola wrote: > > O>Проверка, может ли кандидат мыслить и находить решения. > O>ИМХО, программист должен не только уметь кодировать готовый алгоритм, > но и придумать свой (по крайней мере для таких простых случаев). > O>И я бы не сказал, что это математическая задачка. > > Зачем??? Зачем придумывать свой алгоритм??? Есть проверенные и > выверенные алгоритмы, и навык их поиска и использования на порядок > важнее, нежели умение придумывать свои, которые будут содержать > потенциальные ошибки, будут неоптимальны и т.п.
Ну это тоже довольно спорная позиция. Чтобы ориентироваться в готовых
алгоритмах, надо уметь придумывать свои. По крайней мере, простые. Никто
ведь не ждет от простого программиста, что он самостоятельно придумает,
как из регулярного выражения построить детерменированный конечный
автомат. Но вещи попроще программист вполне может придумать сам.
Что же касается идеи, что самодельный алгоритм всегда хуже/менее
надежен/менее оптимален, чем готовый, с этим тоже можно поспорить.
Во-первых, Вы тем самым предполагаете, что хорошие алгоритмы придумывают
некие богоподобные существа, к которым Вы точно не относитесь.
Во-вторых, ошибка в готовом алгоритме (или боги не ошибаются?) должна
повергнуть Вас в состояние полного ступора, ведь Вы не просто не
понимаете, как этот алгоритм работает, Вы еще и считаете это непонимание
своим достоинством.
На самом деле, готовые библиотеки пишут такие же средненькие
программисты, как и мы с Вами, и ошибок и неоптимальностей там ничуть не
меньше, чем в наших программах. Конечно, готовая библиотека немного
получше оттестирована и отлажена, чем мы с Вами можем себе позволить, но
даже из оттестированных програм время от времени вылезают разные
интересные сюрпризы...
olen33 wrote: > > S>Зачем??? Зачем придумывать свой алгоритм??? Есть проверенные и > выверенные алгоритмы, и навык их поиска и использования на порядок > важнее, нежели умение придумывать свои, которые будут содержать > потенциальные ошибки, будут неоптимальны и т.п. > > Вы серьезно думаете, что на все задачи существуют готовые алгоритмы??? В > таком случае должен вас огорчить: это не так. > Я не люблю придумывать велосипед и, если решение существует, предпочитаю > использовать готовое, но, к сожалению (или счастью?), для большинства > задач решения, по крайней мере, не опубликованы (а, следовательно, не > существует).
А я люблю (хотя менеджерам про это лучше не говорить). Именно это
доставляет наибольшее удовольствие от работы, не так ли?
BishopMorton wrote: > > Я бы на твоем месте, взял бы и нарисовал всю эту сеть, каждый паровозик > своим цветом, рельсы отличным от цвета паровозиков, развязки цветом, > отличным от остальных, действующих лиц... Все объек-ты точки. > Запускаешь много разноцветных точек и двигаешь их в указанных > направлениях, если по ходу движения увидел цвет, отличный от цвета > рельсов и цвета станций, все рисуй красочный взрыв. ( Можно ввести еще > случайный фактор, переодически появляющиеся точки, цвета, отличного от > предыдущих объектов — это будут коровы, например , или пешеходы , > переходящие через рельсы.... )
Еще лучше прийти на собеседование с разноцветными паровозиками, и со
словами "сейчас-сейчас, я все объясню", начать увлеченно двигать ими
перед носом изумленных работодателей.
Здравствуйте, Pzz, Вы писали:
>> Я не люблю придумывать велосипед и, если решение существует, предпочитаю >> использовать готовое, но, к сожалению (или счастью?), для большинства >> задач решения, по крайней мере, не опубликованы (а, следовательно, не >> существует).
Pzz>А я люблю (хотя менеджерам про это лучше не говорить). Именно это Pzz>доставляет наибольшее удовольствие от работы, не так ли?
Придумывать велосипед? Не думаю, что вы пишите быструю сортировку сами, даже там, где ее нет (VB).
А вот придумать что-то умное и новое (хотя бы в маленькой предметной области) всегда приятно
olen33 wrote: > > Pzz>А я люблю (хотя менеджерам про это лучше не говорить). Именно это > Pzz>доставляет наибольшее удовольствие от работы, не так ли? > > Придумывать велосипед? Не думаю, что вы пишите быструю сортировку сами, > даже там, где ее нет (VB).
Иногда и сортировку приходится писать. Особенно там, где ее нет
> А вот придумать что-то умное и новое (хотя бы в маленькой предметной > области) всегда приятно
Это да. Вообще, приятно, когда программа не сводится к "взять данные в
одном месте, положить в другое и сделать это вовремя".
Здравствуйте, Pzz, Вы писали:
Pzz>Spidola wrote: >> >> O>Проверка, может ли кандидат мыслить и находить решения. >> O>ИМХО, программист должен не только уметь кодировать готовый алгоритм, >> но и придумать свой (по крайней мере для таких простых случаев). >> O>И я бы не сказал, что это математическая задачка. >> >> Зачем??? Зачем придумывать свой алгоритм??? Есть проверенные и >> выверенные алгоритмы, и навык их поиска и использования на порядок >> важнее, нежели умение придумывать свои, которые будут содержать >> потенциальные ошибки, будут неоптимальны и т.п.
Pzz>Ну это тоже довольно спорная позиция. Чтобы ориентироваться в готовых Pzz>алгоритмах, надо уметь придумывать свои. По крайней мере, простые.
Вот это действительно спорно.
Pzz> Никто ведь не ждет от простого программиста, что он самостоятельно придумает, Pzz>как из регулярного выражения построить детерменированный конечный Pzz>автомат. Но вещи попроще программист вполне может придумать сам.
Может, но зачем. Если это действительно алгоритм, который описан, то самому его
придумывать не нужно. Можно воспользоваться готовым. Вообще речь идёт о
разных алгоритмах у нас с вами. Я имею ввиду алгоритмы решения задач типа
транспортных и т.п.
Pzz>Что же касается идеи, что самодельный алгоритм всегда хуже/менее Pzz>надежен/менее оптимален, чем готовый, с этим тоже можно поспорить.
Вероятность наличия ошибок и неоптимальности самопридуманного алгоритма значительно
выше. Почему? Вроде очевидно — существующий алгоритм уже не раз использован
и проверен.
Pzz>Во-первых, Вы тем самым предполагаете, что хорошие алгоритмы придумывают Pzz>некие богоподобные существа, к которым Вы точно не относитесь. Я всегда так думал, честно говоря. Инопланетяне
Pzz>Во-вторых, ошибка в готовом алгоритме (или боги не ошибаются?) должна Pzz>повергнуть Вас в состояние полного ступора, ведь Вы не просто не Pzz>понимаете, как этот алгоритм работает, Вы еще и считаете это непонимание Pzz>своим достоинством.
Так в этих алгоритмах практически нет ошибок — они же ВЫВЕРЕННЫЕ И ОТЛАЖЕННЫЕ
в большинстве своём!!!
Pzz>На самом деле, готовые библиотеки пишут такие же средненькие Pzz>программисты, как и мы с Вами, и ошибок и неоптимальностей там ничуть не Pzz>меньше, чем в наших программах.
Вы опять говорите о готовых библиотеках с программным кодом. Я говорю об алгоритмах
как таковых в математическом понимании. Безотносительно к языкам программирования.
Численные методы, к примеру.
Pzz>Конечно, готовая библиотека немного Pzz>получше оттестирована и отлажена, чем мы с Вами можем себе позволить, но Pzz>даже из оттестированных програм время от времени вылезают разные Pzz>интересные сюрпризы...
Да уж. Windows ЖЖЁТ.
Давным-давно, в далёкой-далёкой стране у самых Синих гор жил один молодой человек, который очень хотел стать Мастером Меча. А по обычаям той земли, настоящим Мастером Меча мог стать только тот, у кого был настоящий Меч Мастера.
Молодой человек очень хотел стать Мастером, и он отправился по городам далёкой страны у самых Синих гор. Он хотел прийти к одному из старых Мастеров Меча и попросить его:
— Великий Мастер! Слава о твоих подвигах идёт по всей стране. Ты сражался во всех больших сражениях. Ты всегда побеждал, заслужил славу и почёт. Но теперь ты живёшь в покое, у тебя есть всё, что ты хочешь, и тебе больше не нужен твой Меч — Меч Мастера. Продай его мне, или подари.
Молодой человек очень надеялся, что кто-то из старых Мастеров откликнется на его просьбу, и он отправился в путь и долго шёл, направляясь к одному из больших городов, где, как он знал, жил престарелый Мастер Меча. Он шёл долго и вошёл в ворота. Он у всех спрашивал дорогу, и каждый с готовностью показывал ему дом, в котором жил этот человек — великий Мастер Меча, ушедший на покой. И юноша пришёл в его дом и обратился к нему:
— Великий Мастер! Слава о твоих подвигах идёт по всей стране. Ты сражался во всех больших сражениях. Ты всегда побеждал, заслужил славу и почёт. Но теперь ты живёшь в покое, у тебя всё есть, и тебе больше не нужен твой Меч — Меч Мастера. Подари его мне, или продай.
Мастер Меча выслушал юношу, улыбнулся и ответил ему:
— Я бы с радостью, но ты знаешь, этот меч тебе не подойдёт.
Молодой человек поклонился Мастеру и снова отправился в путь.
Он поднимался в горы, спускался в долины, он плыл по рекам, переправлялся через них и шёл дальше. Он пришёл в другой город, нашёл дом старого Мастера Меча. Он вошёл в этот дом и обратился к Мастеру:
— Великий Мастер! Слава о твоих подвигах идёт по всей стране. Ты сражался во всех больших сражениях. Ты всегда побеждал и заслужил славу и почёт. Ты — настоящий Мастер, это все знают. Но теперь ты живёшь в покое, у тебя есть всё, и тебе больше не нужен твой Меч — Меч Мастера. Продай его мне, или подари.
И старый Мастер Меча выслушал юношу, улыбнулся ему и ответил:
— Я бы с радостью, но ты знаешь, этот меч тебе не подойдёт.
И вновь отправился в путь юноша, который очень хотел стать настоящим Мастером Меча. Он шёл всё дальше, находил старых Мастеров и обращался к ним с одной и той же просьбой:
— Великий Мастер! Слава о твоих подвигах идёт по всей стране. Ты сражался во всех больших сражениях. Ты всегда побеждал и заслужил славу и почёт. И вот теперь, великий Мастер, ты живёшь в покое, у тебя есть всё, о чём можно только мечтать, и тебе больше не нужен твой Меч — настоящий Меч Мастера. Продай его мне, или подари.
И раз за разом, выслушав юношу, старые мудрые Мастера улыбались и отвечали одно и то же:
— Я бы отдал, но ты знаешь, этот меч тебе не подойдёт.
И тогда молодой человек решил отправиться в горы, на поиски тайных кузнецов. Он шёл дни и ночи. Вставал с восходом, ложился спать, когда солнце уже давно село. Он спал мало, и всё шёл и шёл далеко в горы. И наконец он нашёл далеко в Синих горах тайных кузнецов и рассказал о своём положении. Он попросил выковать ему меч, который бы казался настоящим Мечом Мастера. Кузнецы выслушали его и ответили:
— Ты хочешь стать Мастером, и тебе нужен Меч. Хорошо.
И они выковали ему меч, который так же сверкал благородной сталью, легко рассекал железо, шёлк или волос, был великолепно сбалансирован, покрыт сложной замысловатой чеканкой и выглядел как самый настоящий Меч Мастера. Юноша с радостью и благодарностью принял свой новый меч, поклонился тайным кузнецам и отправился в путь.
Он сражался во многих битвах и побеждал. Слава о нём разносилась всё дальше по далёкой стране, опережала его появление, приводила в восторг друзей, вселяла уважение в сердца противников. Он прожил богатую, достойную жизнь и однажды, наконец, ушёл на покой, поселился в одном городе далёкой страны и много лет жил спокойно и счастливо. И лишь иногда, когда гости восхваляли его, настоящего Мастера Меча, ему становилось неловко. Ведь он-то знал, что у него так и не было настоящего Меча Мастера.
И как-то раз к нему пришёл незнакомый юноша. Он поклонился и сказал:
— Великий Мастер! Слава о твоих подвигах идёт по всей стране. Ты сражался во всех больших сражениях. Ты всегда побеждал и заслужил славу и почёт. Ты — настоящий Мастер, все это знают. И вот теперь ты живёшь на покое, у тебя есть всё, и тебе больше не нужен твой Меч — Меч Мастера. Продай его мне, или подари.
Здравствуйте, Pzz, Вы писали:
Pzz>Еще лучше прийти на собеседование с разноцветными паровозиками, и со Pzz>словами "сейчас-сейчас, я все объясню", начать увлеченно двигать ими Pzz>перед носом изумленных работодателей.
"А давайте сыграем в интересную игру? В паровоз!" (С)мультик
Здравствуйте, Disciplester, Вы писали:
D>- Великий Мастер! Слава о твоих подвигах идёт по всей стране. Ты сражался во всех больших сражениях. Ты всегда побеждал и заслужил славу и почёт. Ты — настоящий Мастер, все это знают. И вот теперь ты живёшь на покое, у тебя есть всё, и тебе больше не нужен твой Меч — Меч Мастера. Продай его мне, или подари.
Россия. Новости. Черезвычайные происшествия.
— Вчера был пойман подозреваемый в убийстве Мастера Меча, ушедшего на покой. Подозреваемый объяснил своё деяние тем, что ему нужен был Меч, а Мастер Меча его не отдавал.
SDB>Прошу прощения за резкость — а работать Вы так же собираетесь? Публиковать в форуме ТЗ и спрашивать "у кого-нибудь есть >реализация?" Или просто хотите сравнить свое решение с чьим-либо еще?
Это тестовое задание компании Trancas из SPb. Мне такое же прислали недели полторы назад. Я его сделал в лоб. Судя потому, что от них до сих пор нет вестей они ищут человека, который не будет решать данную задачу в лоб.
Здравствуйте, Dair, Вы писали:
SM>>Это тестовое задание компании Transas из SPb.
D>Прости пожалуйста, а на какую вакансию (и за какие деньги ) такое тестовое задание?
Насколько я помню С# программист на 1200 у.е. Заявка в соседнем форуме. От этой компании посмотри.