Что должен знать java junior: Что нужно знать, чтобы стать Java Junior, и что со всем этим делать?

Содержание

Что нужно знать, чтобы стать Java Junior, и что со всем этим делать?

Требования к потенциальным Java-разработчикам постоянно меняются и за ними сложно уследить. Достаточно ли знать только Java Core, чтобы стать Trainee? Насколько хорошо нужно разбираться в Spring и Hibernate для получения должности Java Junior? Стоит ли учить базы данных, разбираться ли с алгоритмами сортировки и поиска? И поскольку студентов JavaRush очень часто волнуют эти вопросы, мы решили задать их нашим выпускникам, которые уже работают Java Junior или стажируются в компаниях на должности Java Trainee. Заметим, 13% опрошенных посчастливилось с первой попытки получить должность Java Middle минуя стадию Junior. Респонденты поделились информацией о том, какие технологии им понадобились для прохождения собеседования, а какие они использовали в первый год первой работы, связанной с Java.

  • Java Core
  • Алгоритмы и структуры данных
  • Unit-тестирование
  • Библиотеки утилит, GUI и полезные компоненты
  • Frameworks
  • Build Automation tools и серверы приложений
  • Разные технологии и паттерны

Java Core нужна всем

Термин Java Core достаточно широк. Под этим именем понимают и элементарный синтаксис языка, и такую сложную тему, как многопоточность. Собственно, курс JavaRush главным образом посвящён именно Core.Java Syntax. Основы языка. Все эти типы данных, операторы, циклы и ветвления. Естественно, 92.4% получивших работу оценили своё знание синтаксиса как “хорошее или отличное”. Тем не менее, 7.6% респондентов умудрились стать Java Trainee со средним знанием синтаксиса. Однако это нужно оценивать скорее как везение (или хвастовство респондентов:)). Разумеется, синтаксис языка должны знать все, кто претендует на работу программиста. Объектно-ориентированное программирование (ООП). Всё в Java состоит из объектов, поэтому ООП можно считать одной из самых главных тем языка. Объектно-ориентированный подход может поначалу показаться непривычным, особенно если вы раньше изучали только процедурные языки, но переучиться на объекты не составляет труда. Самые большие сложности у новичков вызывают уровни абстракции и их самостоятельное распределение — начинающий программист должен уметь грамотно составить иерархию объектов, понять, за что будет отвечать интерфейс, а что можно вынести в абстрактный класс, составить лестницу наследования и так далее.

