Delphi programming blog
Источник: http://teran.karelia.pro/articles/item_4478.html
 

Delphi Certification Program

Опубликовано 07.06.2011 г. 23:56

Может штука появилась и давно, но только сегодня увидел ссылку в твите Марко Канту.

Предмет обсуждения - http://www.embarcadero.com/certification Давайте посмотрим, что это такое. Программа сертификации предлагает нам два уровня сертификации - Delphi Developer и Delphi Master Developer.

Delphi Developer

Экзамен Delphi Developer предназначен для проверки ваших общих знаний о программировании в Delphi. В него входит проверка знаний синтаксиса, техник программирования, использования IDE и разработка баз данных. Разработчики, которые используют учебные материалы, и имеют хотя бы двухлетний опыт разработки должны сдать данный экзамен.
Так нам говорит аннотация на соответствующей странице экзамен. Представлена ссылка на руководство для сдачи экзамена, в котором приведены ссылки на обучающие ресурсы и темы, который затрагиваются в экзамене. Первым вашим шагом к сдаче является изучение материала. Второй шаг - оплата экзамена. Стоимость сдачи - 49 у.е. Именно у.е ибо для США это доллары, а для европы евро. Суть в том, что вы покупаете код для доступа к тестированию, после чего в течении 90 дней вы должны его пройти. Где купить ключик? http://www.embarcadero.com/certification/where-to-buy Вопрос только один у российских разработчиков может быть: почему в списке нет России? ну да ладно. После того как вы завершите тестирование, вы получите свой результат. Если вы сдали тест, то вы получаете сертификат и какое то лого сертифицированного разработчика. Тестирование на эту степень проводится онлайн, так что податель сего сертификата никак не сможет доказать, что лично он сам сидел за монитором и отвечал на вопросы. Тест состоит из 60 вопросов, на которые вы должны ответить за 60 минут. т.е минута на вопрос. Чтобы сдать экзамен необходимо иметь 80% правильных ответов. Т.е 48 из 60. В каждом вопросе предусмотрено несколько вариантов ответа. Все вопросы имеют одинаковый вес в суммарном балле. Сертификат имеет смысл в течение 2х лет со дня получения. Экзамен охватывает следующие области:
  1. Основы Delphi
  2. Типы данных, переменные и константы
  3. Процедуры и функции
  4. Классы и объекты
  5. Обычные практики и ввод/вывод
  6. Библиотеки и пакеты
  7. Интерфейсы объектов
  8. Управление памятью
  9. Обобщения, атрибуты и анонимные методы
  10. Исключения
  11. Основы работы с БД
Выбирается произвольное количество вопросов из разных секций. Вопросы касаются совершенно различных версий Delphi, вплоть до XE. Тут видимо Embarcadero передает привет всем разработчикам, которые используют более старые версии Delphi. Доброй половины, если не больше, функционала в Delphi 7, к примеру, наверное, и нет. По крайней мере частей с generics, RTTI, анонимными методами. Тем не менее утверждается, что базовых знаний всех этих секций должно хватить для сдачи экзамена. Предлагаемые источники для изучения - онлайн документация, книги Марко Канту и Боба Сварта, а также сайты а-ля delphi.about.com, ну и сертифицированные курсы. Я вот как то ездил на курс по разработке БД в УЦ Интрефейс - отстой. Получил сертификат о прохождении курса распечатанный на принтере там же. А вот теперь спросите себя, для чего проводятся эти экзамены? Почему приводятся сторонние ресурсы, почему учебные материалы выпускаются не самой Embarcadero, а ссылки на блоги и сайты сообщества Delphi разработчиков? Почему Microsoft предоставляет учебную литературу для подготовки к экзаменам, а Embarcadero говорит, что спросите в сообществе - ваши коллеги вам подскажут, ну или купите книги. А у MS учебные материалы качественны и бесплатны. Выходит MS заинтересован подтвердить качество знаний разработчика, а Embarcadero получить 50 евро. Далее в руководстве (ссылка выше) приведен более подробный перечень тематик для вопросов (из тех что выше), и приводятся примерные вопросы, которые могут быть на экзамене.

Давайте посмотрим на эти вопросы

