Каким должен быть Java-разработчик?

Николай Чашников, руководитель команды разработчиков в проекте IntelliJ IDEA в JetBrains.

Какими знаниями и навыками должен обладать программист Java?

В мире Java существует огромное количество библиотек и фреймворков, облегчающих создание программ. Да и сам язык Java с виртуальной машиной, для которой он сделан, позволяет писать код, не задумываясь о многих вещах. Но это не значит, что об этих вещах не нужно знать. Хороший Java-программист не только умеет пользоваться разными библиотеками, но и знает про то, как эти библиотеки устроены внутри, как реализованы классы в стандартной библиотеке Java, какие алгоритмы и структуры данных за ними стоят, в какой байт-код компилируется исходный код на Java, как этот байт-код исполняется в JVM.

Каков инструментарий программиста Java?

Большую часть времени разработчик проводит в IDE (Eclipse, IntelliJ IDEA, NetBeans). Они не только помогают при написании кода, но и упрощают использование остальных инструментов, перечисленных ниже. Даже при работе в одиночку удобнее хранить исходный код, используя одну из систем контроля версий (Git, Subversion, Perforce…), при работе в команде это становится обязательным.

Проекты на Java часто состоят из большого количества модулей и используют множество библиотек от сторонних разработчиков. Для управления зависимостями и сборки проектов используются Maven, Ant, Gradle, Ivy. При совместной работе над одним проектом важно постоянно проверять, что изменения, сделаннные разными разработчиками, согласуются друг с другом. Для этого существуют системы непрерывной интеграции (Jenkins, Bamboo, TeamCity и другие).

Каковы требования компании к уровню образования потенциальных сотрудников?

Требований по уровню образования у нас нет. Важно то, чему человек научился, а не то, какой диплом или сертификат он получил.

Какие требования предъявляются к опыту работы?

Junior-разработчиком может стать и студент старших курсов без опыта работы (впрочем, студенты обычно попадают на работу через стажировки), для senior developer необходимы три – пять лет работы в серьезной компании.

Есть ли особые требования, которые обусловлены спецификой деятельности компании?

Для разных проектов в компании есть разные навыки, на которые мы можем обратить внимание. Например, для проекта IntelliJ IDEA плюсом будут знания о синтаксическом разборе программ или опыт по созданию плагинов для какой-либо IDE.

Полная версия интервью опубликована на портале Системный администратор.