Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

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

Содержание

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

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

Респонденты поделились информацией о том, какие технологии им понадобились для прохождения собеседования, а какие они использовали в первый год первой работы, связанной с Java.

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. Если вы уже нашли работу и хотите рассказать о своём опыте — добро пожаловать в комментарии!

«Что нужно знать, чтобы стать Junior Java Developer?» – Яндекс.Кью

Привет, мой юный падаван.

Вообще все зависит от компании, проекта, технологии. Самый простой способ узнать — это зайти на hh.ru и поискать вакансии.  Я не нанимаю сотрудников и могу рассказать лишь примерный путь java разработчика.

Чтобы прийти в холодный мир Java разработки, тебе в первую очередь нужно прочитать одну из популярных и несложных книжек. Советую для начала «Философию Java» Эккеля и Java. Методы программирования авторов И.Н. Блинов, В.С. Романчик. Из них ты должен вынести более менее твердые знания Java Core, основы Java EE, понимание ООП. Кончено еще нужно читать много всяких статей с хабра, найти пару блогов. Тебе придется, к примеру, уметь четко и понятно объяснить структуру HashMap, как туда добавить и удалить элемент и сколько памяти все это займет 🙂 Можно почитать про основные паттерны.

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

Следующий шаг — ищешь более менее большую компанию, куда берут на тренинг и последующую стажировку без опыта работы, но с какими-то минимальными знаниями. В моем случае это был Epam 🙂 На курсах обучают жестко всему java core и ты пишешь несколько веб-проектов: несколько задач на паттерны вроде фабрики, на разбор и обработку текста, парсинг из хml в разных вариациях, выпускной проект было что-то вроде такс-менеджера для разработчика, менеджера и заказчика. Менеджер дает задачи программисту, а заказчик может отсиживать результат и связываться с менеджером и программистом, программист выставлял различный статус задаче и % сделанного.