1. Какие из перечисленных символов или слов определяют начало и конец блока кода в Delphi?
a) { }
b) [ ]
c) start end
d) begin end
2. Какой тип данных лежит в основе TDateTime?
a) Double
b) TObject
c) String
d) Integer
3. Что из перечисленного ниже не является корректным соглашением о вызовах в 32битных Delphi?
a) register
b) dynamic
c) stdcall
d) cdecl
4. Пакет Delphi может содержать компоненты, невизуальные компоеннты, но не формы
a) да
b) нет
5. Какой из нижеприведенных символов или слов обозначает определение атрибута.
a) { }
b) < >
c) [ ]
d) & &
e) ни один из перечисленных выше.
6. В какой области памяти располагаются локальные переменные и параметры процедур/функций.
a) стек
b) куча
c) в произвольной
7. Какие из перечисленных обобщенных классов будут разрушать объект при удалении его из списка (предполагается, что список владеет объектом, выбрать несколько)
a) TList
b) TObjectList
c) TDictionary
d) TObjectDictionary
8. При работе в большим количеством записей в наборе данных, какой метод DataSet необходимо вызвать, чтобы предотвратить обновление визуальных дата-контролов каждый раз при смене активной записи.
a) BlockUpdate
b) DisableControls
c) Disable
d) Ни один из вышеперечисленных
Ответы
1. Правильный ответ: d. begin end
2. Правильный ответ: a. Double
3. Правильный ответ: b. dynamic
4. Правильный ответ: b. False
5. Правильный ответ: c. [ ]
6. Правильный ответ: a. Stack
7. Правильный ответ: b and d. TObjectList and TObjectDictionary
8. Правильный ответ: b. DisableControls
Вопросы весьма простые. Я правда ответил все равно только на 7 из 8ми. Почему то на 6й ответил heap. Хотя понятно, что параметры передаются через стек. Но на параметры я внимания не обратил, и сконцентрировался на локальных переменных, а уж где для них память выделяется я понятия не имею (: так что ткнул наугад. Хотя вопрос тоже не совсем корректен, при использовании модели вызова register параметры передаются напрямую в регистры процессора, что как мы знаем, повышает скорость работы. Если конечно же хватает регистров. Так же не совсем корректен и 7й вопрос. С одной стороны мы конечно же знаем, что уничтожать объекты будут TObjectList & TObjectDictionary. Но в вопросе интересная приписка "если список владеет объектом". Простите, но если список владеет, то он обязан уничтожать объект. Другое дело что TList & TDictionary сами по себе не умеют контролировать время жизни, т.е не являются владельцами. Т.е приписка была направлена на параметр конструктора TObjectList.Create([ownsObjects : boolean]), но тут забыли что у обычного TList такого нет. В общем лучше бы не делали такой приписки (: но это таки все придирки наверное. Зачем в 3м вопросе дописывать про 32битные? какая разница. Соглашение о вызовах одно везде, хоть там 16 хоть 64 бита.

Delphi Master Developer Certification

Аннотация:
Эзкамен Delphi Certified Master Developer проверяет углубленное знания Delphi, архитектур, и знаний использования возможностей разработки среды Delphi XE. Тестирование включает проверку как основных таки углубленных знаний синтаксиса, техник программировния, использования IDE, построения проектов и групп проектов, использования и разработки компонентов, ваших знаний в создании настольных, клиент-серверных, интернет и многозвенных приложений. Сдача такого экзамена выделит вас как элитного разработчика среди сообщества Delphi. Разработчики с как минимум 4хлетним стажем должны сдать данный экзамен.
Стоимость 149 у.е. Сдавать такой экзамен можно только в сертифицированном центре. опять же 60 вопросов за 60 минут и 80%, а имхо могли бы и поднять планочку - вопросов и времени побольше да порог процентов 90. Разделы уже другие:
  1. Общие представления о windows
  2. интерфейс и настройка Delphi XE
  3. Delphi VCL и RTL
  4. Работа с компонентами
  5. Язык Delphi и ООП
  6. Общие практики работы с БД
  7. dbExpress
  8. DataSnap
  9. написание DLLs и пакетов
  10. Основы разработки компонентов
  11. программирования для Internet
  12. Работа с XML
Список книг для изучения расширен еще парой изданий опять же весьма именитых авторов.

Давайте тоже рассмотрим примерные вопросы:

1. Какое свойство класса TCanvas позволяет вам вызывать функции Windows GDI и передавать необходимую информацию в контекст устройства?
a) DC
b) HDC
c) Wnd
d) Handle
2. Точка останова может быть установлена до выполнения программы.
a) да
b) нет
3. какие из этих контролов Windows не рисует автоматически? (выбрать все необходимые)
a) TEdit
b) TPageControl
c) TBitBtn
d) TDBGrid
4. Какой объект определяет где отображается элемент управления
a) форма
b) приложение
c) владелец контрола
d) родитель контрола
e) ни один из перечисленных
5. По отношению к приведенному ниже коду, какое утверждение из перечисленных ниже корректно, если класс TSample используется в компилированном коде?
type
  TSample = class
    public
      class destructor Destroy;
  end;
