Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Вниз

Тест по Delphi при приеме на работу   Найти похожие ветки 

 
Anna   (2005-01-25 16:14) [0]

Уважаемые профессионалы, помогите, пожалуйста! При приеме на работу надо выяснить уровень компетентности человека в Delphi.
Может быть, кто-нибудь знает недлинный тест, котором достаточно быстро можно понять, насколько кандидат в предмете.
Я Delphi немного знаю.


 
kaZaNoVa ©   (2005-01-25 16:30) [1]

Anna   (25.01.05 16:14)
1 если ты немного делфя знаешь, то сложно будет оценить компетентность ...

а вообще, советую ему дать нетривиальную задачу, и предложить ему тут же, на бумаге, написать примерный код, как бы он её решил - имхо лучший метод ...


 
kaZaNoVa ©   (2005-01-25 16:32) [2]

например типа:

послать по e-mail все *.doc с раюочего стола, посмотреть, какие он компоненты заюзает, как код оформляет и т.д.


 
Anna   (2005-01-25 16:45) [3]

Спасибо.


 
Digitman ©   (2005-01-25 16:46) [4]


> При приеме на работу надо выяснить уровень компетентности
> человека в Delphi


ох как сложно(

начни с того как чел форматирует свой код в Object Pascal ..

о многом это может сказать ..


 
Anna   (2005-01-25 16:55) [5]

Это все-таки уровень культуры программирования, а не знание компонент и особенностей


 
Arm79 ©   (2005-01-25 17:09) [6]

Тесты бывают разные. Мне вот примерно год назад попадался один. Там присутствовал следующий вопрос: Почему БДЕ идеально подходит для разработки клиент-серверных приложений? Как вы считаете, почему? Я вот написал напротив вопроса, что отнюдь не считаю его идеальным. А контора требовала знания MS SQL Server 2000. Так меня и не взяли, о чем кстати, я сейчас не жалею.


 
Erik1 ©   (2005-01-25 17:12) [7]

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


 
MBo ©   (2005-01-25 17:13) [8]

>Anna  
1. На какую позицию принимается человек?
2. Рядом нет серьезного программиста, который мог бы провести собеседование и дать/оценить тестовые задачи?

А вообще, гони его на форум, пусть поработает, через неделю-другую дадим заключение (о некоей части качеств) ;)


 
Arm79 ©   (2005-01-25 17:15) [9]

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


 
uny ©   (2005-01-25 17:15) [10]

можно открыть какой нибудь код и попросить объяснить что то оттуда. желательно самому понимать этот код


 
Digitman ©   (2005-01-25 17:17) [11]


> Это все-таки уровень культуры программирования


согласен.

и вот как раз то, как чел оформляет свой код, может многое сказать о его "культуре" ..


 
Anna   (2005-01-25 17:32) [12]

2_MBo
>1. На какую позицию принимается человек?
Разработка Delphi+Oracle.

>2. Рядом нет серьезного программиста, который мог бы провести собеседование и дать/оценить тестовые задачи?
Серьезный пока занят...

>А вообще, гони его на форум, пусть поработает, через неделю-другую дадим заключение (о некоей части качеств) ;)
За предложение спасибо, но недели нет.


 
palva ©   (2005-01-25 17:34) [13]

Пусть в вашем присутствии пройдет онлайновый тест на certifications.ru Delphi 5 или Delphi 7. Там 40 вопросов. Кто на большее число вопросов ответит, того возьмете.


 
Awex   (2005-01-25 18:11) [14]

2palva
Ага... и большая половина по BDE...
да и вообще

Вопрос типа:
Какой тип данных не поддерживается в базах InterBase Server?
множественный выбор:
INTEGER
BOOLEAN
SMALLINT
CURRENCY
VARCHAR  

коментарий:
Причем сдесь такой вопрос, если тест по Delphi? Да и какая версия InterBase ??? От этого зависит правильный ответ....

по моему мнению тесты по Delphi на certifications.ru полный отстой...


 
kaZaNoVa ©   (2005-01-25 18:24) [15]

Erik1 ©   (25.01.05 17:12) [7]

> Лучше уж ему зарание давать сделать такую вещь.

100% половину не сам сделает))))

Arm79 ©   (25.01.05 17:15) [9]

> Да, и по поводу отсылки файлов с рабочего стола... Я
> вот с ходу не напишу.

