Как стать автором
Обновить
На Хабре больше сотни хабов и компаний, привязанных к тегу Java. Кажется, ни на одну тему не пишут так часто и подробно. Возможно, мы с компанией EPAM и сломали бритву Оккама, но сделали этот тест, посвященный одному из самых популярных языков программирования. Какое отношение имеет Райан Гослинг к Java? Var — это варик или совсем не вариант? Отработает ли вывод в консоль, если программист в конец запутался? — Предлагаем пройти тест и ответить на вопросы, в которых не упущены ни давняя история, ни последние обновления.
Подробности – под катом
Всего голосов 42: ↑29 и ↓13 +16
Комментарии 39

Комментарии 39

5/13 при рандомном ответе. Есть куда работать в тестах.

Читать портянки невозможно.
Читать ответы еще хуже — границ между блоками не видно.
C# разработчик. Ответил на 9/13.
C# разработчик отвечал честно, кроме случаев, когда много буков в вопросах (почти все случаи) — отвечал рандомно. 7/13
Тоже 5/13 при случайном прохождении. Хотя на Гослинга ткнул осознанно.

Там по 3 ответа на вопрос: вероятность угадать правильный ответ 33%.
Если я верно помню теорию вероятностей, то 5 из 13 нам даёт 38.5% от правильных ответов что согласуется с вероятностью их просто угадать.
Если же прикладывать усилия, как у других комментаторов, то легко можно набрать и больше.

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

Это намек — не ждите адекватных ТЗ.
8/13. Зачем мне знать историю, создателей и эндорсеров языка по именам — ума не приложу.

Чтобы тест был нескучным (см. заголовок)
НЛО прилетело и опубликовало эту надпись здесь
Не показалось, там все 6 строчек символ в символ одинаковые.

Насколько я понял, авторы не смогли преодолеть тот же встроенный в хабр trim() при публикации данного теста, поэтому варианты вышли одинаковые. Хоть бы в кавычках сделали чтоли ...

Добавили <Xspaces/> чтобы было понятно сколько же пробелов остается в результате.
Ради любопытства тыкнул:
— Первые вопросы вы можете загуглить самостоятельно
— Вагон жирного текста
— Омерзительная типографика
— Код без подсветки
— Вертска на отвали
— Сомнительные картинки между вопросом и вариантами

Итого: простите, вы нам не подходите

ЗЫ «опяяять»
ЗЫЗЫ прокликал до последнего вопроса, на нем задержался. Господа, шлифаните текст регекспом \W, а то что там написано просто в утиль, не читая и уж тем более не запуская)
8/13, вопросы с кодом наобум.
Надо просто больше вариантов ответов давать.

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

9/13, но блин! Как же тяжело читать. Если бы не любопытство, бросил бы на третьем вопросе. Обычно любименькая IDE делает модненькую расцветку, где не надо тратить дополнительное время на вчитывание. И даже не знаю что посоветовать, обычно у каждого расцветка своя.
P.s. С java в последний раз работал наверное в 2009-ом.
PS: А с чем сейчас работаешь?
Objective-c, swift.
iOS? Если предыдущие опыт был с Java, это был кровавый энтерпрайз или Android? Что, по ощущениям, приятнее и понятнее?
Да. Опыт перехода был почти 10 лет назад. Некоторые нюансы перехода могли забыться. Вроде как особыхпроблем не было. А так, помню как с ребятами ходили и обсуждали: этот objective-c ерунда, а вот Java… :)
Я помню страшные баттлы типа windows vs linux. Не знаю, зачем все это было нужно, но было. Сейчас уже пришло понимание, что у каждого инструмента свое назначение и лучше брать то, что лучше подходит, а не то, что у соседа.
Сейчас уже пришло понимание, что у каждого инструмента свое назначение и лучше брать то, что лучше подходит, а не то, что у соседа.

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

На ObjC действительно смотришь как на НЛО, пока не попробуешь его понажимать руками. Оказывается — очень выразительный инструмент. На голову выше чистого Си.

Ответ в задаче про стримы неправильный.


Скрытый текст
public Set<String> findLengthyMelodiesNew(List<Album> albums) {
    return albums.stream()
        .flatMap(album -> album.getMelodies())
        .filter(melody -> melody.getLength() > 120)
        .map(melody -> melody.getName())
        .collect(toSet());
}

Если при рефакторинге классы не менялись так, чтобы getMelodies() возвращал Stream, то этот код не скомпилируется, т.к. flatMap() требует чтобы функция возвращала Stream, а здесь она вернет List или другую коллекцию. Про правки класса в условии задачи ничего нет, да и вообще — возвращать стримы из геттеров это мягко говоря не самая распространённая практика. Тест же утверждает что правильный ответ — скомпилируется и будет работать.


Более того, getMelodies() не мог изначально возвращать Stream т.к. в первом куске кода результат getMelodies() используется в for, что не скомпилируется для стримов (они не Iterable => нельзя foreach).


Чтобы скомпилировалось, нужно явно вызвать stream() на результате getMelodies():


        .flatMap(album -> album.getMelodies().stream())

Вопрос 3 предполагает активное использование com.google.common.collect.AbstractTable из библиотеки Google Guava, иначе для ответа придётся обратиться к документации или любимой среде разработки.


Интересно что класс для 12 вопроса называется Q13, а для 13 — Q14. Изначально было 14 вопросов?


Ну и про стримы там выше уже написали.

Отличный результат!

Вы это серьезно?

В компании решили перейти на 8 версию Java

...


Денис любил играть на гитаре, поэтому его сделали ответственным

Да вы просто компания мечты-2019 с адекватными управленческими решениями!
За var в production-коде вообще убивать надо.

Почему бы не начать использовать var в production-тестах?

Если по-быстрому что-то накидать в блокноте, запустить один раз и выкинуть, то можно и var.


Если же в долгоживущем коде, даже в тех же тестах, то зачем?
Читаемость это ухудшает, здесь это как раз отлично было продемонстрировано, а плюсов по сравнению с «набрать .var и нажать Tab в IDEA» — никаких.

НЛО прилетело и опубликовало эту надпись здесь
11/13 ответил честно.

Поздравляю, отличный результат!

12/13
Вау! Наверное, вы сеньор? Но чем больше мы растем и развиваемся, тем большие перспективы открываются впереди. Вы нужны EPAM, а EPAM нужен вам — здесь вы сможете стать менеджером проектов, архитектором решений или крутым экспертом, который известен не только в компании, но и во всей отрасли. Компания может предложить пять карьерных путей, причем двигаться можно и вертикально, и горизонтально, меняя специализацию.
Угу, а в моей заявке на вакансию в EPAM мне как-то написали «Primary skills: JavaScript» вместо Java…
(ง ͠° ͟ل͜ ͡°)ง

Вопрос 9 — Неправильный ответ.
В инструкции .flatMap у коллекции пропущен вызов метода stream().
Оригинал: .flatMap(album -> album.getMelodies());
Правильно: .flatMap(album -> album.getMelodies().stream());


Следовательно правильный ответ — 2, а не 1 как сейчас.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий