Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Работа Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5   вперед  Ctrl      все
 Re: Нифига себе тестовые задания пошли.....  [new]
Str
Member

Откуда: Москва
Сообщений: 157
softwarer
но на собеседовании я понял, сколько же еще всего.. даже не слышал.


Вот это к вопросу недостатков маленьких компаний. Сидишь там и думаешь, что все знаешь, а оказывается технологии давно ушли вперед. И в крупных используются серьезные инструменты и методики. Поэтому хотябы нужно читать о новинках. У меня рывок образования и был связан со сменой работы. Когда только начал рыться на job.ru и читать чего же люди хотят от работника, то начал много чего изучать именно в тех направлениях, которые требуются в большинстве вакансий.
25 июн 04, 08:18    [764610]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
andsm
Member

Откуда: Москва
Сообщений: 1319
Блог
Задача без rowcount и top решается просто:
declare @N int
set @N=10

declare @StoreData table(ID int identity(1,1),
zone int,
row int,
riser int,
CountNumber int
)

insert into @StoreData (zone, row, riser, CountNumber)
select zone, row, riser, CountNumber from
(select zone, row, riser, count(*) as CountNumber 
from Store
group by zone, row, riser) TblIn
order by CountNumber desc

select * from @StoreData where ID<=@N
25 июн 04, 09:39    [764727]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63999
Блог
andsm
Задача без rowcount и top решается просто:
insert into @StoreData (zone, row, riser, CountNumber)

Мне бы это решение не понравилось - насколько я понимаю, выполняется и дергается туда-сюда полный запрос (на тысячи строк) ради того, чтобы вернуть первые десять.

Я бы все-таки поставил соответствующий счетчик в процедуре - благо, в Oracle это делается просто, не знаю как в MS SQL.
25 июн 04, 10:24    [764851]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
Александр Спелицин
Member

Откуда: Из ближайшего подмосковья.
Сообщений: 2506
Не надо забывать, что это Sybase.
Т.е. в их случае код должен быть кроссплатформенным. Т.е. одинаково работать и на ASA и на ASE, и наверняка еще MSSQL.
К сожалению, ASE поддерживает далеко не все новые фичи типа вложенные подзапросы, RowCount, Top, ...

Вот и приходится извращаться, чтобы код пусть и медленно, но одинаково работал на 2-х, а то и на всех трех приведенных выше СУБД. Кстати, там еще есть и Sybase IQ :o)!

Вот мой вариант решения:
Create Procedure GetRows @row_count int
AS
BEGIN
  Create Table #Tmp (id numeric(10) identity, zone int, row int, riser int, count int)

  Insert #Tmp (zone, row, riser, count)
  Select zone, row, riser, count(*)
  From STORE
  Group By zone, row, riser
  Order by count(*) desc

  Select zone, row, riser, count from #Tmp
  Where id <= @row_count
  Order By count 

  Drop Table #Tmp
END

ЗЫ. Кстати, раньше в ASE у полей типа int не могло быть свойства identity. Ему только numeric подавай :(
Как сейчас дела обстоят (ASE 12.5, ASE 15.0), не могу сказать.
25 июн 04, 10:45    [764943]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
ChA
Member

Откуда: Москва
Сообщений: 11136
softwarer
andsm
Задача без rowcount и top решается просто:
Мне бы это решение не понравилось

Вот-вот, именно про это я и говорил, когда упоминал об эффективности.
Использование временных таблиц, там где все просто решается с помощью
ROWCOUNT попахивает самодурством. Любая задача может иметь массу
решений, но зачем же выбирать самое неэффективное ?

P.S. IMHO, разумеется
25 июн 04, 10:56    [764992]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63999
Блог
ChA
Вот-вот, именно про это я и говорил, когда упоминал об эффективности. Использование временных таблиц, там где все просто решается с помощью ROWCOUNT попахивает самодурством.

Я имел в виду, что можно совместить одно с другим.
Проблема тестовых заданий в том, что они либо обрастают кучей второстепенных деталей, либо несколько искусственны. А ругаться на постановку.. в общем, она такая, какая есть. В реальной жизни то же самое - можно долго убеждать клиента, что его постановку задачи стоит изменить, но в конечном счете ты либо убеждаешь его, либо делаешь то, что он говорит. Либо не делаешь вообще.
25 июн 04, 11:18    [765075]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
ChA
Member

Откуда: Москва
Сообщений: 11136
Да я как бы и не ругаюсь, просто удивляют иногда искусственные
ограничения.
В MS SQL отсутствует rownum (в Oracle, кажется, есть нечто подобное),
потому без временной таблицы или сложного подзапроса эту задачу
попросту невозможно решить, не используя TOP или SET ROWCOUNT.
В Yukon обещали ввести, тогда было бы все просто, добавлением
условия типа rownum() <= @N.
25 июн 04, 11:34    [765156]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
vecna
Member

Откуда: msc
Сообщений: 234
можно курсор открыть и сделать цикл по N записям... хотя я не знаю T-SQL поэтому предлагаю PL/SQL =)