Как обычно эту сложность решает практика. Большинство респондентов, а это 80.3% получивших первую работу, хорошо знали принципы ООП и использовали их постоянно. В первый год работы Java Junior и стажерами 78,8% опрошенных пользовались принципами ООП очень часто, 12,1% — время от времени. 7,6% слушателей использовали их редко — эти ребята были заняты в основном модульным тестированием и разными небольшими задачами. То есть, разумеется, они тоже пользовались классами или объектами (без этого в Java никак), но редко составляли иерархии классов. Collections Framework. Коллекция — это совокупность отдельных объектов, представленных как единое целое. В Java для представления коллекций есть очень толковый Collections Framework. Коллекции основаны на популярных структурах данных — списках, обычных и связных, множествах, хэш-таблицах. Так что при изучении коллекций было бы неплохо поближе познакомиться со структурами данных. Основная трудность в изучении коллекций — понять и запомнить принцип их работы.
Если понимаешь, каким образом в них происходит обращение к элементу, извлечение из коллекции и добавление в неё, то начинаешь понимать, где применять ту или иную структуру. Это приходит с практикой. Но, к счастью, из огромного количества коллекций активно используются в реальной работе далеко не все. 80,3% респондентов отметили, что хорошо или даже отлично знали коллекции до того, как получили первое предложение о работе, и практически все 96,9% Junior’ы и стажеры используют коллекции на своей первой работе.Обработка исключений. Исключение — это выходящая из ряда вон ситуация, которая может возникнуть при выполнении вашей программы. Все классы исключений являются подтипами класса java.lang.Exception. Механизм обработки исключений значительно упрощает процессы поиска ошибок в программах. Обычно студенты довольно рано начинают использовать исключения, скажем, на JavaRush На JavaRush эта тема поднимается ещё в первом квесте Java Syntax. Практически все получившие первую работу выпускники JavaRush умели обращаться с исключениями, и, естественно, использовали их во время работы.
Потоки ввода/вывода (I/O Streams Java). Самые первые программы, написанные на Java, обычно содержат что-то вроде System.out.println(“Hello world”). Зачастую новички понимают, что метод println выводит строку в консоль, но понятия не имеют, зачем там System и out, и как они работают. Немного позже выясняется, что Java выполняет операции ввода и вывода с помощью потоков (streams), непрерывного потока данных. Потоки — не самая простая тема для понимания, и она не так уж часто используется в работе новичков: только 22,7% людей, получивших первую работу Java Junior/Trainee, сказали, что они часто используют потоки ввода-вывода, 31,8% — время от времени, 25,8% — редко. Так что чуть менее 20% вообще не использовали их в течение первого года работы в роли Java-разработчика. Во время учёбы 18.2% не испытывали особых трудностей с потоками и знали их отлично, 36.4% оценили свои знания как хорошие, а вот 10.6% проигнорировали эту тему. Многопоточность (Java Multithreading/Concurrency). Пожалуй, именно эта тема вызывает самое большое непонимание у начинающих разработчиков.
Невзирая на то, что многопоточность в Java реализована очень хорошо, в ней сложно разобраться, и проблемы могут возникнуть даже при написании простейших программ (например, многопоточного “Hello, world”). Многие работодатели это понимают и не требуют глубокого понимания многопоточности от начинающих, рассчитывая, что оно придёт с опытом. Только 12%,опрошенных отметили, что они знали тему на хорошем уровне до получения первого оффера, в то время как почти 32% респондентов признали, что вообще ничего не смыслили в этой теме. Большинство же, 56,2%, заявили о том, что «имели некоторое представление» о многопоточности. Так что если трудности работы со thread’ами вам сейчас кажутся непреодолимыми, эти цифры могут вас обнадёжить. Тем не менее, если вы хотите получить конкурентное преимущество на собеседовании, именно эта тема может стать вашим коньком. На реальных проектах новичков также довольно редко допускают до работы с потоками. Так, 15.1% начинающих программистов вообще не сталкивались с Java Multithreading в своей работе, а 39.
4% сталкивались, но редко. Часто в первый год работы пришлось работать с многопоточностью лишь 9.1% респондентов. Лямбда-выражения. Лямбда-выражения и намёки на функциональное программирование появились в Java 8, но новички не так уж часто используют этот удобный инструмент. Лямбда-выражение — это функция, которая может быть создана без принадлежности к какому-либо классу, и вы можете передать ее как объект или выполнить по запросу. Только 22,7% опрошенных выпускников хорошо знали Лямбда-выражения прежде, чем получить первое предложение о работе, а 48,5% оценили свое знание темы как «близкое к нулю». В то же время более 85% новых программистов заявили, что использовали лямбда-выражения в первый год работы. Справедливости ради укажем, что невысокий процент знающих эту тему может быть связан с тем, что в на JavaRush лямбда-выражения пока что представлены только в новом квесте Java Syntax Pro и статьях. Таким образом, мы можем смело утверждать, что знание Core Java для любого потенциального Java Junior и даже Trainee просто необходимо.
Разумеется, некоторые темы, например, многопоточность допустимо знать несколько хуже, но синтаксис Java, ООП и коллекции должны прочно внедриться в ваше сознание.

Алгоритмы и структуры данных

По поводу изучения алгоритмов сортировки и поиска ведутся постоянные споры. С одной стороны, лучшие алгоритмы уже давно написаны и включены в библиотеки всех популярных языков программирования, в том числе и Java. И их можно легально использовать, не заморачиваясь написанием собственного кода. Однако специалисты, обучающие программистов, всё-таки рекомендуют каждому начинающему разработчику потренировать мозг написанием всех этих алгоритмов пузырька, слияния, бинарного поиска и им подобным. Во-первых, эти алгоритмы — своего рода лакмусовая бумажка умений программиста (именно не знаний, а умений) и понимания человеком, что такое программирование в принципе. Если мозг уже хорошо настроен на подобную работу, вы будете писать алгоритмы относительно легко. И тем не менее, следует помнить: алгоритмы вам нужны именно для тренировки мозга… и для того, чтобы пройти собеседование: проводящие их въедливые Senior-разработчики очень любят мучить соискателей просьбами написать тот или иной алгоритм.

А вот в работе большинство (48.5%) использует стандартные библиотечные алгоритмы, эффективные и проверенные, в то время как 16% респондентов вообще не использовали сортировку в первый год работы программистом.69,6% выпускников утверждают, что до получения первого предложения о работе они неплохо ориентировались в алгоритмах сортировки и поиска и могли написать их самостоятельно.Мы уже затрагивали тему структур данных, когда говорили о коллекциях Java. Да, в них лучше разобраться, чтобы знать, где и какую структуру применить. Составление собственных структур данных по образу и подобию библиотечных — отличное упражнение, которое поможет вам лучше в них разобраться. Вы можете, например, попробовать написать собственную версию ArrayList или предложить свой односвязный список (обычный LinkedList в Java — двусвязный).Во время работы начинающие программисты использовали главным образом стандартные структуры данных.

Unit-тестирование

За модульное (unit) тестирование в Java отвечает библиотека JUnit.

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

Библиотеки утилит, GUI и полезные компоненты

Мы спросили насколько хорошо выпускники JavaRush были знакомы с рядом инструментов, часть из которых изучалась и в нашем курсе.

  • Сервлеты — это программные компоненты Java, которые расширяют возможности сервера.
  • JDBC — это независимый от платформы стандарт взаимодействия между приложениями Java и базами данных. JDBC реализован в виде пакета java. sql входит в состав Java SE (Standard Edition).
  • log4j — самая известная библиотека для регистрации сообщений. Он позволяет писать вызовы библиотеки в java-коде, а затем гибко настраивать его, не изменяя уже написанный код.
  • Jackson/JSON. JSON (JavaScript Object Notation) — чрезвычайно популярный открытый стандартный формат файлов и формат обмена данными, а Jackson — это высокопроизводительный процессор JSON для Java.

Все эти инструменты очень полезны и часто используются в работе и большинство студентов не пренебрегали ими при подготовке к собеседованию. Особенно это касается Jackson, с которым сталкивались 72.7% соискателей на должность Java-программиста, JDBC — эту библиотеку опробовало более 78% опрошенных. В работе эти технологии использовали практически все. С GUI Java-разработчики сталкиваются не так часто. Мы задали вопрос о JavaFX: с этой технологией по работе столкнулись только 18% респондентов.Две трети респондентов работали с сервлетами, чуть меньшее число опрошенных опробовали их во время учёбы. Также оказалось, что часть приступивших к работе Java-программистов сталкивалась с такими проектами, как Apache Commons (набор библиотек, ориентированный на все аспекты повторно используемых компонентов Java) и Guava (набор общих библиотек для Java с открытым исходным кодом, в основном разработанный инженерами Google).

Frameworks

Раньше от Java Junior никто не ожидал знания Spring или Hibernate. Но времена меняются, и сегодня этого порой ожидают даже от Trainee. Изучать эти технологии самостоятельно непросто. Даже если всё кажется понятным, студенты частенько забывают что к чему очень быстро. Порой даже приложения, самостоятельно написанные на Spring — не панацея. Поможет только активная работа. Тем не менее, перед успешным собеседованием треть респондентов была знакома со Spring на хорошем уровне, а 45. 5% разбирались в нём средне. Ситуация со Spring boot несколько хуже (36.4% вообще его не знала), а о хороших знаниях Hibernate заявило почти 44% опрошенных выпускников JavaRush.В то же время во время работы главным Java-фреймворком пользовалось почти 88% новоиспечённых программистов, Spring Boot — 83%, Hibernate — 81%.

Build Automation tools и серверы приложений

Большинство опрошенных выпускников JavaRush пробовали работать со сборщиками проектов. Чаще всего это был Maven (40.9% попробовали его на практике, ещё 30.3% использовали его время от времени, а 12.1% уже во время учёбы использовали его постоянно). В работе с Maven пришлось сталкиваться 72.7% (часто), 7.6% (иногда) и 3% (редко). Что касается Gradle, тут ситуация несколько хуже. Только 22.7% практиковались с этим сборщиком, причём большинство из них — только опробовали технологию. В работе Gradle применяли почти половина респондентов.Ant давно растерял свои позиции, и это отразилось на его популярности среди наших выпускников: возилось с ним только 3% опрошенных. А работать с ним пришлось 12% ответивших на вопросы. Среди серверов приложений лидирует Tomcat, с ним во время учёбы разобралось более 77% опрошенных, 11% опробовали GlassFish, 12% — JBoss. Похожим образом выглядит популярность серверов среди тех, кто уже работает. Только 31.8% получивших работу не сталкивались с Tomcat. Также выпускники JavaRush во время первого года работы программистом опробовали такие серверы, как WebSphere, Jetty, Netty, Wildfly, Weblogic.

Что ещё?

Подавляющее большинство опрошенных ещё до получения первой работы:

  • имели представление о HTML, CSS и JavaScript;
  • работали с базами данных, знали SQL;
  • почти все пользовались Git и GitHub;
  • пробовали работать с чистым XML.

Все эти технологии пригодились им в дальнейшей работе. От Java-программиста, да и от любого другого, по умолчанию ожидают знакомства со всем вышеперечисленным. Именно знакомства, а не глубоких знаний. Так что рекомендуем иногда отвлекаться от Java и расширять кругозор, изучая эти технологии. Также некоторые ответившие на вопросы отметили, что на собеседовании от них ждали знаний, хотя бы теоретических, шаблонов проектирования, архитектурных шаблонов, а также правил хорошего тона в программировании (всех этих KISS, DRY, SOLID). Однако чаще всего на собеседовании хватало одних определений: те, кто проводил интервью прекрасно осознавали, что настоящее понимание таких вещей приходит лишь с постоянной практикой. Пригодились ли они в работе? Конечно пригодились.

Выводы

Надеемся, мы не слишком вас напугали количеством технологий, которые вам предстоит изучить. Не всё из этого нужно знать досконально, к тому же, разбираться со всем этим — весьма интересно. Не зря же вы решили стать программистом, не так ли? Так что продолжайте учить Java и не теряйте мотивацию. Успехов! P. S. Если вы уже нашли работу и хотите рассказать о своём опыте — добро пожаловать в комментарии!

кто это и как стать с нуля?

Java Developer 2022: кто это и как стать с нуля? Назад
  • Главная
  • Блог
  • Кто такой Java Developer и как им стать 2022?

Иван Мельничук

Почему новичку стоит стать Java-разработчиком? Из этой статьи вы узнаете, что такое Джава, как его выучить с нуля и какие перспективы открывает этот язык программирования в ближайшие 10-15 лет.

Что такое Java: 3 факта 2021

Java (произносится “Джава”) – объектно-ориентированный язык программирования, который используется для написания программного обеспечения, мобильных и веб-приложений. Он был создан в 1995 году и обновляется каждые пол года.

Подготовил для вас 3 ключевых факта, которые расскажут про актуальность и перспективность изучения Джава в 2021 году.

Факт 1: Java повсюду

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

