5 языков, которые следует выучить после Java

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

Вот 5 языков программирования, которые после Java произведут наименьший негативный эффект:
C# — язык, с которым так или иначе сталкивался любой выпускник кафедры программирования (тем более опытный разработчик). Именно поэтому многие согласятся, что, не считая языков, транслируемых в JVM, это наиболее схожий представитель. Кроме того, C# востребован, а это важное условие, если вы собираетесь монетизировать свои знания.
Что общего: очень сложно удержаться от цитирования статьи на Википедии, поэтому вот вам факты.
Оба языка так или иначе являются развитием C++. Более того, создатели C# называют свой язык развитием Java. Кроме того, оба языка строго следуют принципам ООП.
А еще у них похожий синтаксис:
public class HelloWorld
<
public static void main(String[] args) <
System.out.println(«Hello World!»);
>
>
// HelloWorld.cs
public class HelloWorld
<
public static void Main()
<
System.Console.WriteLine(«Hello World!»);
>
>
И у Java, и у C# типизация строгая, что в известной степени способствует повышению безопасности в области использования памяти. Еще у языков похожие алгоритмы сборки мусора. Ещё один важный схожий момент, прекрасно характеризующий оба языка. Наконец, оба они кроссплатформенны. Изучение этого языка рекомендуем начать с нашего базового интенсива по Си Шарп.
От чего захочется ругаться: Microsoft и естественная завязанность на их экосистему.
Swift
Если вы изучили Java для разработки мобильных приложений, то Swift станет логичным карьерным развитием. Более того, не так давно слухи упорно связывали будущее платформы Android со Swift, однако в итоге Google отстояло свое право на использование Java. Впрочем, кто поставит свой компьютер на то, что в дальнейшем Google не свернет с этого курса? В любом случае, умение писать “правильные” приложения для iOS лишним точно не будет.
Что общего: оба языка статически типизированы, оба имеют наследственную связь с С, схожие принципы наследования, перегрузки методов, протоколы и т.д. В конце-концов, на сегодняшний день это два главных мобильных языковых лагеря.
От чего хочется ругаться: подобно C#, экосистема Apple может вызывать отторжение.

