Всем привет.
Хотел написать свою историю успеха и закончить её опытом участия в проведении собеседования, но, к сожалению почти в самом конце обновил страницу и потерял весь текст, поэтому напишу только об интервью - возможно, это будет кому-нибудь полезно.
Я не был основным интервьювером, а помогал коллеге + получал опыт, чтобы в дальнейшем проводить собеседования самостоятельно.
Часто на форуме появляются вопросы, что изучать кроме базовых вещей (core, collections, multithreading, lambda, stream и т.д.), но в свою очередь хотел бы сказать, что сначала обязательно изучите основы. Знания Spring, Hibernate, Docker/Kubernetes с вас вряд ли потребуют на уровне эксперта для позиции junior, но серьезные пробелы в core могут не простить.
Если возвращаться к упомянутому интервью, то там речь шла даже про позицию middle, и у кандидата было почти 2 года работы на позиции java-разработчика. Поэтому слабое представление о модификаторах доступа, путаница при объяснении проверяемых исключений и понятия абстрактного класса катастрофически уменьшают ваши шансы на оффер. Как потом мне рассказал основной интервьювер, это был не единичный случай за последнее время.
Поэтому хочу дать хороший совет с противоположной стороны при прохождении собеседования: уделите, пожалуйста, особое внимание базовым конструкциям и синтаксису языка, доведите эту часть ваших знаний до позиции "5+", а потом уже смотрите на остальное. Без этого багажа ваша поездка в мир разработки может откладываться на длительное время.
Sytov Alexander
36 уровень
Обязательное знание java core на собеседовании
Комментарии (19)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сергей Я Java Developer в DXC/Luxoft Expert
16 февраля 2021, 06:38
Чистой фундаментальной теории можно уделять время, так же можно уделять время написанию алгоритмов на листочке и прочее, но как показывает практика, очень часто в роли интервьюера выступает человек с чрезмерно-расширенным ЧСВ. Обычно такое бывает когда человек много лет сидит на одном проекте, толком не развивается и требует знание чистой теории забывая обо всем остальном....
0
Ksenia MarioMaster
16 февраля 2021, 13:41
а если требуют и практику и теорию то что у человека с чсв?
0
wan-derer.ru
15 февраля 2021, 07:31
А у меня вот справочные данные ни фига в голове не задерживаются. Организм говорит: ну нахрена мы с тобой будем это помнить? У нас же есть сборник картинок где в виде схем всё разрисовано: и про модификаторы, и про коллекции, и про исключения! Один взгляд и помнишь! Закрыл - забыл :)
На последнем собесе:
Интервьюер: что надо чтобы корректно сравнивать самодельные объекты?
Я: надо переопределить методы equals() и этта... как его... короче метод-который-вычисляет-хэш!
Он: hashcode()...
Я: Да! Его!
Я к чему. Они хорошо понимают разницу между "не знаешь" и "знаешь, но затупил". Никто специально валить не будет. Но понимание зачем нужны те или иные вещи нужны. Т.е. "что будет если hashcode() всегда возвращает одно и то же значение" надо уметь объяснить своими словами.
Или ранее:
Animal cat = new Cat();
Какие методы доступны cat?
Ы :) А я перед этим решал на жавараше задачи на рефлексию и создание классов во время исполнения :) А чуть раньше на всякий RMI и прочие Dynamic Proxy. Причём сам и довольно успешно, практически не глядя в подсказки....
А про кота - ну в упор не помню! Кое-как что-то проблеял, выглядел весьма бледненько :)
Это к тому что под напором новых знаний даже база как-то забывается
+1
Justinian Judge в Mega City One Master
15 февраля 2021, 09:18
У многих так, у меня тоже 😀 Но что поделаешь, надо учить, разбирать.
Ключ в том, что хорошо запоминаются два вида знаний:
1. Которые хорошо проработаны на уровне понимания
2. Которые многократно практически использовались
Зазубривать понятия и абстракции не вариант, будет только хуже.
То что ты описал, две ситуации я бы отнес к разряду "не знаешь", такие темы должны отскакивать от зубов без вариантов, как писал топик стартер, джава кор должен чем крепче тем лучше.
Многие неверно распределяют усилия, и для них спринг изучать, глубокие темы равнозначно к кору. Многие теряют интерес к кору, это же не круто, а вот базы данных это круто, а потом они на собесе говорят что инкапсуляция это сокрытие или не могут ответить на очень простые вопросы, а их по спрингу уже и спрашивать не сильно хочется.
Какой спрос с специалиста без опыта работы?
По уровню джава кора оценивают уровень специалиста.
Поэтому кор перед собесами нужно повторять, прорабатывать, делать аудит тем которые непонятны, разбирать, учиться объяснять.
Но при этом, для успешного прохождения никогда не знаешь что понадобится. Можно идеально на все ответить - не возьмут, либо в резюме момент засмущает какой-то, либо так совпало более сильный/интерес соискатель попался.Это вопрос удачи.
А можно и вообще все завалить и ничего не ответить, но понравится и возьмут.
Ну и после каждого собеса повышается вероятность успеха, думаю эти два вопроса про доступные методы и про hashcode ты запомнишь ) много вопросов повторяется из собеса в собес
0
Anonymous #2497433
14 февраля 2021, 06:32
то есть нужно отметить основные моменты и их выучить (вызубрить)? как на экзамене в школе получается. просто одно дело понимать, другое дело рассказать, объяснить...
+2
VladimirMaster
14 февраля 2021, 06:56
Зубарить и заучивать не нужно, всего не вызубришь.
Даже если и вызубришь, то без понимания, как оно там работает под капотом, толку от того, что ты вызубрил ноль целых, ноль десятых.
+1
Anonymous #2497433
14 февраля 2021, 07:37
спасибо, за твое наставление, выходит я зря боялся этого монстра - страха все не вызубрить
+2
VladimirMaster
14 февраля 2021, 08:02
Даже не думай об этом(выучить, зазубарить). Старайся не зазубрить, а понять, как то или иное работает под капотом.
Собес он для того и собес, что-бы понять что ты понимаешь, а что нет.
0
Justinian Judge в Mega City One Master
14 февраля 2021, 08:43
Двояко , с одной стороны ты все не смодешь вызубрить при желании. Забавный факт, нередко мидлы или даже синиоры могут завалить собес по джава кору , поскольку сфокусированы на практике, и если они с какими-то темами не сталкиаались, все забывалось, а джун на эти вопросы оттараторит как пионер ) правда ничего другого не знают.
Поэтому нужен баланс, мидлы и синиоры перед собесами подтягивают базу, идут в преподавание и менторство, чтобы полтянуть базу и умение ее объяснять.
Для джуна баланс, это крепкий и отскакивающий от зубов джава кор (в глубь) и широкий охват основ по джава ее (базы данных, хибернейт, спринг и тд). Самые элементарные вещи нужно знать хорошо ( по джава ее), про остальные темы достаточно вширь и слышать..
При этом, джава кор нужно понимать, уметь объяснить, не можешь объяснить, значит до конца не понимаешь, и местами сочетать с зубрежкой.
Иерархии коллекций, потоков, исключений, какие методы в каком классе/интерфейсе коллекций, какие функциональные интерфейсы, алгоритмы сортировок, структур данных, их сложность , контракты equals и зешкод виды джойнов в sql и тд, то есть по темам где понимания недостаточно, нужно еще помнить те или иные вещи.
Поработаешь энное время, или будешь писать код во время учебы годик полтора, и сам может запомнишь, но так или иначе, есть вещи которые нужно запомнить.
Но зазубривание нужно только перед собесом, для тех вещей, которые ты слабо помнишь, их юудет немного.
Во время обучения фокус на понимание, осознание и старайся развивать навык объяснения другим, например тот же раздел Помощь.я
Ну и не нужно бояться, страх парализует, остальные смогли, сможешь и ты, если приложишь усилия в верном направлении
+2
Anonymous #2497433
14 февраля 2021, 08:49
кстати, я тут начал пользоваться в IntellIj IDEA. воспользовался твоим советом и откатил на более раннюю версию (2019.2) - полет отличный - не виснет и не вылетает) спасибо большое. не знал, что НАСТОЛЬКО удобно пользоваться средой разработки
+2
Anonymous #2497433
14 февраля 2021, 08:53
спасибо за совет и мотивацию
напоминание: те моменты, которые плохо помню, нужно выучить перед собеседованием
0
Sytov Alexander Enterprise Java Developer
14 февраля 2021, 09:58
не выучить, а разобраться и понять, чтобы вопрос, заданный не в лоб, не сбил вас с толку.
например, на вопрос "Что такое абстрактный класс в java?" вы ответ зазубрили, а с вопросом "Может ли абстрактный класс в java не содержать абстрактных методов" вы теряетесь.
при необходимости не стесняйтесь повторять основы - это сделает вас только лучше.
+3
Anonymous #2497433
14 февраля 2021, 10:19
понял, спасибо🌈🌈🌈
+1
Justinian Judge в Mega City One Master
14 февраля 2021, 11:07
Дело в том, что речь идет о двух разных вещах.
Есть определения, есть перечисления.
Определения зубрить бессмысленно, хороший интервьюер может даже сказать с какого ресурса и с какой книжки оно взято, столько раз слышать. Также интервьюер сам остановит, если увидит бездумное цитирование и как ты сказал, он просто зайдет с боку, и здесь посыпется человек. Нужно отвечать по своему пониманию.
Перед собесом просто прогонять темы, и плохо усвоенные прорабатывать и вспоминать.
Но есть другой тип знаний.
Назвать все методы класса Object, какие параметры, а то еще и реализацию.
Назвать всю иерархию коллекций - интерфейсы, абстрактные классы, какие где методы по максимуму.
Назвать по 5-7 примеров для эрроров, чекед и анчекед эксепшенов.
Виды джойнов, контракты иквалс и хэшкод 5+3 + между собой.
Синтаксис SQL команд.
В какой версии джава появилась та или иная фича. Какие нововведения в последних версиях и тд.
Какие виды GC, назвать функциональные интерфейсы и больше чем 4 самых популярных и тд. Примитивы и границы их значений.
Это конкретные знания, по которым нужно разобраться и понять, но их нужно еще помнить.
Их периодически спрашивают, поскольку эти знания коррелируются с опытом. Если человек не ответит, это будет пол минуса, если ответит, будет полный плюсик.
И вот эту категорию, для тех у кого нет опыта (после N опыта это и так запоминается, не все, но многое), можно и подзубривать.
Понимание здесь будет скелет.
А помнить те или иные моменты - это мышцы :)
Во втором случае, то что я понимаю как собака SQL команду или stream api коллектор, но не смогу его написать, или алгоритм тот или иной...
За понимание однозначно дадут плюсик, у меня было на собесах, что я писал код, который не компилился, от волнения то или иное забывал, но была видна мысля что я понимаю что пишу, и если успокоюсь то я это дожму.
Есть те, у кого хорошая память, им ничего не нужно делать.
Но тем кто не может вспомнить нужно как раз подучивать вторую категорию знаний.
+3
Justinian Judge в Mega City One Master
14 февраля 2021, 11:11
а по поводу первой категории, определения, понимание механизмов.
Лично я готовился/учился/учусь по такой методике.
Мне главное в конкретный момент времени допустим сегодня, 14.02 разобраться.
Не выучить, не заучить, все-равно забуду.
А вот я разбираюсь с этой темой сейчас, в 13.00 14.02, мне нужно на этот момент времени ДЛЯ СЕБЯ понять что происходит. Погуглить, покрутить. Если картинка сложится, и я на этот момент времени пойму.
Все, дальше хоть потоп.
Перед собесом повторить либо даже без повторения, на собесе, голова сама выдаст то что нужно, если вы поняли тогда, сможете вспомнить/восстановить ход мыслей и сможете ответить на собесе.
Зубрить и держать в голове (по определениям) это смещать фокус в ненужное русло, знаний слишком много, с ними нужно уметь работать.
Понимание это как помещение знаний в депозит, оно куда-то вроде исчезает, но когда нужно, оно само достанется и поможет.
А зубрежка как быстро запомнил - быстро забыл, шаг влево- вправо, и в голове прямая линия вместо экг..
+6
Sytov Alexander Enterprise Java Developer
14 февраля 2021, 11:27
Согласен: в чем человек хорошо разобрался - долгосрочное вложение, что заучил - краткосрочное. В таком ключе каждому следует найти наиболее полезную для него пропорцию для успешного собеседования. С опытом/временем эта пропорция может меняться.
+1
Anonymous #2497433
14 февраля 2021, 11:59
это как экзамен в школе - все что учил перед экзаменами почему-то забыл (потому что зубрил), а то, что в течение школы от души изучал, то запомнил (но математику забыл. математика - это как спорт, забросишь и всё ,покатишься вниз по накатанной с геометрической прогрессией)
0
Pavlo Plynko Java-разработчик в CodeGym Expert
15 февраля 2021, 07:20
Да ладно :) Производную от "икс в квадрате" небось помнишь же? ;)
+1
Justinian Judge в Mega City One Master
13 февраля 2021, 23:49
+100500.
+1