Сбер вакансии Backend
Сбер вакансии Backend
Сбер вакансии Backend
Написать пост

Зачем мне Java: неудобные вопросы о популярном языке и ответы на них

Отредактировано

Собрали по Java популярные вопросы и ответы на них: где применяется, насколько востребованы джависты и как стать Java-разработчиком с нуля.

12К открытий12К показов

Мы собрали список распространённых вопросов о Java, а за ответами обратились к экспертам из Java Mentor. Смотрите, что из этого получилось.

1. Что пишут на Java: сферы применения языка

Станислав, наставник Java Mentor:

На Java можно разрабатывать что угодно:

  • высоконагруженные системы (Google, Yandex были разработаны в том числе на Java);
  • банковские веб-приложения (Сбербанк, Альфа Банк, ВТБ 24 созданы руками Java-программистов);
  • игры (Minecraft);
  • искусственный интеллект (Whatson, ViaVoice);
  • мобильные приложения (Telegram и Signal);
  • интернет-магазины (Ebay, Amazon).

Даже Netflix был создан Java-разработчиками.

2. А насколько востребованы Java-разработчики?

Алексей, наставник Java Mentor:

Широта применения языка обеспечивает Java стабильно лидирующие позиции в рейтинге языков программирования TIOBE. Традиционно Java входит в топ-3 самых популярных языков программирования. Эта тенденция сохранится и в 2021 году. Во многих крупных компаниях (особенно в финансовой и банковской сферах) софт, написанный на Java, нуждается в регулярной доработке и поддержке, спрос на специалистов тут особенно велик. Плюс сохраняется тренд на развитие автоматизации и тестирования, и здесь Java в топе.

По данным Hays, снижения числа вакансий и спрос на Java-разработчиков не предвидится в ближайшее время.

Александр Весновский, выпускник Java Mentor:

Стоит выложить резюме — и у тебя разрывается Телега, WhatsApp, почта и телефон, словно контакты отдали особо злым пранкерам. Наверное, это всё, что нужно знать о востребованности джавистов.

Максим Ткачев, выпускник Java Mentor:

Очень востребованы: выкладываешь резюме, и телефон с электронной почтой переполняются сообщениями от HR, а даже если после закрыл резюме — пишут всё равно каждый день.

3. Java vs PHP: на чём писать бэкенд?

Александр, наставник Java Mentor:

Разницу можно описать одним предложением. У этих языков разная специфика применений: если нужно что-то крупное — Джава, если мелкий сайт — подойдёт PHP.

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

На Java же порог вхождения выше, но он гораздо быстрее PHP за счёт того, что Java — компилируемый язык и легко масштабируется, что позволяет писать огромные системы из миллионов строк кода, в итоге нагрузку держит лучше.

Поэтому если нужно что-то кроме мелкого веб-сайта, то стоит смотреть в сторону Java. Ну, и Java — строго типизированный язык, отчего код более читаемый, а это дополнительный плюс к масштабируемости.

4. Функциональное программирование в Java: плюсы и минусы

Никита, наставник Java Mentor:

В Java относительно недавно появились функциональные интерфейсы, которые предоставляют возможность писать код в функциональном стиле.

Плюсы:

  1. Плюсом будет привычность для людей, перешедших на Java с функциональных языков.
  2. В редких ситуациях позволяет сделать код более читабельным и удобным.
  3. Отдельным пунктом стоит технология Stream API, которая позволяет обрабатывать потоки данных в функциональном стиле. Это действительно удобно и часто применяется на практике, в частности с Java 11+, где повысили эффективность использования ресурсов при создании стрима. В Java 8 создание стрима было более ресурсозатратным. Проще говоря, вы можете в функциональном стиле через точку провести множество операций над потоком (отфильтровать, отсортировать и т. д.).
  4. Ещё один плюс — лямбда, которая существенно уменьшает объём кода. Например при реализации анонимного класса, реализующего интерфейс с одним методом, а-ля функциональный.
  5. Распараллеливание стримов.
  6. Возможность более красиво, с меньшим количеством кода работать с коллекциями: есть готовые варианты с различными реализациями, например Google-коллекции.

Минусы:

  1. Всё же Java изначально заточена под ООП, а функциональная нотка с 8 версии — всего лишь нотка, и зачастую выглядит лишней.
  2. Сложная читаемость кода, в частности при обработке данных через Stream API образуется так называемая «простыня» кода, которая тяжела для восприятия.
  3. Возвращаясь к первому пункту, смесь ООП кода и функционального может выглядеть неуместной, а иногда даже вводить в заблуждение (не относится к лямбде).

Как бы там ни было, возможность писать частично в функциональном стиле вряд ли когда-нибудь сможет полностью заменить ООП.

5. Сколько зарабатывают Java-разработчики?

Станислав, наставник Java Mentor:

Средняя зарплата Java-разработчика в Москве составляет около 150 тыс. руб. в месяц (до вычета НДФЛ). Зарплаты таких специалистов растут каждый год на 5–10%.

Что касается мировых показателей, то, по данным Stack Overflow, средняя зарплата Java-программиста составляет 120 тыс. долларов в год.

6. С чего начать изучение Java?

Иван, наставник Java Mentor:

  1. Если не знаете с чего начать, то возьмите на вооружение второе издание «Java head first». Будет понятно понятно даже тем, кто вовсе не знаком с программированием.
  2. Пользуйтесь YouTube. Просто забивайте в поиск то, что вам нужно. Мне было трудно по книге понять, что и как устанавливать в первый раз, поэтому я смотрел видео связанные с темой введения в Java .
  3. По книге идите вплоть до главы про Объектвиль. Проходите её, а затем начинайте проходить Базовый курс на Степике. Это сложный курс, местами даже покажется, что трудно двигаться вперед, но он эффективный. Сложные задачи помогут быстрее понять особенности языка, да и в целом учиться куда приятнее, когда монструозные задачи удаётся решать как задачки по умножению в начальной школе.
  4. Ещё для отработки базовых знаний можно пройти 15–20 уровней JavaRush.

По Java Core это всё, а дальше добро пожаловать в Java Mentor. Нигде на другой программе вы не найдёте такого сочетания менторинга, сильного сообщества, практики и подготовки к трудоустройству.

Александр Огарев, выпускник Java Mentor:

Тут нет однозначного рецепта успеха. Кому-то заходят видосики, но мне такой подход показался неудобным. Чтобы был толк, весь представленный в видеоуроках код нужно написать самому, а это крайне неудобно делать, перематывая видео туда-сюда. До этого всё нужно посмотреть от начала до конца, чтобы вникнуть в суть происходящего целиком. На это уходит очень много времени.

Просто решать задачки на JavaRush — тоже не выход. Их космическая сага не повествует о самых базовых концепциях, не раскрывает суть самих задач.

Лучший вариант, на мой взгляд, начать с книги Шилдта «Полное руководство Java». Там есть теоретические выкладки, которые сложны для понимания в русском варианте, но если не лениться, самому модернизировать код из каждого примера, понимание сути изложенного придëт. Я остановился в изучении по данной книге только тогда, когда дошëл до графических интерфейсов Swing и JavaFx. Не сказать, чтобы я стал экспертом, но это позволило мне в будущем быстро находить интересующую информацию по Java Core в уже понятном мне варианте изложения.

7. Каков кратчайший путь с нуля до Junior Java-разработчика?

Герман, наставник Java Mentor:

В первую очередь не надо позиционировать себя как Junior-разработчик. Все хотят, чтобы к ним на работу пришёл человек, готовый решать боевые задачи. Поэтому важно, во-первых, иметь реальный опыт командной разработки. Вы можете его получить на каких-то платных ресурсах, либо на бесплатных. Или просто собраться с друзьями и заняться командной разработкой. Очень важно, чтобы вы имели реальный проект, про который можете рассказать на собеседовании.

Во-вторых, нужно заниматься по 5-6 часов каждый день, минимум. Если вы занимаетесь меньше, скорее всего, ваш путь затянется на год, два, а может вообще никогда не закончится.

В-третьих, неважно, какой у вас бэкграунд, есть он вообще или нет. Самый короткий путь — это делать ровно то, что нужно для трудоустройства, и не закапываться в темы. Очень часто при самостоятельном обучении студенты закапываются в темы глубже, чем надо. Эта одна из популярных ошибок новичков. Сфокусируйтесь на главном и бейте в эту точку.

Владислав Семененко, выпускник Java Mentor:

По поводу кратчайшего пути до Java Developer могу судить только из личного опыта. За 1,5 года работы в индустрии побывал примерно на 50 собеседованиях и поработал уже в 3-х компаниях.

Если мы говорим о кратчайшем пути до позиции Java-разработчика как о том, чтобы просто устроиться на должность, то, на мой взгляд, достаточно просто научиться кодить на Java (выучить синтаксис) и заучить вопросы с ответами для собеседований. Да, качество у такого разработчика будет довольно низким, а процент отказов на собеседованиях высоким. Но здесь поможет тот факт, что это рынок соискателя, а значит найдутся компании, которые будут готовы взять на работу. И да, вряд ли удастся получить среднюю зарплату по рынку. Скорее всего, она будет ниже.

А если мы говорим о пути до разработчика на Java, как о человеке, который сможет достаточно хорошо делать свою работу, которого хантят и у которого уровень зарплаты рыночный и выше, то тут заучиванием вопросов и ответов по Java не обойтись. Тут нужно иметь знания глубже. Этот путь для меня был не самым простым, потому что на тот момент у меня уже был бэкграунд со своими успехами, и он не был связан с IT. Каждый раз, когда я сталкивался со сложной задачей, весь мой опыт говорил, что можно найти что-то намного легче, то, что быстрее даётся. И в таком эмоциональном шуме мне помогли двигаться следующие вещи:

  1. Зачем я это делаю? На протяжении всего обучения Java я задавал себе этот вопрос, и ответ был всегда одним и тем же. Для меня главной мотивацией было то, что просто зарабатывать деньги — это скучно, и рано или поздно превращается в рутину, а мне бы не хотелось, будучи уже старым, осознавать, что я положил свою жизнь на алтарь нелюбимого дела. IT-индустрия открывала возможность заниматься интересными задачами и зарабатывать достаточно, чтобы не думать о деньгах.
  2. Ментор. Для меня важно было наличие человека, который направляет и поддерживает. Путь в Java Development довольно сложный, со множеством ям и развилок, и неподготовленному человеку крайне сложно его пройти без того, кто этот путь уже прошёл.
  3. Комьюнити. Несмотря на кажущуюся асоциальность типичных айтишников, комьюнити решает. У меня будто появлялась дополнительная ответственность перед ребятами, которые учились со мной. И это не давало возможности уводить фокус от обучения.

Это 3 главных критерия которые помогли мне довольно быстро поменять сферу деятельности и влиться в дивный мир IT.

Александр Губанов, выпускник Java Mentor:

Для меня не работало чтение книг и сложных статей, но отлично подошёл вариант с решением задач на JavaRush до 15–18 уровня с ежедневной регулярностью. Одного-двух месяцев хватит, чтобы набить руку и перестроить мышление на лад программирования.

Дальше курс на Степике, порешать в свободное время все задачи, а потом уже идти в Java Mentor. Там уже решать чёткие поставленные задачи, не закапываясь слишком глубоко: есть задача — есть решение, есть вопросы — есть ответы. И так до подготовки к собеседованиям, где ребята из JM также помогли понять, какие темы самые популярные на собесах, и что углубляться нужно именно в них. Очень помогала коммуникация и дух соревнования с одногруппниками.

Заключение

Посматриваете в сторону Java-разработки? Верное решение. Исходя из представленных вопросов и ответов по Java, этот язык применяется во многих сферах, а потому джависты — востребованные высокооплачиваемые ребята, и в ближайшем будущем ситуация вряд ли изменится.

Вооружайтесь советами менторов и выпускников из JM и вперёд — покорять вершины, а полноценный курс по Java в этом сильно поможет.

Следите за новыми постами
Следите за новыми постами по любимым темам
12К открытий12К показов