но есессно rownum <= N самый логичный вариант
25 июн 04, 14:25    [765916]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
TOP rulez!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
25 июн 04, 14:29    [765935]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
mv
Member

Откуда:
Сообщений: 8876
Братушки, послушайте сюда: - не очень давно два студента общались по поводу того, как лучше курсовухи делать. Та вот, один рассказал, что под видом работодателя на Job.ru помести подобное тестовое задание. Очень доволен результатами.
25 июн 04, 16:03    [766316]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
Александр Спелицин
Member

Откуда: Из ближайшего подмосковья.
Сообщений: 2506
Вот по этому объявы о работе с е-мейлами на mail.ru и прочих бесплатных (а также и платных, но публично доступных - dol.ru, aha.ru, online.ru, mtu.ru) почтовых ящиков просто прокручиваются колесом мышки не читая их.
25 июн 04, 16:14    [766363]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Дык а не надо ничего делать и посылать енто самое туда.
А то может.... Помещу как я объяву такую:
Требуются сотрудники, хоть что-то знающие в компьютерах, з/п 3000$, набор ограничен. Для того, чтобы вас оценить, пришлите решение уравнения 2*x=5 на купюре в 500 рублей. мыло: лохотрон@мыло.ру


-- Tygra's --
25 июн 04, 16:49    [766543]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8873
25 июн 04, 18:06    [766922]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
eys
Member

Откуда: Севастополь
Сообщений: 247
softwarer
eys
Вот хорошее тестовое задание:

Не думаю, что оно хорошее. Если для выполнения в домашних условиях - проверяется разве что умение пользоваться интернетом для скачивания готовых исходников. Если для выполнения "на месте" - физтехи, скривив зубы, скажут, что это сверхтривиально, а остальные, скривив брови, скажут, что помнят про сортировку слиянием, но возиться лень.

Кстати, ограничение памяти в 1Mb на java - это такая шутка юмора? :-)


Сортировка слиянием не поможет, поскольку памяти мало и эталон уделает эту сортировку на ура. Интересно глянуть на скачанный вами исходник.
Еще более интересно увидеть, за сколько проходов вы получите отсортированный файл при сортировке методом слияния?
Хороший алгоритм отсортирует файл с 10.000.000 записей за 1 проход исходного файла и однократной записью в выходной файл (правдв исп. небольшой временный файл)
29 июн 04, 20:21    [772868]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
andsm
Member

Откуда: Москва
Сообщений: 1319
Блог
eys

Сортировка слиянием не поможет, поскольку памяти мало и эталон уделает эту сортировку на ура. Интересно глянуть на скачанный вами исходник.

Раз есть ограничение на размер памяти, то нужно использовать алгоритмы из области баз данных. Думаю сортировка многокомпонентным слиянием (или двухфазным? не помню точное название) должна справиться с задачей наиболее быстро.
29 июн 04, 22:10    [772956]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
Str
Member

Откуда: Москва
Сообщений: 157
Я конечно понимаю, что здесь большинство программистов, которые рассматривают тестовые задания со своей колокольни. Но в проектах работают не только программеры. Как проверить, например, тестировщика или консультанта внедрения, я уже не говорю о руководителе проектов. Им тестовое задание трудно придумать. Здесь только резюме и личная беседа.
Вот для технического писателя я видел такое тестовое задание. Дают две небольшие программы, нужно полазить по одной и по другой и написать два отчета: в одном написать как можно подробнее почему лучше первая программа и ее достоинства, а в другом наоборот, почему лучше вторая.
30 июн 04, 08:34    [773174]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63999
Блог
eys
Сортировка слиянием не поможет, поскольку памяти мало

Это, видимо, еще одна шутка юмора. Алгоритмами сортировки я последний раз интересовался лет пятнадцать назад, но еще помню, что сортировка слиянием "не поможет" как раз если памяти много. Мало того, мне казалось, что доказана ее теоретическая оптимальность.

eys
Хороший алгоритм отсортирует файл с 10.000.000 записей за 1 проход исходного файла и однократной записью в выходной файл (правдв исп. небольшой временный файл)