Kotlin
Сахар для синтаксиса — распространенное мнение относительно Kotlin у разработчиков Java, ознакомившихся с ним лишь поверхностно. Куда более совершенный язык и наиболее очевидный преемник Java из существующих — утверждают люди, посвятившие изучению Kotlin чуть больше времени. В любом случае, как бы не сложилось ваше знакомство, равнодушным останитесь вряд ли.
Что общего: создатели не скрывают, что Kotlin является доработкой Java с перспективой полного замещения. То есть фактически Kotlin сочетает всё то, за что вы полюбили Java, но при этом ещё удобнее, безопаснее и функциональнее. Работает с виртуальной машиной JVM.
От чего хочется ругаться: и кому нужна Java, если есть Kotlin?
Python
Изучить Python после Java стоит хотя бы потому, что это просто. Во всех рейтингах, опросах и статьях, посвящённых выбору первого языка программирования, Python неизменно находится в топе.
Что общего: практически ничего, кроме некоторых общих принципов ООП и кроссплатформености.
От чего хочется ругаться: слишком далеко от привычного понимания о программировании.
Возвращаясь к теме возможного отказа Google от Java в своем мобильном будущем, стоит всерьез рассмотреть вариант развития событий, при котором наследником станет Go. Пока что язык здорово проявляет себя в привычной среде Big Data, то есть сегодня, как минимум, Go может послужить полезным расширением для функциональности вашего приложения. Но если Go продолжит развиваться заданными темпами, а Google решится на внутреннюю революцию, то знание этого языка станет не бонусом, а практически необходимостью. Кстати, пару лет назад один из создателей Go, выложил в сеть интересную презентацию с названием “Go для Java-программистов”. Рекомендуется к просмотру.
Что общего: формально общего здесь примерно столько же, сколько и в случае с C#: происхождение от языка C, строгая типизация, алгоритмы очистки памяти, схожие методы, интерфейсы и многое другое. Но, как язык, созданный почти через 15 лет после Java и через 10 после C#, Go он куда совершеннее, функциональнее и перспективнее.
От чего хочется ругаться: несмотря на то, что язык Go не вчера был придуман, при углубленном изучении вы неизбежно столкнетесь с некоторыми недоработками.
Освоить востребованную профессию в Аналитике больших данных можно всего за полтора года на курсах GeekBrains.
Что учить дальше? [закрыт]
Вопросы-опросники запрещены на Stack Overflow на русском. Для получения ответа, перефразируйте ваш вопрос так, чтобы на него можно было дать однозначно правильный ответ.
Закрыт 6 лет назад .
Недавно закончил читать Head First Java O’Reilly, прошел бесплатные уровни на javarush, в копилке 2 небольших проектика (250 и 500 строк). Подскажите, как дальше развиваться? Цель — устроиться на работу Java Junior-ом в г. Оренбурге. Основы благодаря книге и сайту знаю вроде, а чем теперь заниматься — нет, так как не думаю, что за одну книгу и пару программок дорос до джуниора и могу устроиться хотя бы на стажировку. Подскажите, что дальше делать, чтобы в будущем не остаться без работы? Также есть еще один вопрос: есть ли смысл учить SQL, и если да, то насколько долго он учится?
Зачем мне Java: неудобные вопросы о популярном языке и ответы на них
Мы собрали список распространённых вопросов о Java, а за ответами обратились к экспертам из Java Mentor. Смотрите, что из этого получилось.
1. Что пишут на Java: сферы применения языка
- высоконагруженные системы (Google, Yandex были разработаны в том числе на Java);
- банковские веб-приложения (Сбербанк, Альфа Банк, ВТБ 24 созданы руками Java-программистов);
- игры (Minecraft);
- искусственный интеллект (Whatson, ViaVoice);
- мобильные приложения (Telegram и Signal);
- интернет-магазины (Ebay, Amazon).
2. А насколько востребованы Java-разработчики?
Широта применения языка обеспечивает Java стабильно лидирующие позиции в рейтинге языков программирования TIOBE. Традиционно Java входит в топ-3 самых популярных языков программирования. Эта тенденция сохранится и в 2021 году. Во многих крупных компаниях (особенно в финансовой и банковской сферах) софт, написанный на Java, нуждается в регулярной доработке и поддержке, спрос на специалистов тут особенно велик. Плюс сохраняется тренд на развитие автоматизации и тестирования, и здесь Java в топе.
По данным Hays, снижения числа вакансий и спрос на Java-разработчиков не предвидится в ближайшее время.
Стоит выложить резюме — и у тебя разрывается Телега, WhatsApp, почта и телефон, словно контакты отдали особо злым пранкерам. Наверное, это всё, что нужно знать о востребованности джавистов.
Очень востребованы: выкладываешь резюме, и телефон с электронной почтой переполняются сообщениями от HR, а даже если после закрыл резюме — пишут всё равно каждый день.
3. Java vs PHP: на чём писать бэкенд?
Разницу можно описать одним предложением. У этих языков разная специфика применений: если нужно что-то крупное — Джава, если мелкий сайт — подойдёт PHP.
PHP отлично подходит для написания простеньких веб-проектов, вроде опенкарт, магазинов и т. д. Мелкий сайтик проще, быстрее и дешевле написать на PHP. Для небольших веб-проектов PHP хорош тем, что порог входа ниже, язык сам по себе проще, и реализовать задачу быстрее. Но он слабо масштабируемый и работает медленнее Java, так как скриптовый.
На Java же порог вхождения выше, но он гораздо быстрее PHP за счёт того, что Java — компилируемый язык и легко масштабируется, что позволяет писать огромные системы из миллионов строк кода, в итоге нагрузку держит лучше.
Поэтому если нужно что-то кроме мелкого веб-сайта, то стоит смотреть в сторону Java. Ну, и Java — строго типизированный язык, отчего код более читаемый, а это дополнительный плюс к масштабируемости.
4. Функциональное программирование в Java: плюсы и минусы
- Плюсом будет привычность для людей, перешедших на Java с функциональных языков.
- В редких ситуациях позволяет сделать код более читабельным и удобным.
- Отдельным пунктом стоит технология Stream API, которая позволяет обрабатывать потоки данных в функциональном стиле. Это действительно удобно и часто применяется на практике, в частности с Java 11+, где повысили эффективность использования ресурсов при создании стрима. В Java 8 создание стрима было более ресурсозатратным. Проще говоря, вы можете в функциональном стиле через точку провести множество операций над потоком (отфильтровать, отсортировать и т. д.).
- Ещё один плюс — лямбда, которая существенно уменьшает объём кода. Например при реализации анонимного класса, реализующего интерфейс с одним методом, а-ля функциональный.
- Распараллеливание стримов.
- Возможность более красиво, с меньшим количеством кода работать с коллекциями: есть готовые варианты с различными реализациями, например Google-коллекции.
- Всё же Java изначально заточена под ООП, а функциональная нотка с 8 версии — всего лишь нотка, и зачастую выглядит лишней.
- Сложная читаемость кода, в частности при обработке данных через Stream API образуется так называемая «простыня» кода, которая тяжела для восприятия.
- Возвращаясь к первому пункту, смесь ООП кода и функционального может выглядеть неуместной, а иногда даже вводить в заблуждение (не относится к лямбде).
5. Сколько зарабатывают Java-разработчики?
Средняя зарплата Java-разработчика в Москве составляет около 150 тыс. руб. в месяц (до вычета НДФЛ). Зарплаты таких специалистов растут каждый год на 5–10%.
Что касается мировых показателей, то, по данным Stack Overflow, средняя зарплата Java-программиста составляет 120 тыс. долларов в год.
6. С чего начать изучение Java?
- Если не знаете с чего начать, то возьмите на вооружение второе издание «Java head first». Будет понятно понятно даже тем, кто вовсе не знаком с программированием.
- Пользуйтесь YouTube. Просто забивайте в поиск то, что вам нужно. Мне было трудно по книге понять, что и как устанавливать в первый раз, поэтому я смотрел видео связанные с темой введения в Java .
- По книге идите вплоть до главы про Объектвиль. Проходите её, а затем начинайте проходить Базовый курс на Степике. Это сложный курс, местами даже покажется, что трудно двигаться вперед, но он эффективный. Сложные задачи помогут быстрее понять особенности языка, да и в целом учиться куда приятнее, когда монструозные задачи удаётся решать как задачки по умножению в начальной школе.
- Ещё для отработки базовых знаний можно пройти 15–20 уровней JavaRush.
Тут нет однозначного рецепта успеха. Кому-то заходят видосики, но мне такой подход показался неудобным. Чтобы был толк, весь представленный в видеоуроках код нужно написать самому, а это крайне неудобно делать, перематывая видео туда-сюда. До этого всё нужно посмотреть от начала до конца, чтобы вникнуть в суть происходящего целиком. На это уходит очень много времени.
Просто решать задачки на JavaRush — тоже не выход. Их космическая сага не повествует о самых базовых концепциях, не раскрывает суть самих задач.
Лучший вариант, на мой взгляд, начать с книги Шилдта «Полное руководство Java». Там есть теоретические выкладки, которые сложны для понимания в русском варианте, но если не лениться, самому модернизировать код из каждого примера, понимание сути изложенного придëт. Я остановился в изучении по данной книге только тогда, когда дошëл до графических интерфейсов Swing и JavaFx. Не сказать, чтобы я стал экспертом, но это позволило мне в будущем быстро находить интересующую информацию по Java Core в уже понятном мне варианте изложения.
7. Каков кратчайший путь с нуля до Junior Java-разработчика?
В первую очередь не надо позиционировать себя как Junior-разработчик. Все хотят, чтобы к ним на работу пришёл человек, готовый решать боевые задачи. Поэтому важно, во-первых, иметь реальный опыт командной разработки. Вы можете его получить на каких-то платных ресурсах, либо на бесплатных. Или просто собраться с друзьями и заняться командной разработкой. Очень важно, чтобы вы имели реальный проект, про который можете рассказать на собеседовании.
Во-вторых, нужно заниматься по 5-6 часов каждый день, минимум. Если вы занимаетесь меньше, скорее всего, ваш путь затянется на год, два, а может вообще никогда не закончится.
В-третьих, неважно, какой у вас бэкграунд, есть он вообще или нет. Самый короткий путь — это делать ровно то, что нужно для трудоустройства, и не закапываться в темы. Очень часто при самостоятельном обучении студенты закапываются в темы глубже, чем надо. Эта одна из популярных ошибок новичков. Сфокусируйтесь на главном и бейте в эту точку.
- Зачем я это делаю? На протяжении всего обучения Java я задавал себе этот вопрос, и ответ был всегда одним и тем же. Для меня главной мотивацией было то, что просто зарабатывать деньги — это скучно, и рано или поздно превращается в рутину, а мне бы не хотелось, будучи уже старым, осознавать, что я положил свою жизнь на алтарь нелюбимого дела. IT-индустрия открывала возможность заниматься интересными задачами и зарабатывать достаточно, чтобы не думать о деньгах.
- Ментор. Для меня важно было наличие человека, который направляет и поддерживает. Путь в Java Development довольно сложный, со множеством ям и развилок, и неподготовленному человеку крайне сложно его пройти без того, кто этот путь уже прошёл.
- Комьюнити. Несмотря на кажущуюся асоциальность типичных айтишников, комьюнити решает. У меня будто появлялась дополнительная ответственность перед ребятами, которые учились со мной. И это не давало возможности уводить фокус от обучения.
Для меня не работало чтение книг и сложных статей, но отлично подошёл вариант с решением задач на JavaRush до 15–18 уровня с ежедневной регулярностью. Одного-двух месяцев хватит, чтобы набить руку и перестроить мышление на лад программирования.
Дальше курс на Степике, порешать в свободное время все задачи, а потом уже идти в Java Mentor. Там уже решать чёткие поставленные задачи, не закапываясь слишком глубоко: есть задача — есть решение, есть вопросы — есть ответы. И так до подготовки к собеседованиям, где ребята из JM также помогли понять, какие темы самые популярные на собесах, и что углубляться нужно именно в них. Очень помогала коммуникация и дух соревнования с одногруппниками.
Заключение
Посматриваете в сторону Java-разработки? Верное решение. Исходя из представленных вопросов и ответов по Java, этот язык применяется во многих сферах, а потому джависты — востребованные высокооплачиваемые ребята, и в ближайшем будущем ситуация вряд ли изменится.
Вооружайтесь советами менторов и выпускников из JM и вперёд — покорять вершины, а полноценный курс по Java в этом сильно поможет.