ОпытКоличество вакансий
до 1 года285
от 1 до 3 лет1448
от 3 до 6 лет1603
свыше 6 лет157

  •  

    Ethan Hayes

    Junior Java Developer

    Contact Information

    Columbus, OH

    (980) 555-7349

    [email protected]

    Skills

    • Linux
    • PL/SQL
    • Веб -сервис
    • QTP
    • JMS
    • JavaScript
    • Servlets
    • GIT
    • Jenkins
    • API
    912
  • Jenkins
  • API
  • API
  • 0002 Трудовой стаж

    Младший Java-разработчик

    2019 – настоящее время

    Консультационные услуги Tata

    Колумбус, Огайо

    • Координировать закрытие/разрешение дефекта при обсуждении с командой контроля качества.
    • Разработана важная часть веб-сервисов и слоя пользовательского интерфейса для инструментов Paint Vendor Store.
    • Рекомендовать изменения в улучшенных установленных процессах приложений Java.
    • Участие в разработке и написании объектов базы данных, таких как хранимые процедуры, представления и триггеры.

    Помощник инженера-программиста

    2018–2019

    Veeco

    Санта-Барбара, Калифорния

    • Реализован драйвер устройства Unix Kernel Trace и API.
    • Реконструированы проприетарные схемы баз данных и написаны пользовательские процедуры вставки в БД.
    • Работал над добавлением новых функций в инструмент дисперсии.

    Младший инженер по обеспечению качества

    2016–2017

    Amazon

    Сан-Бернардино, Калифорния

    Образование

    Магистр степени компьютерных наук

    2017 — 2018

    Университет Калифорнии, Санта -Барбара

    Санта -Барбара, Калифорния

    Университет степени бакалавра.

  • Adad Wright

    Adam0005

    Junior Java Developer

    Contact Info

    Florence, KY

    (650) 555-9368

    awright@example. com

    Skills

    JavascriptJiraProduct QualityConfiguration ManagementALMJenkinsTomcatQuality StandardsQAXML

    Employment History

    Junior Java Developer

    2019 — Настоящее время

    Citi

    Флоренция, Кентукки

    • Участие в настройке веб-служб и безопасности в IIS для приложения.
    • Разработаны и добавлены новые функциональные возможности, расширенные существующие приложения с использованием J2EE, XML, Ajax, Servlets, JSP.
    • Участвует в обработке ошибок с использованием JSP.

    Младший Java-разработчик

    2017–2019

    T-Mobile

    Атланта, Джорджия

    • Работал с Дженкинсом и Хадсоном над непрерывной интеграцией.
    • Реализованы различные шаблоны проектирования J2EE, такие как Session Facade, Business Delegate, Value Object, Data Access Object и т. д.
    • Модуль опубликованного портфолио, основанный на веб-службах, которые доступны для остальной части команды для использования службы.
    • Реализованы сценарии Pearl и Shell в среде Unix для запуска ежедневных пакетных заданий путем настройки заданий cron.

    Младший инженер по обеспечению качества

    2013–2016

    AT&T

    Нью-Йорк, штат Нью-Йорк

    • Выполнено функциональное, отрицательное, положительное, интеграция, регрессия, комплексное тестирование, тестирование системы, работоспособность, графический интерфейс.
    • Участие в мероприятиях по совершенствованию процессов обеспечения качества.

    Образование

    Магистр Устроение компьютерных наук

    2016 — 2017

    Нью -Йоркский университет

    , Нью -Йорк, Нью -Йорк

    Дипломная степень бакалавра. Брансуик, Нью-Джерси

     

     

    Adam Wright

    Junior Java Developer

    Флоренция, KY

    (650) 555-9368

    over@example. com

    . 10005

    Junior JAVA JUNIORERERENTERGENTIORE AVENSIVE2019.29000. , KY

    • Участвовал в создании веб-служб и настроек безопасности в IIS для приложения.
    • Разработаны и добавлены новые функциональные возможности, расширенные существующие приложения с использованием J2EE, XML, Ajax, Servlets, JSP.
    • Участвует в обработке ошибок с использованием JSP.

    Младший Java-разработчик 2017–2019

    T-Mobile•Atlanta, GA

    • Работал с Дженкинсом и Хадсоном над непрерывной интеграцией.
    • Реализованы различные шаблоны проектирования J2EE, такие как Session Facade, Business Delegate, Value Object, Data Access Object и т. д.
    • Опубликованный модуль портфолио, основанный на веб-сервисах, которые доступны для остальных членов команды для использования сервиса.
    • Реализованы сценарии Pearl и Shell в среде Unix для запуска ежедневных пакетных заданий путем настройки заданий cron.

    Младший инженер по обеспечению качества2013–2016

    AT&T•Нью-Йорк, штат Нью-Йорк

    • Выполнено функциональное, отрицательное, положительное, интеграционное, регрессионное, сквозное, системное, функциональное тестирование графического интерфейса.
    • Участие в мероприятиях по совершенствованию процессов обеспечения качества.

    Навыки

    JavascriptJiraКачество продуктаУправление конфигурациейALMJenkinsTomcatСтандарты качестваQAXML

    Образование

    Степень магистра Информатика2016 — 2017

    New York University•New York, NY

    Bachelor’s Degree Computer Science2010 — 2013

    Rutgers, The State University of New Jersey•New Brunswick, NJ