Совершенно случайно заметил что на dzone появился гайд по относительно новому экзамену от Oracle и тоже решил написать.
Скажу сразу что здесь не будет silver bullet golden hammer для сдачи этого экзамена. Среди Java разработчиков распространена тяга к best practices. Так как многие проблемы уже когда-то и кем то были решены в ходе почти 20ти летного процесса развития языка, то среди программистов считается плохим тоном придумывать свой велосипед. Настоящий Java-гуру мыслит парадигмами из книг Josh Bloch и Bruce Eckel. Меня, пришедшего из других языков, это всегда умиляло. В данном случае прийдется много работать, т.к. идеального источника для подготовки пока нет.
Я сдал экзамен со второго раза, так что может быть для кого-то мой подход к подготовке покажется чересчур суровым. Но так уж заведено у нас в России. Когда я пришел сдавать в первый раз про новые фичи Java 7 я знал только из книжек. Причиной этому было то что на тот момент во всех моих проектах использовалась 6-я версия JVM. На домашний компьютер я не мог поставить реализацию от Oracle т.к. с ней нормально не запускался ни один апплет! С переходом на Mountain Lion и выходом новых багфиксов могу сказать что 7я джава-машина под маком работает не хуже чем на Linux. Может быть чуть медленнее, но в целом так же.
К чему я это все? К тому что львиная доля вопросов в экзамене как раз по фичам 7й версии джавы. Если быть точнее то особое внимание стоит уделить:
- try-with-resources
- precise rethrow
- diamond syntax
- binary literals
- switch for strings
- JDBC
- NIO.2
- Singleton, DAO and Factory patterns
Экзамен не требует досконального знания всех API, фокусируясь на т.н. corner cases. То есть местах которые не описаны в книжках, а понимание их приходит только после практики работы с тем или иным классом. Вот мой список что реально помогло подготовиться к сдаче и перешагнуть порог в 80 баллов:
- Много, скорее даже МНОГО вдумчиво написанного кода. По работе я сталкиваюсь преимущественно с веб-компонентами джавы, и для понимания многих неиспользуемых мною вещей (как например NIO.2) помогли собственные проекты в которых удалось их использовать. В отличие от всех прошлых сертификаций от Sun этот экзамен невозможно вызубрить, вам нужно действительно много кодить!
- Неплохая книжка A comprehensive OCPJP 7 guide. К сожалению изобилует опечатками и неточностями, особенно в части mock-тестов
- Mock exams by Enthuware(10$). В новой редакции их кардинально поменяли, но все равно не могу порекомендовать их как единственный источник подготовки
- Pro Java 7 NIO.2 от Apress
- Ставшая уже классической книжка K&B SCJP 6 study guide, там есть замечательная глава по IO
Мне реально очень помогло при сдаче экзамена знание Collections API, умение пользоваться try-with-resources, знание регулярных выражений, опыт работы с NIO.2 и опыт создания многопоточных приложений.
Удачи!
Описание подготовки к экзамену OCAJP
Автор: Intimatik