Деструктор класса(классовый) :
a) всегда будет выполняться перед выполнением секции finalization модуля.
b) всегда будет выполняться после секции finalization модуля.
c) The class destructor of TSample will be executed before the unit's finalization clause, since TSample has been referenced in the project.
d) The class destructor of TSample will be executed after the unit's finalization clause, since TSample has been referenced in the project.
6. Вам необходимо создать новый компонент который может получать фокус и взаимодействовать с клавиатурой, какой компонент вы выберите в качестве родительского класса?
a) TControl
b) TWinControl
c) TGraphicControl
d) TComponent
7. Предположим, вы выполняете хранимую процедуру используя TSQLStoredProc, и она возвращает несколько наборов данных. Как вы будете переходить к следующему набору данных?
a) использовать метод NextRecordSet
b) использовать метод Next
c) TSQLStoredProc не поддерживает навигацию по набору данных
d) ни один из перечисленных выше
8. Какой из перечисленных типов данных корректен для SOAP серверных методов (server side method) (выбрать нужные)
a) Integer
b) TDateTime
c) TStringList
d) Pointer
9. Какой тип DSServerClass.LifeCycle предоставляет единственный экземпляр класса на сервере?
a) Server
b) Session
c) Unique
d) Invocation
Ответы
1. Correct answer: d. Handle
2. Correct answer: a. True
3. Correct answer: c and d. TBitBtn and TDBGrid
4. Correct answer: d. The control's parent
5. Correct answer: d. The class destructor of TSample will be executed after the unit's finalization clause, since TSample has been referenced in the project.
6. Correct answer: b. TWinControl .....(много текста)
7. Correct answer: a. Execute NextRecordSet ....
8. Correct answer: a and b. Integer and TDateTime 9. Correct answer: a. Server
я ответил правильно на 6 из 9ти. Причем в первом была глупая ошибка, ткнул HDC, спутав с TCanvas.Handle : HDC, т.е выбрал тип вместо свойства. Ошибся с 5м. Никогда не задумывался даже, в какой момент выполняются классовые конструкторы/деструкторы, оказывается после финализации. странно. (: ну и в 9м, ибо вообще не знаю о чем речь :) В общем то конечно же интересно все это, интересные вопросы в Master Developer, возможно даже маловато времени 1 мин на вопрос для некоторых из них (как например про классовый конструктор, больше минуты будешь искать разницу между вариантами). Я бы наверное даже для интересу прошел тест на Developer. Надеюсь Всеволод Леонов расскажет нам подробней о сертификации, в том числе в России и странах СНГ. Напоследок еще один интересный факт - сертификат о сдаче экзамена вы получите в PDF виде (: можете его распечатать (: + получите мега отметку о сдаче в вашем аккаунте в EDN. А что есть Certification logo и как его использовать я так и не понял. Для руководителей прохождение может быть тоже полезным - Сохраните список вопросов, будете тестировать кандидатов при приеме на работу (:

 

Метки:  certification  |  delphi 

Комментарии

IL
08.06.2011 в 14:45
В тему про сертификацию, причем бесплатную для зарегистрированных пользователей XE
http://delphi-insider.blogspot.com/2011/06/free-delphi-developer-certification.html
ter
08.06.2011 в 18:28
да, че то я и не написал про то, что обладатели индивидуальных лицензий Delphi ХЕ могут сдать экзамен бесплатно до 31 июля, а казалось что писал (:
IL
10.06.2011 в 01:25
Все равно спасибо, что написали! Было неожиданно и интересно узнать, что вопросы не очень тяжелые, и где-то даже примитивные. На мастера может и не сдам, но на разработчика сдать обязан :)
ter
10.06.2011 в 11:43
да что то мне подсказывает, что там и заковыристых вопросов будет предостаточно (:
Алексей
21.08.2011 в 00:59
А я прошёл сертификацию Delphi Developer.
При покупке Delphi сертификацию предоставляют бесплатно.

Не сказать, что сложные вопросы.
Даже несколько вопросов досталось из списка примерных.
Например, про begin end, про истинный тип данных TDateTime... :)
ter
21.08.2011 в 19:02
я тоже прошел (:
http://blog.karelia.ru/teran/?p=667
IL
29.06.2011 в 23:41
А то?! И Марко Кэнту привлекли :)
http://blog.marcocantu.com/blog/delphi_certification.htm
Правда насчет оставшихся 2-х дней для получения бесплатного кода он не прав. До 31 июля владельцам XE можно получить код бесплатно.
ter
30.06.2011 в 10:42
ага, тоже читал, что он участие принимал в составлении (:
- Имя
- e-mail*
- Сайт
вы можете использовать теги [i],[b],[code],[quote]
Дополнительно