я тоже, но могу сказать, что например для коннекта импользую WinApi сокеты в потоке, блокирующие, для определения папки рабочего стола использую Shell-функции, для поиска файлов - FindFile из SysUtils и т.д. и только одну процедуру чистого кода написать - я так думаю ...

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


 
kaZaNoVa ©   (2005-01-25 18:27) [16]

kaZaNoVa ©   (25.01.05 18:24) [15]
забыл сказать, проверку на расшируние сделать можно и вручную, но грамотнее использовать функции из "масок" и т.д.  -=))


 
kaZaNoVa ©   (2005-01-25 18:29) [17]

palva ©   (25.01.05 17:34) [13]

> Пусть в вашем присутствии пройдет онлайновый тест на
> certifications.ru Delphi 5 или Delphi 7. Там 40
> вопросов. Кто на большее число вопросов ответит, того
> возьмете.

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


 
kaZaNoVa ©   (2005-01-25 18:33) [18]

Arm79 ©   (25.01.05 17:15) [9]

> Но решаемость этой задачи в короткие сроки с хелпом и
> справочной литературой у меня не вызывает никаких
> сомнений.

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


 
Игорь Шевченко ©   (2005-01-25 18:34) [19]

Digitman ©   (25.01.05 17:17) [11]


> и вот как раз то, как чел оформляет свой код, может многое
> сказать о его "культуре" ..


Уважаю. Ты абсолютно прав.


 
Developerr   (2005-01-25 18:38) [20]

Если человек компетентен в Delphi, следовательно он что-то разрабатывал, вот и пускай принесет свои программы, расскажет покажет все. Какая разница, как он пишет код и использует компоненты, главное чтобы был конечный результат. Заодно, может он и использовал какие-то компоненты не стандартные. Вот про них расскажет. И не нужно никаких тестов. Человек может волноваться или чего-то не помнить, но может запросто найти в какой-нибудь литературе и т.д.


 
HSolo ©   (2005-01-25 18:54) [21]

>Какая разница, как он пишет код и использует компоненты, главное чтобы был конечный результат

Вы не боитесь, что Вам придется разбирать что-то вроде http://delphimaster.net/view/15-1106553402/
?


 
Developerr   (2005-01-25 19:03) [22]


> HSolo ©

Дело в том, что я не знаю какая стоит задача в приведенном Вами коде. Согласен, сразу пугает, ну и ничего страшного, есть и более серьезные коды, например, исходники Linux, но это же не значит, что там писали люди из дурки.
Разобраться можно во всем. Юзеру до лампочки, какой код в программе, главное чтобы хорошо работало и без глюков или я не прав?

А, что если код очень понятно написан, но с кучей ошибок? Пользователь этого не простит.


 
kaZaNoVa ©   (2005-01-25 19:16) [23]

Developerr   (25.01.05 18:38) [20]

> Какая разница, как он пишет код и использует
> компоненты, главное чтобы был конечный результат

ага, еще можно предложить, что он будет свою работу перепоручать "3-му лицу" - "лишь бы результат" ))


 
kaZaNoVa ©   (2005-01-25 19:21) [24]

Developerr   (25.01.05 19:03) [22]
Юзеру до лампочки, какой код в программе, главное чтобы хорошо работало и без глюков или я не прав?

я раньше так же думал ..  раньше . .)))

но под влиянием этого форума изменил мнение, согласен с [11] и [19]


 
Romkin ©   (2005-01-25 19:31) [25]

Зотов что-то молчит :))
Есть у него зверский тест, здесь уже публиковался:
На все вопросы нужно отвечать без машины, книг и справки. Можно пользоваться
лишь бумагой и ручкой. Если чего-то не помните наизусть - например, количество
параметров в функциях, их тип и порядок следования - это неважно, достаточно
указать лишь схему кода - например: MyFunc(MyParam1, ..., MyParamN). Ответы
нужны короткие, но точные - то есть, лишь самая суть в одной-двух фразах. Общее
время на все - примерно час. В него надо уложиться и, кроме того, в вопросах 2в,
3д и 4в тоже указано контрольное время, в которое надо уложиться, отвечая на
данный вопрос.

И еще - имейте в виду, что большинство приводимых ниже вопросов, IMHO, в
общем-то, выше уровня среднего прикладного программиста. Так что, если на что-то
не ответите, то это вовсе не повод не для расстройства (зато повод для чтения
книг). Думаю, если ответите на половину, то это будет уже неплохо. А если на все
- то Ваш уровень явно выше среднего.

Вопрос 1 (на знание основ и платформы).
Чему будет равно W после выполнения следующего кода процессором Intel x86? Ответ
объяснить.

type
PWord = ^word;
var
I: integer;
W: word;
begin
I := High(I) shr 8;
W := PWord(Integer(@I) + 2)^;
end;

Вопрос 2 (на знание языка, общее умение программировать и грамотность стиля).
а). Что такое открытые массивы и их конструкторы?
б). Напишите пример перегрузки процедуры.
в). Написать процедуру поиска в заданном каталоге и всех его подкаталогах всех
файлов по маске A?.B* (контрольное время - 20 минут).
г). В чем заключается недостаток такого кода:

try
Obj := TMyObject.Create;
...
finally
Obj.Free;
end;

Вопрос 3 (на знание и понимание VCL).
а). Что такое Custom-класс, абстрактный метод, классовый метод?
б). В чем принципиальное отличие TLabel от TStaticText?
в). От какого класса наследуется TCollection и почему?
г). У каких компонентов есть событие OnCreate? Почему его нет у других
компонентов?
д). Написать модуль, содержащий класс, который позволяет создать лишь один свой
экземпляр (контрольное время - 10 минут).

Вопрос 4 (на знание Win32 и ее API).
а). Что такое объекты ядра? Перечислите несколько функций, в которых они
используются.
б). Приводят ли вызовы функций LoadLibrary/FreeLibrary к загрузке DLL в ОЗУ или
выгрузке из ОЗУ?
в). Написать стандартный код цикла выборки сообщений (контрольное время - 2
минуты).
г). Чем принципиально отличаются функции SendMessage, PostMessage и
PostThreadMessage?
д). Каково назначение функций GetStockObject и SelectObject?


 
Romkin ©   (2005-01-25 19:34) [26]

И мое дополнение:
Вопрос 5 (СОМ)
а). Есть отрывок кода работы с Excel:

var
 Workbook: ExcelWorkbook;
 Worksheet: ExcelWorksheet;
 Disp: IDispatch;
...
begin
 ...
 Disp := Workbook.Sheets.Add(EmptyParam, EmptyParam, 1, EmptyParam, 0);
 OleCheck(Disp.QueryInterface(_WorkSheet, WorkSheet));
 ...
end

Объясните, что делается в этом отрывке и почему, по вашему мнению,
написано именно так?

б). Объясните, для чего применяется интерфейс IStream. Назовите несколько
функций СОМ, работающих с этим интерфейсом.

Вопрос 6. (SQL)
a). Имеется таблица

create table T (
 Дата  date,
 Валюта char(3),
 Курс numeric,
 primary key (Дата, Валюта)
);

Данные:

Дата      Валюта    Курс
------------------------
01.09.04  USD       29.8
02.09.04  EUR       35.4
03.09.04  USD       29.7
05.09.04  USD       29.6
06.09.04  USD       29.8
06.09.04  EUR       35.6
...

Напишите запрос, выдающий курс заданной валюты на заданную дату.
Курс считается определенным, если для данной валюты
есть запись с датой не превосходящей заданную, взять ближайший курс.
Запрос должен выдать курс в обеих случаях:
- курс USD на 06.09.04
- курс USD на 04.09.04

б). Имеется таблица

create table T (Client_ID integer, CNT integer);

Пример заполнения:

Client_ID  CNT
----------------
1          3
1          2
2          1
4          2
4          3
4          4
5          2
5          7
...

Напишите запрос, удовлетворяющий стандарту SQL92,
возвращающий значение CLIENT_ID, для которого сумма CNT максимальна.


Если найдете человека, правильно ответившего на больше половины вопросов - смело берите :))) Рекорд - все, кроме 4 (!). Не мой, к сожалению.


 
Gero ©   (2005-01-25 19:38) [27]


Digitman ©   (25.01.05 16:46)
> начни с того как чел форматирует свой код в Object Pascal
> ..
> о многом это может сказать ..

Да ни о чем это не говорит.
Форматирования кода и уровень знаний никак не связаны.


 
Romkin ©   (2005-01-25 21:20) [28]

Gero ©   (25.01.05 19:38) [27] Может, и не связаны. Однако корреляция просматривается: опытный программист всегда форматирует код правильно :)))
И по форматированию многое можно сказать об опыте.
А с другой стороны - работать-то в коллективе придется. И если код не форматирован, канделябром сразу получаешь. И нафига такое?


 
Developerr   (2005-01-25 21:21) [29]


> ага, еще можно предложить, что он будет свою работу перепоручать
> "3-му лицу" - "лишь бы результат" ))

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


 
Gero ©   (2005-01-25 21:22) [30]


