Роберто Кортез — Java-разработчик с более чем десятилетним опытом, глава Coimbra JUG и основатель JNation Conference в Португалии.
Coimbra JUG — сообщество программистов, работающих на языке Java. Объединяет в первую очередь программистов из Коимбры и Центральной зоны в Португалии. Coimbra JUG организует мероприятия, посвященные Java и технологиям, связанным с JVM (виртуальная машина Java, основная часть исполняющей системы Java — «Хайтек»), с целью развития и популяризации этого языка. Наиболее известная конференция — JNation Conference, посвященная новейшим разработкам на Java. Проводится ежегодно в Коимбре.
Про язык Java
— Какие сильные и основные стороны у Java как у языка программирования?
— Стабильный и выразительный язык. Для меня самая лучшая черта Java — это экосистема. Существует огромное количество библиотек с открытым исходным кодом, которые можно использовать, чтобы упростить разработку приложения. Они хорошо задокументированы и протестированы, поэтому вы можете сосредоточиться на реальных деловых потребностях.
— Java активно меняется, какие тенденции задают тон в этой области на сегодняшний день?
— Конечно, облако. И это очень интересная задача для Java, учитывая тот факт, что язык уже существовал задолго до того, как мы получили облако везде и для каждого. Так что он не был готов к этому, и ему тоже пришлось адаптироваться. Если взглянуть на историю Java, основные релизы появлялись раз в три-четыре года. Теперь язык приспособился выпускать запланированные релизы каждые шесть месяцев, чтобы лучше отвечать сегодняшним и завтрашним вызовам.
Новые тенденции Java:
- Интерпретатор Java JShell для изучения языка и прототипирования кода.
- NodeJS для создания программ для десктопных устройств и серверных приложений без использования браузера.
- Фреймворки для разработки веб-сайтов и мобильных приложений: ReactJS, AngularJS, Meteor.js и другие. Значительно упрощают разработку.
О работе программиста
— Что бы вы посоветовали начинающим программистам для погружения в специальность и поиска работы?
— Как насчет того, чтобы просто вести свой блог или какой-то другой вид интернет-страницы? Многие люди так и начинали, и это отличный способ заняться программированием. Я тоже начинал с блога. Сперва с HTML, который сам по себе не является языком программирования, но в итоге я начал создавать всё более и более продвинутые вещи, которые требовали от меня использования JavaScript, а затем и Java. Многие люди начинают с Python, что тоже замечательно. Это не очень сложно, и вы можете достичь удивительных результатов.
— Какие технологии обязательны к изучению Java-программистом?
— Каждому программисту необходим набор основ, и это не только исключительно для Java, которые помогут ему сформировать общее представление о том, как всё работает. Полагаю, этот список можно оспорить, но я бы включил в него алгоритмы, создание сети, операционные системы, базы данных, распределенные системы, безопасность и математику.
— Стоит ли программисту выбирать между full stack (универсальным) разработчиком и узким специалистом?
— Сейчас уже чрезвычайно трудно сосредоточиться на определенной технологии, поскольку всё развивается и меняется очень быстро. Но еще сложнее успевать идти в ногу с множеством технологий. Нужно быть открытым ко всему, особенно в начале карьеры, и решить, что больше всего нравится, а уже дальше специализироваться на чем-то.
— Есть мнение, что фриланса на Java не бывает, и этот язык — в первую очередь для корпоративной разработки. Действительно ли фриланс на Java — исключение из правил?
— Я так не считаю. Судя по моему опыту, когда компании нанимают фрилансеров, они ждут человека с большим опытом, который может прийти и помочь им справиться с проблемами. Сосредоточенность на определенной технологии дает такой опыт и позволяет специализироваться. Будучи опытным специалистом, можно работать и фрилансером, и в организации.
— Вы называете себя страстным разработчиком. Для вас программирование — в первую очередь творчество или технический процесс?
— Программирование включает в себя много творчества. Когда вы хотите что-то сделать, есть множество путей, по которым можно пойти. Бывает, что такого способа и вовсе не существует, нужно создать его самому. Приходится думать, пробовать варианты, терпеть неудачи и достигать успеха. С другой стороны, в техническом плане наша сфера быстро развивается, необходимо постоянно заниматься исследованиями, изучать новые разработки и повышать квалификацию. Вы должны быть страстно увлечены тем, чем занимаетесь, чтобы идти в ногу со временем, актуальными новинками и лучшими решениями.
О Java-сообществах
— Зачем нужны Java-сообщества и чем занимается Coimbra JUG, которое вы возглавляете?
— Я возглавляю сообщество Coimbra JUG в Португалии. Коимбра — это небольшой городок, поэтому в сообществе все друг друга знают. Людям нравится собираться вместе, чтобы поделиться своим опытом, впечатлениями и, конечно, послушать новости о том, что происходит в мире ИТ. Также мы организуем конференцию под названием JNation. Это однодневное мероприятие, куда приглашаем нескольких наиболее известных в Java-сообществе докладчиков.
— Какие JUG наиболее известны и влиятельны?
— Я бы номинировал LJC (Лондонское сообщество Java — «Хайтек») и SouJava (Сообщество пользователей Java в Бразилии — «Хайтек»). Оба этих сообщества активно вовлечены в поддержку JCP, AdoptOpenJDK или MicroProfile.
Java Community Process (JCP) — сформированный в 1998 году формальный процесс, позволяющий заинтересованным лицам участвовать в формировании будущих версий спецификаций платформ языка Java.
Java Development Kit (JDK) — бесплатно распространяемый компанией Oracle Corporation комплект разработчика приложений на языке Java, включающий в себя компилятор, стандартные библиотеки классов, примеры, документацию, различные утилиты и исполнительную систему.
Microprofile, (Eclipse Microprofile) — открытый стандарт, разрабатываемый в рамках Eclipse Foundation вендорами EE-серверов, сторонними организациями и просто волонтерами.
Другие известные сообщества JUG:
- JUG.ru (Санкт-Петербург, Россия). Ежемесячно проводит встречи в Петербурге, на которых эксперты Java читают лекции на самые острые темы.
- Philly JUG (Филадельфия, США). Существует больше 15 лет, проводит в Филадельфии курсы повышения квалификации для программистов Java.
- Morocco JUG (Марракеш, Марокко). Проводит ежегодные конференции и обучающие курсы онлайн и офлайн.
— Вы также состоите в Java Champion. Как проходит его взаимодействие с разработчиком Java, компанией Oracle?
— По своей сути Java Champions — эксклюзивная группа увлеченных лидеров технологии и сообществ, которые выдвигаются самим сообществом. Мы предоставляем обратную связь, идеи, направление и ориентир, которые помогут Oracle расширить платформу Java и в целом продвигать язык во всем мире. Самое интересное в этой группе то, что хотя она и поддерживается Oracle, сама она полностью независима. Поэтому мы можем и свободно хвалить, и критиковать, когда это уместно.
— Какая из регулярно проводимых конференций разработчиков Java самая интересная и значимая?
— Сейчас везде проходят интересные конференции. Большинство разработчиков могут найти мероприятия по своей локации, так что зона охвата хорошая, и она продолжает расти с каждым годом. Всегда можно положиться на конференции JNation, jPrime или JBCNConf, которые появились лишь несколько лет назад, но быстро становятся образцовыми.
jPrime — конференция, на которой рассказывается о Java, различных языках в JVM, мобильных устройствах, веб-технологиях и лучших разработках. Организатор — болгарское сообщество разработчиков Java. Проводится ежегодно в мае в Софийском технопарке.
JBCNConf — ежегодная Java-конференция, организованная некоммерческой асоциацией Barselona JUG, проводится в Барселоне. На конференции обсуждаются JVM-языки (Java, Scala, Clojure, Groovy, Kotlin), функциональное программирование, тестирование, дизайн, блокчейн, машинное обучение, искусственный интеллект и многое другое.
— Что оказало наибольшее влияние на ваше становление как профессионала?
— Я бы сказал, что первая пара конференций. Это дало возможность познакомиться с удивительным Java-сообществом, и я благодарен нескольким людям, которые направляли меня или заставляли что-то делать. Помню, как жаловался на то, что сообщество в Португалии не очень активное, а Адам Бин сказал мне: «Почему бы тебе не создать свое собственное?» Так родилось сообщество Coimbra JUG. Андрес Алмирей и Хизер Ван Кьюра познакомили меня с Hackergarten, где я начал вносить свой вклад в open source проекты. Наконец, Дэвид Блевинс был моим наставником и помог мне вырасти как в техническом, так и в умственном плане. Но, что важнее всего, он подтолкнул к тому, чтобы самому стать наставником для других людей. Именно этим я и пробую заниматься сейчас.
Адам Бин (Германия) — консультант, тренер, разработчик, член экспертной группы Java Champion и многих других, связанных с Java.
Андрес Алмирей — Java/Groovy-разработчик и Java Champion, более 17 лет опыта проектирования и разработки ПО. Занимается разработкой веб-приложений и приложений для десктопных компьютеров с первых дней существования Java. Член-основатель проекта Griffon и сообщества Hackergarten.
Хизер Ван Кьюра — председатель JCP, организатор конференций сообщества Hackergarten, посвященных технологиям Java.
Дэвид Блевинс — основатель проектов Apache TomEE, OpenEJB и Geronimo, член экспертных групп EJB 3.2 (JSR 345) и Java EE 7 (JSR 342), автор материалов для разработки ПО на основе компонентов.