15
February
2011

Собеседование на java-программиста (java-developer interview). Часть 2: Вопросы

Posted in: Java technologies, J2SE, Ваш досуг. Полезные советы | 17 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: В статье выражается до безобразия субъективное мнение. Резкие выражения используются исключительно для донесения своих мыслей до читателя: никого обижать я не собирался и не собираюсь. Людям с расшатанной психикой или зашкаливающим ЧСВ читать, и тем более комментировать, категорически воспрещается. К спамерам и троллям это не относится: каждый ваш комментарий как лучик света в этом царстве тьмы, и дай вам бог всем здоровьечка.]

(more…)

14
February
2011

Собеседование на java-программиста (java-developer interview). Часть 1: Обзор

Posted in: Project Management, Java technologies, J2SE, Ваш досуг. Полезные советы | 9 Comments

Это обзорная статья из цикла, посвященного процессу приема на работу:
- Обзор процесса приема на работу в аутсорсинговых компаниях
- Вопросы для собеседования на java-программиста
- Прием на работу: основные действующие лица

В течении последних четырех месяцев мне довелось быть на достаточно большом количестве собеседований, к тому же “по обе стороны стола”. И, естественно, мне бы хотелось вставить свои 5 копеек по поводу того:

  • как сейчас обстоят дела с собеседованиями в аутсорсинговых компаниях;
  • какие вопросы стоит задавать на собеседовании (на java-девелопера);
  • каким образом должны действовать все вовлеченные в этот процесс люди.

Но для начала:

[Disclamer: В статье выражается до безобразия субъективное мнение. Резкие выражения используются исключительно для донесения своих мыслей до читателя: никого обижать я не собирался и не собираюсь. Людям с расшатанной психикой или зашкаливающим ЧСВ читать, и тем более комментировать, категорически воспрещается. К спамерам и троллям это не относится: каждый ваш комментарий как лучик света в этом царстве тьмы, и дай вам бог всем здоровьечка.]

(more…)

10
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” :).

(more…)