Давайте разделим это на два вопроса. Первый - это типично физтеховский подход на зубрежку алгоритмов. Я не назову это хорошим заданием уже по этой причине; лично мне нужны люди, которые умеют думать, а для проверки этого это задание, мягко говоря, бесполезно. Второй - я готов дополнить Ваше утверждение прямо таки формально обоснованным утверждением.

Итак, мы имеем входной файл, читаемый в определенной последовательности. Можно читать его с начала, с конца, сначала четные записи а потом нечетные - последовательность все равно есть, и минимальная запись - та, которая должна быть записана первой в выходной файл - может оказаться последней.

Раз так, во временном файле плюс в оперативке должны к этому моменту храниться 9.999.999 записей, ждущих своей очереди на запись в выходной файл. Следовательно, размер этого "небольшого временного файла", грубо говоря, равен размеру входного файла минус оперативка.

(Формальное утверждение кончается) А если так, мы имеем вариации на тему все той же сортировки слиянием.
30 июн 04, 12:12    [774003]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63999
Блог
Str
Как проверить, например, тестировщика или консультанта внедрения, я уже не говорю о руководителе проектов. Им тестовое задание трудно придумать.

Полагаю, тестовое задание можно придумать кому угодно. Тестеру - уж точно нет проблем. Другой вопрос, что задания могут быть достаточно разными по форме; скажем, руководитель проекта почти на любое задание должен ответить устно :-)

Если, конечно, не вспоминать анекдот про тестовое задание - написать ответ на ноту протеста африканской страны..
30 июн 04, 12:16    [774028]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
eys
Member

Откуда: Севастополь
Сообщений: 247
softwarer
eys
Сортировка слиянием не поможет, поскольку памяти мало

Это, видимо, еще одна шутка юмора. Алгоритмами сортировки я последний раз интересовался лет пятнадцать назад, но еще помню, что сортировка слиянием "не поможет" как раз если памяти много. Мало того, мне казалось, что доказана ее теоретическая оптимальность.

eys
Хороший алгоритм отсортирует файл с 10.000.000 записей за 1 проход исходного файла и однократной записью в выходной файл (правдв исп. небольшой временный файл)

Давайте разделим это на два вопроса. Первый - это типично физтеховский подход на зубрежку алгоритмов. Я не назову это хорошим заданием уже по этой причине; лично мне нужны люди, которые умеют думать, а для проверки этого это задание, мягко говоря, бесполезно. Второй - я готов дополнить Ваше утверждение прямо таки формально обоснованным утверждением.

Итак, мы имеем входной файл, читаемый в определенной последовательности. Можно читать его с начала, с конца, сначала четные записи а потом нечетные - последовательность все равно есть, и минимальная запись - та, которая должна быть записана первой в выходной файл - может оказаться последней.

Раз так, во временном файле плюс в оперативке должны к этому моменту храниться 9.999.999 записей, ждущих своей очереди на запись в выходной файл. Следовательно, размер этого "небольшого временного файла", грубо говоря, равен размеру входного файла минус оперативка.

(Формальное утверждение кончается) А если так, мы имеем вариации на тему все той же сортировки слиянием.


Ваше формальное утверждение не имеет никакого отношения к объективной реальности.
Поскольку числа не повторяются, то мы используем битовый вектор,
соответственно, за вычетом служебных переменных мы можем в нём хранить числа от 1 - 8.000.000 (можно исп. 1Мб). Все числа не попавшие в этот диапазон, записываем в двоичном виде во временный файл, битовую карту скидываем на диск в виде набора чисел в текстовом виде (4 байта * 2.000.000 =8.000.000 т.е. без малого 8Мб, а не "размер входного файла минус оперативка" 10000000 - занимает в текстовом виде 8 байт + 0A | 0D | (0A0D), т.е. + ещё 1-2 байта). С арифметикой у физтехов явно плохо.
Берём двоичный временный файл и строим битовую карту, в относительной оси +8.000.000 и скидываем в выходной текстовый файл. Примерно так работает эталон.
Шеллы, пузырьки, слияния и прочее НЕРВНО КУРИТ В СТОРОНКЕ.
30 июн 04, 12:33    [774132]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63999
Блог
eys
Ваше формальное утверждение не имеет никакого отношения к объективной реальности.
Поскольку числа не повторяются, то мы используем битовый вектор,

Ну-ну. Хотел бы я посмотреть, как Вы используете битовый вектор для десяти миллионов чисел, начинающихся со следующей последовательности: 0, 0.1, 0.11, 0.111, ....

