JavaRush /جاوا بلاگ /Random-UR /Что нужно знать, чтобы стать Java Junior, и что со всем э...

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

گروپ میں شائع ہوا۔
Требования к потенциальным Java-разработчикам постоянно меняются и за ними сложно уследить. Достаточно ли знать только Java Core, чтобы стать Trainee? Насколько хорошо нужно разбираться в Spring и Hibernate для получения должности Java Junior? Стоит ли учить базы данных, разбираться ли с алгоритмами сортировки и поиска? И поскольку студентов JavaRush очень часто волнуют эти вопросы, мы решor задать их нашим выпускникам, которые уже работают Java Junior or стажируются в компаниях на должности Java Trainee. Заметим, 13% опрошенных посчастливилось с первой попытки получить должность Java Middle минуя стадию Junior. What нужно знать, чтобы стать Java Junior, и что со всем этим делать? - 1Респонденты поделorсь информацией о том, Howие технологии им понадобorсь для прохождения собеседования, а Howие они использовали в первый год первой работы, связанной с Java.

Java Core нужна всем

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

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

По поводу изучения алгоритмов сортировки и поиска ведутся постоянные споры. С одной стороны, лучшие алгоритмы уже давно написаны и включены в библиотеки всех популярных языков программирования, в том числе и Java. И их можно легально использовать, не заморачиваясь написанием собственного codeа. Однако специалисты, обучающие программистов, всё-таки рекомендуют каждому начинающему разработчику потренировать мозг написанием всех этих алгоритмов пузырька, слияния, бинарного поиска и им подобным. Во-первых, эти алгоритмы — своего рода лакмусовая бумажка умений программиста (именно не знаний, а умений) и понимания человеком, что такое программирование в принципе. Если мозг уже хорошо настроен на подобную работу, вы будете писать алгоритмы относительно легко. И тем не менее, следует помнить: алгоритмы вам нужны именно для тренировки мозга… и для того, чтобы пройти собеседование: проводящие их въедливые Senior-разработчики очень любят мучить соискателей просьбами написать тот or иной алгоритм. А вот в работе большинство (48.5%) использует стандартные библиотечные алгоритмы, эффективные и проверенные, в то время How 16% респондентов вообще не использовали сортировку в первый год работы программистом.What нужно знать, чтобы стать Java Junior, и что со всем этим делать? - 469,6% выпускников утверждают, что до получения первого предложения о работе они неплохо ориентировались в алгоритмах сортировки и поиска и могли написать их самостоятельно.What нужно знать, чтобы стать Java Junior, и что со всем этим делать? - 5Мы уже затрагивали тему структур данных, когда говорor о коллекциях Java. Да, в них лучше разобраться, чтобы знать, где и Howую структуру применить. Составление собственных структур данных по образу и подобию библиотечных — отличное упражнение, которое поможет вам лучше в них разобраться. Вы можете, например, попробовать написать собственную версию ArrayList or предложить свой односвязный список (обычный LinkedList в Java — двусвязный).What нужно знать, чтобы стать Java Junior, и что со всем этим делать? - 6Во время работы начинающие программисты использовали главным образом стандартные структуры данных.What нужно знать, чтобы стать Java Junior, и что со всем этим делать? - 7

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

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

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

Мы спросor насколько хорошо выпускники JavaRush были знакомы с рядом инструментов, часть из которых изучалась и в нашем курсе.
  • Сервлеты — это программные компоненты Java, которые расширяют возможности serverа.
  • JDBC — это независимый от платформы стандарт взаимодействия между applicationsми Java и базами данных. JDBC реализован в виде пакета java. sql входит в состав Java SE (Standard Edition).
  • log4j — самая известная библиотека для регистрации сообщений. Он позволяет писать вызовы библиотеки в java-codeе, а затем гибко настраивать его, не изменяя уже написанный code.
  • Jackson/JSON. JSON (JavaScript Object Notation) — чрезвычайно популярный открытый стандартный формат файлов и формат обмена данными, а Jackson — это высокопроизводительный процессор JSON для Java.
Все эти инструменты очень полезны и часто используются в работе и большинство студентов не пренебрегали ими при подготовке к собеседованию. Особенно это касается Jackson, с которым сталкивались 72.7% соискателей на должность Java-программиста, JDBC — эту библиотеку опробовало более 78% опрошенных. В работе эти технологии использовали практически все. С GUI Java-разработчики сталкиваются не так часто. Мы задали вопрос о JavaFX: с этой технологией по работе столкнулись только 18% респондентов.What нужно знать, чтобы стать Java Junior, и что со всем этим делать? - 8Две трети респондентов работали с сервлетами, чуть меньшее число опрошенных опробовали их во время учёбы. Также оказалось, что часть приступивших к работе Java-программистов сталкивалась с такими проектами, How Apache Commons (набор библиотек, ориентированный на все аспекты повторно используемых компонентов Java) и Guava (набор общих библиотек для Java с открытым исходным codeом, в основном разработанный инженерами Google).What нужно знать, чтобы стать Java Junior, и что со всем этим делать? - 9

Frameworks

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

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

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

What ещё?

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

Выводы

Надеемся, мы не слишком вас напугали количеством технологий, которые вам предстоит изучить. Не всё из этого нужно знать досконально, к тому же, разбираться со всем этим — весьма интересно. Не зря же вы решor стать программистом, не так ли? Так что продолжайте учить Java и не теряйте мотивацию. Успехов! P. S. Если вы уже нашли работу и хотите рассказать о своём опыте — добро пожаловать в комментарии!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION