March
2011
Сертификация Oracle Certified Master, Java SE 6 Developer (SCJD)
Posted in: Java technologies, J2SE, Ваш досуг. Полезные советы | 18 Comments
Новость, о которой я узнал сегодня, требует от меня быстрого принятия решения о выборе следующего экзамена по Java от Oracle.
Beginning August 1, 2011, Java Architect, Java Developer, Solaris System Administrator and Solaris Security Administrator certification path requirements will include a new mandatory course attendance requirement.
Для сдачи Sun Certified Java Developer после 1-го августа 2011 потребуется обязательное посещение одного (спасибо hkvd за уточнение) из следующих курсов:
- Java Programming Language, Java SE 6
- Fundamentals of the Java Programming Language, Java SE 6
- Developing Applications With the Java SE 6 Platform
- Object-Oriented Analysis and Design Using UML
- Java SE Performance Tuning
Цены на посещение курсов просто сумасшедшие, а именно от 2250 до 3000 американских денег; посещение одного курса по времени займет 5 рабочих дней. Так что в прямом смысле “либо сейчас, либо никогда”…
Решил подробно посмотреть Certification path. SCJD и SCEA находятся на одном уровне (Oracle Certified Master), но SCEA состоит из трех шагов, тогда как SCJD - только из двух. Так как с Enterprise технологиями я последнее время особо не работал, а ограничение во времени достаточно серьезное, то выбор мне кажется очевидным. Сертификационные экзамены уровня Oracle Certified Expert пока что не требуют никаких обязательных посещений платных курсов, так что о них буду думать позже.
Теперь очень коротко о том, что нас ждет…
(more…)
March
2011
Запись денежной суммы словами (currency amount in words)
Posted in: Java open-source проекты, Java technologies, J2SE, Полезные программы | 8 Comments
Все же в финансовой сфере достаточно часто попадаются интересные вещи, что бы там не говорили.
Когда-то заказчики поставили перед нашей командой следующую задачу: на чеке необходмо отображать сумму не только цифрами, но и словами. После непродолжительного гугления был обнаружен небольшой класс, написанный на Java еще в 2003 году (к сожалению оригинал больше найти не получается). Код был немного устаревшим и содержал пару мелких ошибок. Тем не менее, за короткий промежуток времени код удалось исправить и успешно внедрить в проект, за что автору кода большое спасибо.
Сейчас дошли руки переписать этот класс (теперь он называется AmountInWords), избавиться от дублирования кода и слегка расширить функциональные возможности.
В этой статье я приведу основные варианты использования класса, а именно:
- непосредственно использование класса для форматирования сумм;
- добавление новых валют;
- интеграция класса в уже написанную систему.
Начнем…
(more…)
March
2011
Получение сертификата Sun Certified Java Programmer (SCJP)
Posted in: Java technologies, J2SE, Ваш досуг. Полезные советы | 20 Comments
В интернете очень много русскоязычных статей о подготовке к сдаче SCJP. Мне не очень хочется повторяться, поэтому много писать не буду, а лишь кратко опишу свои мысли и впечатления.
Цель. Заинтересовало получение сертификата SCJD или чего-то в этом роде. Предусловием к сдаче таких экзаменов как раз и является SCJP. Кроме того, сертификационный экзамен - это достаточно хороший способ систематизировать свои знания (в данном случае по Java SE) и восполнить пробелы в них. Тем более стоимость сдачи экзамена на данный момент - всего лишь 125 американских денег, возможно из-за (благодаря / вопреки) скорому выходу Java 1.7.
Подготовка. Использовал 3 мануала:
- Sun Certified Programmer for Java 6. Study Guide
- Java Language Specification
- The Java Virtual Machine Specification
(more…)
March
2011
Многопоточность. Wait / notify и приоритеты при захвате монитора. Spurious wakeups. Starvation.
Posted in: Java technologies, J2SE | 13 Comments
Продолжаю разрушать мифы по поводу многопоточности в Java.
Миф: Предположим, что несколько потоков (threads) висят на мониторе (monitor) объекта A. Поток T1 захватывает монитор (допустим, входит в synchronized блок) и через некоторое время уходит в wait. Если затем некоторый поток вызовет notify на объекте A, то приоритет по захвату монитора будет иметь тот поток, который уходил в wait, то есть T1.
Попытка объяснения мифа: Поток, который уходил в wait, мог сделать некоторые действия с учетом синхронизации по объекту A. Поэтому, чтобы свести к минимуму влияние работы других потоков на консистентность данных/состояния необходимо сначала дать возможность потоку T1 завершить свою работу в пределах блока синхронизации, а потом уже предоставить монитор объекта на растерзание другим потокам.
Предлагаю такой регламент: для начала совсем чуть-чуть порассуждаем самостоятельно, потом посмотрим, что по этому поводу думают “Java Language Specification” и “The Java Virtual Machine Specification”, ну и наконец проведем ряд тестов, для подтверждения сомнительных высказываний из спецификаций :).
(more…)
March
2011
Собеседование на java-программиста (java-developer interview). Часть 3: Роли
Posted in: Project Management, Ваш досуг. Полезные советы | 15 Comments
Это окончание цикла статей по поводу собеседований в аутсорсинговых (и не только) компаниях:
- Обзор процесса приема на работу в аутсорсинговых компаниях
- Вопросы для собеседования на java-программиста
- Прием на работу: основные действующие лица
В данной статье мы рассмотрим основных игроков, которые так или иначе решают вопрос “быть или не быть” вам сотрудником компании:
- Рекрутер
- Технический специалист
- Менеджер проекта
- Вы (да-да, от вас тоже многое зависит)
Со своей стороны постараюсь описать, как по моему мнению каждая из сторон должна себя вести и какие ошибки они иногда допускают.
Но для начала как обычно:
[Disclamer: В статье выражается до безобразия субъективное мнение. Резкие выражения используются исключительно для донесения своих мыслей до читателя: никого обижать я не собирался и не собираюсь. Людям с расшатанной психикой или зашкаливающим ЧСВ читать, и тем более комментировать, категорически воспрещается. К спамерам и троллям это не относится: каждый ваш комментарий как лучик света в этом царстве тьмы, и дай вам бог всем здоровьечка.]
February
2011
Собеседование на java-программиста (java-developer interview). Часть 2: Вопросы
Posted in: Java technologies, J2SE, Ваш досуг. Полезные советы | 15 Comments
Это продолжение цикла статей о собеседовании на java-программиста:
- Обзор процесса приема на работу в аутсорсинговых компаниях
- Вопросы для собеседования на java-программиста
- Прием на работу: основные действующие лица
Java-related технологии и фреймворки рождаются и умирают, а без знания java core далеко не уедешь. Как можно знать Hibernate, но не знать JDBC и SQL? Как можно разбираться в Spring MVC или Struts, но при это плавать в сервлетах? Как можно пользоваться блокирующими очередями, экзекьюторами и локами, но при этом не понимать, как работают wait/notify? Для меня это до сих пор остается загадкой.
С другой стороны, меня иногда удивляют вопросы сотрудников, которые они задают кандидатам. Зачем спрашивать о Vector и Hashtable - на дворе уже скоро 4-ое тысячелетие. Или “зачем нужен UNION”? Так и хочется ответить - для SQL-инъекций. На счет паттернов проектирования и UML я вообще молчу - неужели до сих пор не наигрались? Но это еще полбеды. Иногда интервьюеры сами допускают довольно грубые ошибки. Об этом чуть позже.
Ниже приведен список вопросов (точнее небольшая его часть), которые я задаю на собеседовании, с моими комментариями. Вся прелесть в том, что в зависимости от позиции (junior java developer, mid-level, senior developer) и специализации некоторые из вопросов превращаются в короткие либо более продолжительные диалоги с кандидатом и проверяют не только технические знания, но и умение мыслить и делать логические умозаключения.
[Disclamer: В статье выражается до безобразия субъективное мнение. Резкие выражения используются исключительно для донесения своих мыслей до читателя: никого обижать я не собирался и не собираюсь. Людям с расшатанной психикой или зашкаливающим ЧСВ читать, и тем более комментировать, категорически воспрещается. К спамерам и троллям это не относится: каждый ваш комментарий как лучик света в этом царстве тьмы, и дай вам бог всем здоровьечка.]
February
2011
Собеседование на java-программиста (java-developer interview). Часть 1: Обзор
Posted in: Project Management, Java technologies, J2SE, Ваш досуг. Полезные советы | 9 Comments
Это обзорная статья из цикла, посвященного процессу приема на работу:
- Обзор процесса приема на работу в аутсорсинговых компаниях
- Вопросы для собеседования на java-программиста
- Прием на работу: основные действующие лица
В течении последних четырех месяцев мне довелось быть на достаточно большом количестве собеседований, к тому же “по обе стороны стола”. И, естественно, мне бы хотелось вставить свои 5 копеек по поводу того:
- как сейчас обстоят дела с собеседованиями в аутсорсинговых компаниях;
- какие вопросы стоит задавать на собеседовании (на java-девелопера);
- каким образом должны действовать все вовлеченные в этот процесс люди.
Но для начала:
[Disclamer: В статье выражается до безобразия субъективное мнение. Резкие выражения используются исключительно для донесения своих мыслей до читателя: никого обижать я не собирался и не собираюсь. Людям с расшатанной психикой или зашкаливающим ЧСВ читать, и тем более комментировать, категорически воспрещается. К спамерам и троллям это не относится: каждый ваш комментарий как лучик света в этом царстве тьмы, и дай вам бог всем здоровьечка.]
February
2011
Синхронизированные метод и блок (synchronized block, synchronized method)
Posted in: Java technologies, J2SE | 9 Comments
Уже не раз слышал от java-программистов, что синхронизированный метод это просто более удобный способ записи synchronized блока с синхронизацией по this.
То есть некоторые люди считают, что объявление
class A {
synchronized void method() { }
}
равноценно следующему:
class A {
void method() {
synchronized (this) { }
}
}
Давайте разберемся с этим раз и навсегда. А поможет нам в этом замечательная книжка, которую каждый человек не зависимо от рода деятельности наверняка носит с собой в бумажном или электронном виде, - “The Java Virtual Machine Specification” :).
May
2010
Закончил школу, университет. Ну вот а потом как-то оно так все поехало, закрутилось… Как будто приказы какие-то… Видимо крест такой у меня…
Казалось бы практически любой, -
Не нужно очень много здесь отваги, -
Способен мысли в рифму изложить
На мыслесохраняющей бумаге.
Взял ручку, лучше даже карандаш,
Вдруг опечатка, всякое бывает…
И начинаешь мысли излагать,
Ну а бумага это сохраняет.
На деле ты спустя часок-другой
Морально и физически измотан.
Листок и ручка как бы говорят:
Кончай … страдать, иди работай.
Да, видимо сегодня день не тот,
К другому барду муза прилетела…
О, кстати, песню завтра напишу.
Делов-то - два куплета, два припева.
April
2010
Хайку о пессимисте, оптимисте и реалисте
Posted in: Разное (uncategorized), Ваш досуг. Полезные советы | 7 Comments
Здравствуй, читатель.
Как бы так кратко сообщить о том, что блог жив и будет жить.
Пожалуй, напишу хайку…
Солнечный лучик
С каждым днем все теплее.
Но скоро зима…
Язык к ледяной
Трубе прилип мгновенно.
Но скоро лето…
Грязь, лужи, жара,
Сугробы, дождь и ветер.
Но ждет работа…
Ждите в ближайшее время новую статью. Ориентировочно статья будет на тему коллекций в Java.
Всем удачи.