Или давайте все условия задачи. Я еще тогда обратил внимание, что требование уникальности в Вашей формулировке бессмысленно, но счел его обычным отвлекающим маневром.
30 июн 04, 14:04    [774520]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
eys
Member

Откуда: Севастополь
Сообщений: 247
2 Softwarer Да, целых чисел, тут я виноват.

Softwarer: Кстати, ограничение памяти в 1Mb на java - это такая шутка юмора? :-)

Да помоему это Вы юморист:
java.exe -Xmx1M ClassName
30 июн 04, 14:43    [774737]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
andsm
Member

Откуда: Москва
Сообщений: 1319
Блог
eys

Шеллы, пузырьки, слияния и прочее НЕРВНО КУРИТ В СТОРОНКЕ.

Для случая когда все значения уникально, это так. Но в общем случае нужно использовать сортировку двухфазным многокомпонентым слиянием. А ваша задача не на алгоритмы, а на внимательность чтения.
30 июн 04, 17:18    [775398]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
LeXa NalBat
Member

Откуда: Москва
Сообщений: 2892
2 eys:

eys
2 Softwarer Да, целых чисел, тут я виноват.


Да, и еще! Не целых чисел в математическом определении, а таковых в вашем (программистском) понимании, то есть ограниченных типом (int4, int8).

Поймал как-то Беклемишев (преподаватель физтеха) золотую рыбку. Рыбка просит: отпусти меня, Бек, выполню любое твое желание. Бог с тобой, отвечает Беклемишев, плыви себе с богом, ничего мне от тебя не надо. Отпускает рыбку, но вдруг как-будто что-то вспоминает и говорит: рыбка, а рыбка, выполни мое желание - хочу чтобы у меня кхм-кхм был до земли. Будь по твоему, отвечает рыбка. В воздухе слабые сияние и звон свершающегося чуда. Ноги у Бека начинают укорачиваться, укорачиваться,.. Рыбка, да что же это такое, что же ты сделала - плачется Беклемишев. Рыбка голосом Бека: надо точнее формулировать условия задачи.
30 июн 04, 17:41    [775482]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
ЦК
Guest
2 Str

> Как проверить, например, тестировщика или консультанта внедрения, я уже не говорю о руководителе проектов. Им тестовое задание трудно придумать

Это смотря какого тестировщика. Если хвастающегося глубоким знанием тулов автоматизированного тестирования - им можно парочку вопросов задать в духе: вот записываете вы скрипт в среде бла-бла-бла для программы ля-ля-ля - фактически траффик по такому-то порту. Во время записи в числе прочих записывается и уникальный идентификатор сессии. Во время воспроизведения этого скрипта UID сессии уже другой. Как вы будете решать эту проблему? И посмотреть что товарищ отвечать будет. Если этот вопрос по зубам оказывается (что бывает достаточно редко), следующий вопрос - а теперь то же самое, только траффик теперь encrypted, public key/private key, ля-ля-ля. Если просто записывать/воспроизводить - то будет просто генериться мусор. Как в этом случае тестировать?

Хотя это конечно не задание. А задание может быть очень простым (и некоторые конторы кстати практикуют): вот вам программа (exe - шник), вот к ней спецификация (на страничку). Напишите тест-план, тест-кейсы и отчет о выполнении тестов. Потом все что остается - пробежаться по известному списку ошибок и сравнить с отчетом.


Консультантов внедрения проверять не приходилось, но есть мысля, что стоит позвонить/cъездить на предыдущий проект и ненавязчиво пообщаться с людьми из той конторы, где что-то внедрялось до вас. О качестве услуги спросите того, кому она оказана... ;о)


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

Это разве задача тех. писателя? А мне всегда казалось, что этим сейлз-манагеры занимаются.
1 июл 04, 11:23    [776685]     Ответить | Цитировать Сообщить модератору
 Re: Нифига себе тестовые задания пошли.....  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63999
Блог
LeXa NalBat
Да, и еще! Не целых чисел в математическом определении, а таковых в вашем (программистском) понимании, то есть ограниченных типом (int4, int8)

Аккуратнее надо быть :-) Не так и не так. Эта задача обычно дается в постановке типа - целые от 1 до 10.000.000 в произвольном порядке; только в этом варианте при этом условии даже битовой карты не понадобилось бы :-)

А так - даже если строить битовую карту по int4, она займет что-то порядка 512 Мб, а никак не "1 Мб плюс небольшой временный файл". А анализ входящей последовательности, позволяющий сжать эту битовую карту, займет куда больше времени, нежели сортировка..
1 июл 04, 11:33    [776721]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5   вперед  Ctrl      все
Все форумы / Работа Ответить