Если такой компании нет, что редко бывает, — ты внимательно изучаешь вакансии для java junior-ов и пытаешься соответствовать путем изучения литературы, общения с другими девелоперам (кстати в вк даже группа где-то была, где можно найти ментора себе). Можешь искать на гитхабе всякие проекты на java и как-то допиливать, просто разбираться в коде. В теоретическом плане перед собеседованием следует повторить всякие основные алгоритмы, погуглить вопросы к собеседованию (http://info.javarush.ru/translation/2014/02/12/Java-Core-Вопросы-к-собеседованию-ч-1.html) и отточить знания на них.

Что нужно Junior’у, чтобы успешно устроиться / Хабр

Не так давно я отвечал на

Хабровопрос

по поводу того, что нужно знать, чтобы устроиться после ВУЗа программистом, после чего мне был задан вопрос в личку, а также Вконтакте, а что же собственно нужно в подробностях.

В данной статье я постараюсь рассказать, что должен знать молодой специалист, который ищет работу. Я немного разбираюсь в данном вопросе, т.к. год назад, после 3 курса, задался проблемой трудоустройства и успешно нашел свое место, которое смог совмещать с учебой. И я все еще помню о чем разговаривал на собеседованиях (которых было мало, но они были успешными).

Сразу стоит отметить, что данная статья не подходит тем, чья цель работать исключительно в так называемых Major Players (Google, Yandex, Microsoft и т.п.).

Кому интересно — добро пожаловать под кат (под катом вакансии для Москвы и Казани из комментариев, а также предложение о стажировки для Питера).

Итак, Junior — это программист, который должен уметь и все и ничего одновременно.

Подробнее о каждом из утверждений.

Junior должен уметь все

Человек, который пришел устраиваться на должность младшего программиста должен знать язык, на котором собирается писать (знать — не означает уметь абсолютно все, но чувствовать себя уверенно, если попросят что-нибудь написать). Также стоит разбираться в специфике конкретной области интересов (если вы собираетесь кодить под сети — стоит иметь представление о сетях, что там и как).

Junior должен уметь ничего

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

Вроде ничего нового я не сказал, да и конкретики никакой нет, но ее и не может быть. Нет определенных общих требований для Junior’ов, есть конкретные требования на вакансию, можно поискать на hh.ru, там написано.

Теперь о вещах, которые помогут Вам найти свое место

Если Вы студент — значит похвастаться опытом работы не получится, а Ваши студенческие успехи вряд ли интересуют работодателя, если это конечно не супер-пупер достижения на олимпиадах, конкурсах и пр. Но Вам никто не мешает заниматься собственными проектами, о которых можно поговорить (я на собеседованиях на Junior’a почти все время рассказывал о своем проекте), это дает работодателю шанс понять, что хотя опыта коммерческой разработки нет — есть опыт работы над задачей, опыт формулировки задач, возможно опыт работы в команде, это ценится больше, чем курсовик по предмету «Программирование на C++» на 5 семестре.

Еще одним очень важным вопросом является — Алгоритмы и структуры данных. Так уж сложилось, что при устройстве на вакансию Junior’a многие компании готовы простить Вам незнание этих вещей, ведь ваша задача как Junior’а скорее всего, к сожалению, будет жарить код.

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

В заключение

Я не сказал ничего нового в этой статье, я лишь попытался рассказать, что ничего особенного знать не нужно, нужно просто знать и быть уверенным в себе, уметь решать задачи, уметь ставить задачи. А опыт работы заменять опытом участия в различных проектах.

Успехов Вам в поисках.

P.S. И не повторяйте ошибок, когда пришел человек устраиваться летом на Junior C++ и не смог написать простого цикла, объясняя это «Лето ведь, забыл все».

P.P.S. Тут и тут неплохие, на мой взгляд, подборки литературы. Можно выбрать что-нибудь себе по душе.

UPD: Вот список предложенных в комментах вакансий
Москва: Если умеете linux/svn/php5/mysql/jquery/zend и не имеете большого опыта работы, то пишите kai, чтобы получить шанс устроится на работу в приличную компанию с именем.
Москва: Требования: PHP5 (умение не ООП, увы, приветствуется), MySQL (сложные пересечения, вложенные запросы), JS|jQuery.

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

Писать trijin
Казань: Достаточно основ PHP, Js и MySQL, остальному научим. Писать пользователю rednaxi или на мыло [email protected]
Казань: Ищем человека: php, mysql, js, разумеется, знать сами основы: css и html.

Писать можно в личку пользователю ainuили в жабер (в личке есть)
Приглашения в опенсорс:
alexeygrigorev приглашает в jtalks.org — пишут на джаве движок для форумов, блогов и т.п. В основном участвуют Junior’ы.
Приглашения на стажировку:
Питер: Для тех, кому интересна стажировка в веб девелопменте (php, postgres, memcached, html5, мобильные приложения, и т.д.), приглашаем присоединиться к команде Дзен-мани (zenmoney.ru)

Стажировка подразумевает обучение на примере реальных задач по проекту. Условия очень простые: пока мы обучаем, и для вас и для нас это бесплатно. Как только вы начинаете делать какие-то вещи самостоятельно — мы начинаем платить стипендию. Если через 3-4 месяца вы набираете нужный уровень, возможно устройство в штат компании с зарплатой. Стипендия 10 тысяч в месяц, зарплата после стажировки будет зависеть от набранного уровня и за год может вырасти до 40-50 тысяч.

По занятости: мы готовы обеспечить задачами на 12 часов в сутки, тут, скорее, вопрос к вам. Нас больше интересует не время проведенное в офисе, а результат. Сможете учиться дома — отлично. Естественно, надо будет приезжать в офис, чтобы обсуждать задачи и проводить разбор решений.

Актуально только для Питера и пригорода. Пишите на [email protected]

От пользователя laflaf

Что нужно знать чтобы стать Junior Java Developer?

Что нужно знать чтобы стать Junior Java Developer? — Stack Overflow на русском



Stack Overflow на русском — это сайт вопросов и ответов для программистов. Присоединяйтесь! Регистрация займёт не больше минуты.

Присоединиться к сообществу


Любой может задать вопрос


Любой может ответить


Лучшие ответы получают голоса и поднимаются наверх



Вопрос задан


Просмотрен
50 раз



Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.

Закрыт 8 месяцев назад.


хочу начать изучать програмирование, а именно джаву. Вот хотел по этому поводу узнать что я должен знать для юниора. Буду очень благодарен.


задан 10 фев в 17:06

holodholodholodholod


922 бронзовых знака

  1. java синтаксис
  2. java core
  3. Алгоритмы + типы данных + collections
  4. multithreading (что-то знать про Concurrent)
  5. Уметь делать простые SQL запросы
  6. Spring Hibernate или аналоги, можно и без этого, но сложно будет найти вакансию.
  7. Тестирование, хоть как-то. Может быть не must have, но лишним не будет. Но свой код тестировать уметь нужно.
  8. Git или аналог
  9. Будет плюсом Docker

А вообще открываете вакансию на hh, и там будет стек.


ответ дан 10 фев в 17:25

afjordafjord


40611 серебряный знак1010 бронзовых знаков

2


Всё ещё ищете ответ? Посмотрите другие вопросы с метками java или задайте свой вопрос.

lang-java





Stack Overflow на русском лучше работает с включенным JavaScript



Ваша конфиденциальность


Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.



Принять все файлы cookie



Настроить параметры




 




Java Junior: вопросы на собеседовании, необходимые навыки и знания

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

Когда программист начинает свой путь, первая его профессиональная позиция будет «Junior». В некоторых компаниях до Junior вводят предварительные позиции в компании, например: «стажер», «интерн», «помощник» и т. д. Но эти предварительные позиции, как правило, краткосрочные. Поэтому, когда молодой программист хочет устроиться на работу, он все равно проходит собеседование на «Junior». Это же касается и разработчиков на Java.

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

Из этого получается, что очень важно готовиться к собеседованию на позицию Java Junior, для этого нужно знать:

  • какие требования есть к такому специалисту, 

  • какие вопросы могут задать на собеседовании, 

  • какие практические задания могут дать,

  • и т. д. 

 

Какие вопросы могут быть на собеседовании Java Junior

На самом деле, нет конкретного перечня вопросов, которые будут задавать на собеседовании Java Junior. В разных компаниях они могут различаться. Например, в одних будет очень много вопросов технического характера, чтобы посмотреть, с какими возможностями языка Java вы знакомы. В других компаниях будут вопросы не технического значения, чтобы посмотреть, какими soft skills вы обладаете. В третьих компаниях вас всячески попытаются ввести в критическую ситуацию, чтобы посмотреть, как вы будете себя вести в случаях возникновения таковых.

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

Из этого следует, что нужно быть хорошо теоретически подготовленным, чтобы не впадать в ступор от поставленных вопросов и не повторять убийственное: «Я не знаю».

 

Вероятные вопросы на собеседовании Java Junior

  1. Что такое ОПП, его принципы, отличия от других подходов в программировании, преимущества и недостатки?

  2. Объяснение понятий «наследование», «абстракция», «инкапсуляция», «полиморфизм».

  3. Назвать отличия между «JRE», «JVM», «JDK».

  4. Назвать отличие между абстрактным классом и интерфейсом.

  5. Реализация статических блоков в Java.

  6. Возможна ли перезагрузка метода static?

  7. Разница между переменной экземпляра и переменной статики.

  8. Нужно объяснить разницу между статической и динамической загрузкой класса.

  9. Нужно объяснить разницу между String, StringBuffer, StringBuilder.

  10. Объяснить различие между heap и stack памятью в Java.

  11. Нужно объяснить работу сборщика мусора.

  12. Рассказать об особенностях статического класса.

  13. Нужно рассказать о понятиях «Autoboxing» и «Generics».

  14. Рассказать о методах класса Object.

  15. Рассказать все об «equals».

  16. Что такое «hashCode()»? Рассказать все об этом методе.

  17. Объяснить значение конструктора.

  18. Рассказать о видах и иерархии исключений в Java.

  19. Объяснить значение «error».

  20. Рассказать о строках и методах, способах и инструментах взаимодействия с ними.

  21. Объяснить, что такое рефлексия, и ее значение в Java.

  22. Рассказать о значении, функциях и действиях Аннотации в Java.

  23. Что такое дистанционное управление и как его реализовать в Java?

  24. Какими технологиями безопасности обладает Java?

  25. Объяснить значение JAAS.

  26. Рассказать все о рефакторинге.

  27.  Рассказать о Коллекциях, об их интерфейсах, элементах и их отличиях.

  28. Реализация хеш-таблиц в Java.

  29. Рассказать подробнее о разных функциональных интерфейсах.

  30. Объяснить работу лямбда-выражений.

На самом деле, список вопросов можно продолжать бесконечно. Потому что вас будут спрашивать о конкретных функциях, методах, классах, выражениях, способах реализаций каких-то действий и многое-многое другое. Помимо теоретических вопросов, вам в процессе собеседования будут задавать небольшие задачи по принципу: «А как это работает?», «А где здесь ошибка?», «А какой здесь будет результат?» и т. д.

В общем, перед собеседованием вам нужно будет повторить или подучить:

  • Java Core;

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

  • unit-тестирование;

  • различные библиотеки, GUI и прочие компоненты;

  • популярные фреймворки.

 

Как подготовиться к собеседованию Java Junior

Просто «вызубрить» обучающий материал и считать, что вы уже Java Junior, — этого мало. Для того чтобы занять такую позицию в компании, нужно провести целую подготовительную кампанию из нескольких шагов:

  1. Нужно правильно оформить резюме. Самое главное — в резюме нужно указывать только достоверную информацию о себе, своих знаниях, навыках и опыте. При этом можно составлять несколько резюме для разных компаний, чтобы акцентировать в резюме конкретные скиллы под требования конкретных компаний.

  2. Оформляйте мотивационное письмо. Иногда может так получиться, что вы не будете полностью соответствовать требованиям вакансии. Но ваше нутро будет вам подсказывать, что вы легко справитесь с поставленными задачами. Для этого и составляется мотивационное письмо, где вы сможете объяснить, почему именно вы подходите для этой вакансии.

  3. Подготовка к собеседованию. Первым делом нужно максимально узнать о компании, в которую вы хотите устроиться работать, чтобы понимать, что вас может ожидать на собеседовании. Попрактиковаться в решении небольших Java-задач. Освежить память по теоретической части языка программирования. Подготовить список вопросов, которые вы хотите задать при собеседовании. Проверить ваш Git-репозиторий, чтобы показать проекты, над которыми вы работали. Подготовить небольшой рассказ о себе и своих сильных сторонах. Можно попросить кого-либо провести с вами тестовое собеседование.

  4. Проявить себя на собеседовании. Покажите, что вы замотивированы получить работу и что все, что вы написали в своем резюме, — это истинная информация о вас. Расскажите о своих профессиональных качествах, например, если вы изучаете новый стек, то обязательно сообщите об этом. Будьте максимально честным. Если что-то вам неясно: вопрос или задача, то не бойтесь задавать уточняющие вопросы.

 

Заключение

Есть такое поверье, что если завалили первое собеседование, то просто похвалите себя за это. Потому что очень многие молодые разработчики не доходят даже до собеседования. А вы дошли. Поэтому нужно проанализировать свои слабые стороны и идти на следующее собеседование. Завалили и это? Анализ, исправление ошибок — и вперед к следующему собеседованию. И так до тех пор, пока не устроитесь на работу.

Запомните одну простую вещь: как бы сильно вы ни готовились к собеседованию, требования к Java Junior в разных компаниях будут разными, а значит, и вопросы на собеседовании могут быть разные.

Пошаговая инструкция для Java Junior

Фото: YouTube

Федор Яременко

Программист ООО «Алтимета»

Роман Иванов

Преподаватель JAVA в Сбер университете

Александр Макеев

Software Engineer at Arcadia

Алексей Золотарев

Преподаватель УЦ РДТЕХ

Чтобы войти в профессию Java-разработчика, надо пройти несколько этапов.

Содержание статьи [развернуть]

Какие это этапы и как легче и быстрее их преодолеть, расскажет Фёдор Ярёменко — Java- и Kotlin-разработчик компании «Алтимета», которая создаёт профессиональные системы электронной торговли и управления закупками.

За свою десятилетнюю карьеру Фёдор участвовал в разработке и внедрении множества специализированных электронных торговых площадок, в том числе для таких крупных заказчиков, как «Северсталь», «А101», «Медси», «СОГАЗ».

Мотивирующие причины освоить Java-разработку

Если вы читаете эту статью, то, скорее всего, уже поняли, что профессия программиста и, в частности, Java-разработчика крайне популярна в IT. Да, Java — один из самых распространённых языков программирования. Решения на основе Java активно применяют в сфере разработки корпоративных систем: в банках, страховых компаниях, финансовых биржах и корпорациях.

Ещё более широкая область применения Java — это разнообразные приложения для Android. Но кроме мобильной разработки она активно применяется и в мире интернета вещей (IoT-разработка). По данным Oracle, Java используется более чем на 15 млрд. устройств! Ещё на Java разрабатывают веб-приложения.

Так что да, основная причина стать Java-разработчиком — это востребованность на рынке труда и высокий уровень зарплат. Входя в эту профессию, без хорошей и интересной работы вы точно не останетесь, причём на любом уровне профессионализма. Эта тенденция сохраняется не первый год и не собирается спадать, скорее наоборот. Однако сначала, конечно, надо «изучить матчасть».

Где научиться программировать на Java, чтобы начать работать

ВУЗ

Есть разные мнения о том, стоит ли тратить 4-5 лет на получение образования, чтобы овладеть профессией программиста. Одни считают, что это слишком долго, другие уверены, что серьёзное образование — это солидно с точки зрения работодателя. Однако, кроме фундаментальности подхода, высшее образование даёт и прагматичные плюсы. Во многих ВУЗах крупные компании открывают кафедры и учебные центры, а некоторые работодатели предлагают программы стажировки для студентов. К тому же, обучаясь в ВУЗе, можно начать работать уже на 2-3 курсе.

Если в дальнейшем вы не исключаете работу за границей, то полезно знать, что в ряде стран наличие профильного высшего образования может упростить получение разрешения на работу. Это, например, США, Канада и Австралия.

Самообразование

Этот подход требует самодисциплины. Но она имеет шанс быстро «окупиться».

Следует начать с книг:

  • Берт Бейтс, Кэти Сьерра (Bert Bates, Kathy Sierra): Изучаем Java.
  • Герберт Шилдт (Herbert Schildt): Java 8. Руководство для начинающих.

Кроме знания языка программирования важно в самом начале научиться писать код, который будет легко воспринимать и поддерживать. В этом поможет книга Стива Макконнелла «Совершенный код» (Steven C. McConnell). Также существует множество видеокурсов, которые помогут изучить различные аспекты разработки на Java, причём бесплатных.

Онлайн-школы

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

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

Практика

Это важная часть обучения программированию! Не стоит ждать момента, когда вы почувствуете, что готовы переходить от теории к практике — так можно остаться вечным студентом и ещё долго не получать хороший доход от Java-разработки. В качестве практики уже на начальном этапе образования можно понемногу писать свой небольшой проект, которым вам будет интересно заниматься по вечерам и на выходных. Если нет идей для проекта — есть игры для программистов, которые помогают прокачать свои навыки: Robocode, Codewars, Codingame, Code Hunt.

Что должен знать начинающий Java-разработчик в 2021 году

Ещё несколько лет назад для того, чтобы претендовать на вакансию младшего Java-разработчика, было достаточно знания основ языка Java и понимания структур данных. Сегодня помимо владения Java Core от Junior-разработчика требуются:

  • умение работать с базами данных с использованием Hibernate
  • умение создавать приложения с помощью фреймворка Spring
  • умение разрабатывать Web-сервисы
  • навыки работы с системой контроля версий Git
  • навыки построения запросов к базам данных на языке SQL
  • знание и обязательно умение применять шаблоны проектирования

Напутствие неофитам

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

Совет от преподавателя JAVA

Для изучения Java с нуля вам потребуется как минимум 6 месяцев интенсивного, непрерывного обучения, комментирует Роман Иванов, Главный инженер, преподаватель JAVA в Сбер университете. Поэтому если вы хотите стать Java разработчиком, то настойчивость и усидчивость, то, что вы должны развить в себе в первую очередь.

Главная моя рекомендация в плане языка состоит в том, что изучать Java надо на практике. Сейчас много интерактивных курсов, которые готовы вам предложить тысячи задач. Выбери тот, который вам больше всего понравится и приступайте к обучению. Так как на подобных площадках очень много задач, вы получите неоценимую практику, которая позволит вам запомнить на мышечном уровне конструкции языка и базовые паттерны.

Не жалейте денег на подписку, она окупится за первый месяц. А чтобы улучшить свои теоретические знания в области computer science, лучше всего смотреть видео лекции на ютубе. Особо рекомендую канал “Computer Science Center” – качественные лекций не только на java тематику, но и на множество других. Удачного вам обучения!

Как стать программистом Java — мнение эксперта

Комментирует Алексей Золотарев, эксперт ПО Oracle Центра технической поддержки РДТЕХ, преподаватель Учебного центра РДТЕХ.

Однажды заданный вопрос: «Алексей, посоветуй, как мне стать разработчиком» поставил меня в тупик. Всегда казалось, что программистом/разработчиком стать очень просто. Это же примерно, как езда на велосипеде. Чего тут сложного? Крути педали и поворачивай руль, следя за изгибами дороги. Уже не вспомню, что именно я тогда ответил, но сейчас понимаю, что на самом деле вопрос не такой простой, и за ним скрывается множество условностей.

Будем исходить из того, что его задает человек, имеющий минимальный опыт в информационных технологиях, но при этом хотя бы умеющий строить отчёты с формулами в Экселе.

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

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

Один из ключевых факторов успеха – правильное восприятие реальности. К сожалению, распространено представление, что программирование – это почти искусство. И в последствии часто следует одушевление продукта разработки создателем, переоценка собственных творческих возможностей и многое-многое другое. Лучше сразу осознать, что ваши будущие программы и автопортрет Альбрехта Дюрера – это всё-таки вещи из разных областей творчества.

Изучение самого языка можно начать с хорошей книги, например, Bruce Eckel «Thinking in Java». В русском переводе книга называется «Философия Java». Произведение как нельзя лучше подходит для того, чтобы изучить язык программирования через принятие его объектно-ориентированной сущности.

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

При наличии в вакансиях сопутствующих требований к знанию технологий и продуктов – запускайте их в процесс изучения. Через несколько итераций при должном уровне настойчивости и усидчивости вы сможете пройти собеседование, получить должность начинающего (junior) программиста и продолжить дальнейшее развитие, занимаясь разработкой на Java профессионально.

Заключение

Я начал изучать Java в 2014 году, рассказывает Александр Макеев. Сперва нужно познакомиться с синтаксисом языка и Java Core. Рекомендую начать с YouTube обучающих курсов, с ними будет не так скучно нежели сразу погружаться в книги. Можно попробовать написать какую-нибудь игру, ведь важно видеть результат своих усилий, чтобы не терять мотивацию учиться.

После получения первых знаний, их нужно закрепить литературой для заполнения пробелов (хорошо подойдет Thinking in Java by Bruce Eckel). Далее нужно изучить SQL и актуальные фреймворки для DI и персистентности данных (Spring, Hibernate/MyBatis). По мере изучения технологий важно применять их на практике — придумывать и писать свои проекты. Можно найти друга/ментора и написать что-то сложное вместе.

Что должен знать Junior Java Developer mp3 download (7.87 MB)