> И по форматированию многое можно сказать об опыте.

Ничего подобного.


 
Romkin ©   (2005-01-25 21:27) [31]

Gero ©   (25.01.05 21:22) [30] Ответь на вопрос: почему опытный программист после then начинает новую строку? :)))


 
Gero ©   (2005-01-25 21:29) [32]


> Romkin ©   (25.01.05 21:27)

А почему?


 
VMcL ©   (2005-01-25 22:05) [33]

>>Gero ©  (25.01.05 21:29) [32]

Как минимум, дебажить удобнее (по крайней мере до D6 включительно).


 
Юрий Зотов ©   (2005-01-25 22:29) [34]

> Gero ©   (25.01.05 21:22) [30]

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

> Gero ©   (25.01.05 21:22) [32]

Оператор if записан в 1 строку:
if условие then begin код1 end еlse begin код2 end;
В ней возникает ошибка. Надо найти причину. Пройдите дебаггером и сразу все поймете. Потом запишите то же самое вот так и сравните, насколько проще стала отладка:
if условие then
begin
 код1
end
еlse
 begin
   код2
 end;

Информация к размышлению: до 80% рабочего времени программиста - это отладка.


 
Юрий Зотов ©   (2005-01-25 22:38) [35]

> Gero ©   (25.01.05 21:22) [30]

Еще пример (A и B - целые переменные, F1 и F2 - функции, возвращающие целые значения).

Какой код лучше:
if (A > B) and (F1 < F2) then...
или
if (F1 < F2) and (A > B) then...

Так вот - в коде профи все нюансы подобного рода продуманы и написаны оптимальным образом. А ведь это тоже элементы оформления (хотя и не форматирование, конечно).


 
KilkennyCat ©   (2005-01-25 22:52) [36]


> Информация к размышлению: до 80% рабочего времени программиста
> - это отладка.


есть еще похожая поговорка:
первые 90% работы занимают 10% времени. последние 10% работы занимают 90% времени.


 
Gero ©   (2005-01-25 23:02) [37]


> Вы неправы.

Речь шла о форматировании.
Вот я форматирую код очень хорошо, хотя опытным программистом не являюсь.

> Оператор if записан в 1 строку:

Конечно, но ведь можно записать и так:
if условие then begin
код1
end еlse begin
код2
end;

Кроме читабельности ничего не страдает.

> Информация к размышлению: до 80% рабочего времени программиста
> - это отладка.

Да я догадываюсь в общем-то :)
Приходилось программировать немного.

> Какой код лучше:
> if (A > B) and (F1 < F2) then...
> или
> if (F1 < F2) and (A > B) then...
Лучше в плане чего?
В каждом конкретном случае может быть по-разному.
Скажем, если {$B+}, то разницы может не быть никакой.
> Так вот - в коде профи все нюансы подобного рода продуманы
> и написаны оптимальным образом. А ведь это тоже элементы
> оформления (хотя и не форматирование, конечно).

Ну это уже не оформление вовсе.


 
KilkennyCat ©   (2005-01-25 23:08) [38]


> if (A > B) and (F1 < F2) then...
> или
> if (F1 < F2) and (A > B) then...


а вот я не понял... имеется ввиду, что выполнение (F1 < F2) может повлиять на (A > B) ?


 
Gero ©   (2005-01-25 23:15) [39]


> KilkennyCat ©   (25.01.05 23:08)

Думаю, что имеется ввиду скорость сравнивания значений переменных и результатов выполения функций.


 
default ©   (2005-01-25 23:39) [40]

"> if (A > B) and (F1 < F2) then...
> или
> if (F1 < F2) and (A > B) then..."
а если человек не уверен что сравнение обязательно будет слева направо и напишет код
if F1 < F2 then if A > B then...
то зачтётся ответ?



Страницы: 1 2 3 4 5 вся ветка

Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.036 c
3-1105463795
Jiny
2005-01-11 20:16
2005.02.13
проблема с объединением 2-х и более таблиц


14-1106085325
Tankist
2005-01-19 00:55
2005.02.13
Что вы думаете о Свидетелях Иеговы?


1-1106746187
Derevyanniy kak Rels
2005-01-26 16:29
2005.02.13
Узнать программно , если такой метод или нет ?


4-1103695704
race1
2004-12-22 09:08
2005.02.13
DrawText


1-1106812445
tytus
2005-01-27 10:54
2005.02.13
ListBox.Item и Объект





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский