Delphi developer tricky/freak/unexpected questions
-
- Уже с Приветом
- Posts: 1935
- Joined: 15 Sep 2003 17:49
- Location: Ukraine, Mariupol -> USA everywhere :-)
Delphi developer tricky/freak/unexpected questions
Привет всем!
Ну в общем subj. И чем больше тем лучше! И желательно из реальной жизни, так как всякие там brainbench просто sux. Я имею в виду по части вопросов с подвохом.
Буду очень признателен.
Ну в общем subj. И чем больше тем лучше! И желательно из реальной жизни, так как всякие там brainbench просто sux. Я имею в виду по части вопросов с подвохом.
Буду очень признателен.
-
- Уже с Приветом
- Posts: 1935
- Joined: 15 Sep 2003 17:49
- Location: Ukraine, Mariupol -> USA everywhere :-)
-
- Уже с Приветом
- Posts: 11332
- Joined: 30 Mar 2000 10:01
- Location: Ice Storm Town
-
- Уже с Приветом
- Posts: 1935
- Joined: 15 Sep 2003 17:49
- Location: Ukraine, Mariupol -> USA everywhere :-)
-
- Уже с Приветом
- Posts: 394
- Joined: 12 Feb 2001 10:01
- Location: USA
Re: Delphi developer tricky/freak/unexpected questions
Вы будете смеяться, но народ часто сыпется на простейших вопросах типа:NNemo wrote:Ну в общем subj. И чем больше тем лучше! И желательно из реальной жизни, так как всякие там brainbench просто sux. Я имею в виду по части вопросов с подвохом.
- В чем разница между dynamic и virtual методом.
- Взаимные ссылки unit-ов друг на друга
- Порядок вызовов initialization и finalization секций
- Какой уровень доступа к членам/методам класса (public, protected, etc) используется по умолчанию
- Ссылка на класс, виртуальный конструктор
Часто этого вполне достаточно. Вопросов именно "трюковых" по языку и библиотеке на интервью задавать не нужно, бессмысленно это. По алгоритмам - можно попробовать, проверить как человек думает.
-
- Уже с Приветом
- Posts: 1935
- Joined: 15 Sep 2003 17:49
- Location: Ukraine, Mariupol -> USA everywhere :-)
Ага. Мне как раз такие вопросы задавали на первом интервью.
Консалтер от рекрутера. Какой-то индус, который как мне показалось совсем ничего не знает.
Теперь интервью с клиентом. Не знаю чего ждать.
Я бы например спрашивал что-то конкретно связанное с опытом разработки.
Ну вот например:
Расскажите как вернуть набор строк из запроса используя ADO для доступа к Oracle.
Ну ка, на вскидку! Слабо?
Это то, что не прочитаешь нажав F1. Все вроде просто, но если этого не делал, то не в жизнь не ответишь. Сегодня проверял
Конкретный experience, который за ночь не наберешь. Даже смежные знания не помогут. Сколько времени ушло на получение ответа?
Вот такие вопросы меня пугают.
Консалтер от рекрутера. Какой-то индус, который как мне показалось совсем ничего не знает.
Теперь интервью с клиентом. Не знаю чего ждать.
Я бы например спрашивал что-то конкретно связанное с опытом разработки.
Ну вот например:
Расскажите как вернуть набор строк из запроса используя ADO для доступа к Oracle.
Ну ка, на вскидку! Слабо?
Это то, что не прочитаешь нажав F1. Все вроде просто, но если этого не делал, то не в жизнь не ответишь. Сегодня проверял
Конкретный experience, который за ночь не наберешь. Даже смежные знания не помогут. Сколько времени ушло на получение ответа?
Вот такие вопросы меня пугают.
-
- Уже с Приветом
- Posts: 394
- Joined: 12 Feb 2001 10:01
- Location: USA
-
- Уже с Приветом
- Posts: 1935
- Joined: 15 Sep 2003 17:49
- Location: Ukraine, Mariupol -> USA everywhere :-)
Я поставил конкретную задачу.
Написание простого приложения с использованием Oracle&ADO.
Прошу прощения забыл упомянуть что нужно использовать stored procedure.
Никому не интересно чем отличается virtual от dynamic, если человек не может выполнить простейшую бизнес логику. Правильно?
Почему задача поставлена именно так?
Ок! Даже зная теорию Вы не сделаете это с первого раза. Могу поспорить. Мне например пришлось серьезно погуглить и внимательно прочитать все найденное, хотя я делаю такие штуки довольно часто с DOA.
В общем я говорю о know-how. Может кто-то встречал вопросы подобные этому и знает как решать проблему.
Please, share your knowledge!!!
Написание простого приложения с использованием Oracle&ADO.
Прошу прощения забыл упомянуть что нужно использовать stored procedure.
Никому не интересно чем отличается virtual от dynamic, если человек не может выполнить простейшую бизнес логику. Правильно?
Почему задача поставлена именно так?
Ок! Даже зная теорию Вы не сделаете это с первого раза. Могу поспорить. Мне например пришлось серьезно погуглить и внимательно прочитать все найденное, хотя я делаю такие штуки довольно часто с DOA.
В общем я говорю о know-how. Может кто-то встречал вопросы подобные этому и знает как решать проблему.
Please, share your knowledge!!!
-
- Уже с Приветом
- Posts: 394
- Joined: 12 Feb 2001 10:01
- Location: USA
-
- Уже с Приветом
- Posts: 1935
- Joined: 15 Sep 2003 17:49
- Location: Ukraine, Mariupol -> USA everywhere :-)
-
- Уже с Приветом
- Posts: 2107
- Joined: 04 Mar 1999 10:01
- Location: Gaithersburg, MD
-
- Уже с Приветом
- Posts: 956
- Joined: 04 Mar 2002 10:01
Victor wrote:Можно задать кучу неприятных вопросов по инициализации компонент. Достаточно мало активно пушущего на D народа глубоко точно знает как это происходит. Например у меня был вопрос когда вызывается TComponent.Loaded
Мой один из любимых вопросов "что означает директива default в описании свойства?" Не поверите, сколько народа сыпалось, индусы прямо один за другим, как спелые груши
-
- Уже с Приветом
- Posts: 1935
- Joined: 15 Sep 2003 17:49
- Location: Ukraine, Mariupol -> USA everywhere :-)
Ну эти то вопросы хоть уровень знаний определить помогут...
Это все же не про структуру юнита. Меня когда это спросили, то я их отлупил - спросил не издеваются ли они? После этого вообще интервью было как песня...
Они по резюме прикинули, что я русский... Так что мы даже про армию поговорили
Вопрос про default конечно с подвохом, но ничего сложного. В доке все путем описано.
Loaded ступенькой выше. Если человек знает что это такое, то значит про стриминг слыхал и может быть смотрел в код VCL.
Но опять таки - может быть...
Расскажу почему спрашивал про ADO.
Ну работают они с ORACLE. После официальной кончины BDE что осталось портабельное и более менее стандартное. Правильно ADO.
Соответственно мне на первом интервью этот вопрос и задали. Ну я от него отмазался на общем основании.
Потом дай думаю проверю на всякий случай.
Делаю все как обычно. А хрен там!!! Не дает Delphi сделать. Давай гуглить.
1. Для коннекции нужно установить dynanic property PLSQLRset= True.
2. Создать пакеджед процедуру. Заметьте процедуру и не как иначе. Параметр типа out ref cursor. С функцией у меня что-то не сложилось, но времени разбираться не было.
3. Установить cursor location на клиенте. Cursor type - static cursor.
4. Везде использовать полностью квалифицированное имя процедуры. И не как иначе! Это похоже на баг в oracle provider или ADO.
5. Удалить параметр созданный по умолчанию. Не верьте Delphi и доке что он должен быть. С ним работать не будет!
Ну после этого можно звать Open.
Итого, ПЯТЬ граблей, на простейшей задаче.
Вот сразу можно сказать работал серьзно человек или нет.
Это все же не про структуру юнита. Меня когда это спросили, то я их отлупил - спросил не издеваются ли они? После этого вообще интервью было как песня...
Они по резюме прикинули, что я русский... Так что мы даже про армию поговорили
Вопрос про default конечно с подвохом, но ничего сложного. В доке все путем описано.
Loaded ступенькой выше. Если человек знает что это такое, то значит про стриминг слыхал и может быть смотрел в код VCL.
Но опять таки - может быть...
Расскажу почему спрашивал про ADO.
Ну работают они с ORACLE. После официальной кончины BDE что осталось портабельное и более менее стандартное. Правильно ADO.
Соответственно мне на первом интервью этот вопрос и задали. Ну я от него отмазался на общем основании.
Потом дай думаю проверю на всякий случай.
Делаю все как обычно. А хрен там!!! Не дает Delphi сделать. Давай гуглить.
1. Для коннекции нужно установить dynanic property PLSQLRset= True.
2. Создать пакеджед процедуру. Заметьте процедуру и не как иначе. Параметр типа out ref cursor. С функцией у меня что-то не сложилось, но времени разбираться не было.
3. Установить cursor location на клиенте. Cursor type - static cursor.
4. Везде использовать полностью квалифицированное имя процедуры. И не как иначе! Это похоже на баг в oracle provider или ADO.
5. Удалить параметр созданный по умолчанию. Не верьте Delphi и доке что он должен быть. С ним работать не будет!
Ну после этого можно звать Open.
Итого, ПЯТЬ граблей, на простейшей задаче.
Вот сразу можно сказать работал серьзно человек или нет.
-
- Уже с Приветом
- Posts: 1211
- Joined: 02 Jul 2000 09:01
- Location: SFBA
Интересно, "как обычно" - это как? Просто то, что Вы ниже написали (за исключением Дельфийской специфики) это на мой взгляд и есть обычный способ вызова sp с клиента через OLEDB. Кроме того, если я правильно понимаю задачу "вернуть набор строк из запроса" - на мой взгляд можно обойтись без stored procedure, OLEDB ICommand / ICommandWithParameters должно хватить, если мне не изменяет память...NNemo wrote:Потом дай думаю проверю на всякий случай.
Делаю все как обычно. А хрен там!!! Не дает Delphi сделать. Давай гуглить.
полностью квалифицированное имя это в смысле package_name.sp_name? Если да, то насколько я понимаю - это не баг, это так и должно быть, а как иначе-то?NNemo wrote:4. Везде использовать полностью квалифицированное имя процедуры. И не как иначе! Это похоже на баг в oracle provider или ADO.
Я не большой знаток database connectivity, но на мой взгляд это все-же больше особенности Оракловского синтаксиса (in out ref cursor) и, в меньшей степени, OLEDB, чем Delphi-specific issue. Я думаю, что, однажды разобравшись, это перестает быть проблемой, даже если Вам в следующий раз придется это изобразить с использованием no matter what - хоть Delphi, хоть C++/OLEDB или C/OCI.NNemo wrote:Итого, ПЯТЬ граблей, на простейшей задаче.
А вообще все это так, суета. Главное, что Вы интервью прошли, с чем и поздравляю.
Удачи.
-
- Уже с Приветом
- Posts: 1935
- Joined: 15 Sep 2003 17:49
- Location: Ukraine, Mariupol -> USA everywhere :-)
Интересно, "как обычно" - это как?
Обычно это как описано, но только без всяких упомянутых ухищрений и в DOA. Есть такая нативная либа.
Просто то, что Вы ниже написали (за исключением Дельфийской специфики) это на мой взгляд и есть обычный способ вызова sp с клиента через OLEDB. Кроме того, если я правильно понимаю задачу "вернуть набор строк из запроса" - на мой взгляд можно обойтись без stored procedure, OLEDB ICommand / ICommandWithParameters должно хватить, если мне не изменяет память...OLEDB не знаю, спорить не буду.полностью квалифицированное имя это в смысле package_name.sp_name? Если да, то насколько я понимаю - это не баг, это так и должно быть, а как иначе-то?NNemo wrote:4. Везде использовать полностью квалифицированное имя процедуры. И не как иначе! Это похоже на баг в oracle provider или ADO.NNemo wrote:Ага, только еще зачем-то приходится писать и схему тоже...Я не большой знаток database connectivity, но на мой взгляд это все-же больше особенности Оракловского синтаксиса (in out ref cursor) и, в меньшей степени, OLEDB, чем Delphi-specific issue.Итого, ПЯТЬ граблей, на простейшей задаче.
На то они и нужны всякие connectivity чтобы не думать об особенностях.
Перечисленные особенности относились как раз к разработке в Delphi.Я думаю, что, однажды разобравшись, это перестает быть проблемой, даже если Вам в следующий раз придется это изобразить с использованием no matter what - хоть Delphi, хоть C++/OLEDB или C/OCI.
Да не нужно мне разбираться, потому что я знаю как это делается
Просто вот опыта еще прибавилось. А то ведь как - посмотрел в доку, уже пришет в резюме - работал, знаю ...
На резюме смотрят, опытных ищут... А опыт то проверить толком даже не могут. А опыт, он, блин, - сын ошибок трудных...
Складывается впечтление, что самое трудное в поиске работы это дойти до интервью. Глупо и обидно...А вообще все это так, суета. Главное, что Вы интервью прошли, с чем и поздравляю.
Удачи.
Спасибо! Но рано еще... Кто ж их разберет - америкосов сраных. Все может случиться. Найдут например локального кандидата...
-
- Уже с Приветом
- Posts: 214
- Joined: 09 Jul 2001 09:01
-
- Уже с Приветом
- Posts: 1935
- Joined: 15 Sep 2003 17:49
- Location: Ukraine, Mariupol -> USA everywhere :-)