Pull to refresh

Comments 56

когда я на мидла собеседовался, меня спрашивали по тому, какие проекты я делал и что именно я в них делал, какими методами и либами пользовался. Мне рассказали их специфику работы и спросили, как бы я сделал тот или иной модуль для них, вот просто в общих словах, используя свой опыт. Джуновских задач типа «назовите все методы object или чем отличается интерфейс от абстрактного класса» не было.
С одной стороны, такой подход выглядит здраво, а с другой — где гарантия, что Вы, извините, не быдлокодер? В технологиях человек разбирается, даже применяет к месту, но это ведь не залог того, что он на самом деле грамотный разработчик, мне кажется.
Для этого и существует испытательный срок. Потому что даже тестовое задание толком мало что сможет продемонстрировать. Кроме того, бывает, что берут человека на совершенно новую для компании область, в которой напрочь отсутствует экспертиза у кого-либо. Ну и как тогда оценить за полчаса-час? Только беседа плюс результаты реальной работы.
А по-честному, Вы часто встречались с увольнением после испытательного срока из-за того, что кандидат не оправдал ожиданий? То есть, если человек сильно не косячит, на работу вовремя приходит и старается, просто не особо талантлив, культуры разработки у него нет, или сообразительности не хватает?
Нечасто, но бывало. Ну вот сами посудите, особый талант или фантастическая сообразительность какому проценту фирм нужна? И, что самое интересное, их-то и проверяют обычно в тех фирмах, где это меньше всего нужно. А культура разработки дело наживное.
Интересно и познавательно. Еще бы на junior такое послушать — c++ или java тоже… примерился б, да чего полезного вынес себе
Спасибо.
Собеседования на Java Junior на мой взгляд довольно хорошо освещены, как здесь, так и на других ресурсах. В свое время я например использовала этот список вопросов. А вот от собеседования мидл-уровня было непонятно чего ждать (и как выяснилось, от него правда непонятно, чего ждать =))
спс огромный. Бум читать.

P/S: Главное сменили работу и все получилось. Остальное вторично!
В нашей стороне часто пытаются запугать особенностями транзакционного взаимодействия.
Причем начиная с уровня JPA, а кончая в дебрях БД а-ля Oracle.
Причем как правило в таких местах если нормально писать, то всех этих «особенностей», с которыми большинство народа не знакомо, аккуратно обходятся, т.к. простота поддержки в большинстве случаев весит намного больше, чем хитрая магия lock'ов для небольшого выигрыша в производительности, которую, к тому же, никто не мерил…
В Томске ощущается сильное превышение спроса над предложением даже на PHP девелоперов (хотя вакансия, казалось, самая популярная). Я в январе, сразу после праздников начал искать работу в офисе.Искал должности мидла в Rails/PHP. Сразу было множество откликов и приглашений на вакансию PHP девелопера. Из 4х компаний 3 дали тестовое задание сроком на неделю. Выполнил только первое дня за 3, процентов на 80 (на остальные не было ни сил ни желания, учитывая, что вакансии по «интересности» были примерно равны). Сразу прошел. На остальные 2 просто не хватило времени и сил. При этом многие работодатели жалуются, что вообще нету разработчиков. Хотя у меня в PHP опыта максимум пол-года было. Правда по общему опыту Rails вывез не слабо (отвечал на общие принципы веба и паттернов). Интересно было бы узнать, есть ли еще такая мания где-нибудь на «недельные» тестовые задания?
Так в Томске и работать негде особо. Те ~5 компаний, в которые имеет смысл идти, и так заполнены «под завязку», а остальные over9000 студий и даром не нужны.
На Python (Django) есть где-то 3 компании, которые делают интересные проекты, на PHP появляются все больше толковых компаний. Просто я выяснил это, уже после трудоустройства, когда, как по закону подлости, начали звонить и предлагать интересные вакансии. К тому же, многих томичей в Новосибирск зовут.
Это почти исключительно PHP-шная прерогатива. Объясняется всё просто — на системны языках (Java, C, C++, ...) недельное задание дать сложно, ибо практической пользы точно не будет, в то время, как в PHP результат такой работы, при качественном выполнении, вполне реально куда-нибудь пристроить.
Но тем не менее на Java вакансии мне почти всегда задание выдают.
Хм… Возможно я не в курсе (3 года уже не менял работу), но при предыдущем поиске никаких заданий на должность Java-developer мне не высылали. Может это особенность каких-то отдельных фирм?
Может быть. Но факт остается фактом. Мне постоянно дают задания на неделю.
А можете заслать сюда семпл? Просто даже любопытно.
Я после работы дома поищу и напишу в личку.
Вот например задание, которое у меня лично заняло пару вечеров:

Необходимо создать простое веб-приложение (под Tomcat), читающее из БД данные о некоем дереве текстовых элементов и отображающее его в браузере пользователя. В дереве должна быть возможность сворачивать/разворачивать узлы дерева, добавлять узлы, удалять, искать по дереву (узлы, содержащие в себе или в дочерних элементах искомый текст, помечаются красным).
Задача должна решаться как можно более простыми и легковесными средствами, но с ориентацией на возможную расширяемость и большое количество исходных данных. При этом можно использовать любые java и javascript фреймворки и библиотеки, находящиеся в свободном доступе.
Дополнительные функции — приветствуются.
Предоставить исходники в виде Maven-проекта, sql-скрипты для создания структуры БД и заполнения тестовыми данными, а также рабочую версию приложения вместе с Tomcat сервером.
Если честно, это задание выглядит как попытка выполнить бесплатно задачу junior-программера усилиями кандидатов пришедших на собеседование.
эта задача выполняется за полчаса-час
>читающее из БД данные о некоем дереве
это проверяет знание и умение хранить графы в базе, а так же умение читать из базы
если подобных умений нет — лишний час для гугления и копипасты
> В дереве должна быть возможность сворачивать/разворачивать узлы дерева, добавлять узлы, удалять, искать по дереву (узлы, содержащие в себе или в дочерних элементах искомый текст, помечаются красным).
обыный круд, JS для отображения дерева гуглится за 2 минуты, прикручивается за 10
>Задача должна решаться как можно более простыми и легковесными средствами, но с ориентацией на возможную расширяемость и большое количество исходных данных.
это ересь и можно игнорировать, т.к. это не задача джуна, выбирать «простые технологии», он не в состоянии ещё выбирать
>большое количество исходных данных.
обычнй пейджинг

Мне вот такое давали
1. Создать табличку для хранения аутентификационных данных клиентов: номер телефона (мобильный), пароль (желательно хеш от пароля).
2. Табличку с балансами зарегистрированных агентов с точностью до копеек.
3. Создать сервлет, принимающий XML-запросы методом POST, который обрабатывает 2 запроса (см. ниже). Обеспечить целостность данных в БД. Также учесть, что к сервлету могут обращаться несколько пользователей одновременно, с одинаковыми типами запросов и данными в запросах.
и дальше описание xml запросов и проч.

Мой результат сразу и пристроили…
Однако, почему-то компании забывают, что соискатель явно не только у них собеседуется. Например последняя компания мне понравилась больше всех, но я просто не мог себе позволить еще одну неделю тестовых заданий, т.к финансовая ситуация была критичной. Однако в другой области веб, при собеседовании на Ruby on Rails, допустим, мне всегда хватало просто показать профиль на GitHub.
Простите за оффтопик, но если вы пишете от женского имени, то почему у вас в профиле «Его»? :)
потому что у меня был указан «другой» пол )
исправила, чтобы не вводить людей в заблуждение.
Идеальная комбинация: п.1 + п.4. Не встречалось разве таких?
Ну эта классификация не точна, конечно, в той или иной мере как правило задавали общие вопросы по опыту работы… в п.1 имеется в виду отсутствие технических вопросов по теме.
А у меня совсем другой опыт. В конце января выложил своё резюме и 0 приглашений. Но есть 2 больших но, не Москва( даже очень не Москва) и опыта у меня на год меньше в java.
UFO just landed and posted this here
Так нормальный рынок java-программистов по России — только в Москве и СПб…
Переезд, как вариант. Без иллюзий конечно. Для себя, я лично, нахожу такой только выход и большое желание в том.
Ну если компания берет реального алгоритмиста, то «каков порядок сложности алгоритма поиска в HashMap?» вполне себе ок вопрос. Спросить, почему так и что вообще такое этот «порядок сложности» — также норм. 95% вообще не умеют оценивать сложность алгоритмов.

Хорошее начало собеседования — это когда тебе просят дать ссылку на github, bitbacket или какой-то другой твой репозитории. Тут уж легко понять, говнокодер собеседник или нет.

Потом, будьте проще к тех. спецам. Вот сидел чувак, кодил, в голове задачи прокручивал, а к нему подошел босс и сказал: «слушай, тут чел на собеседование пришел, иди пообщайся с ним». Не всегда с ходу созреет десяток хороший вопросов для спеца.
Так я не то, чтобы обвиняю кого-то…
Самой, еще в бытность PHP-истом, пришлось отсобеседовать несколько человек на миддл-позицию, причем в идеале было бы найти более опытного разработчика, чем я сама… :)
Я долго ломала голову, что же спрашивать, но мне тогда показалось, что элементарные вопросы по основам просто отпугнут людей, подумают, что на самом деле ищут джуниора.
Вопросы начального уровня нужны — это однозначно. Нужно же понять, что человек не идиот.
Но это должен быть только один из этапов собеседования.
Однажды все вопросы были начального уровня, то это меня действительно отпугнуло. И в ту контору я не пошел.
Хорошее начало собеседования — это когда тебе просят дать ссылку на github, bitbacket или какой-то другой твой репозитории. Тут уж легко понять, говнокодер собеседник или нет.

спорно (если только ты не фрилансер): могут побояться что в рабочее время будешь кодишь свои проектики.
Почти аналогичная в Петербурге.
Когда искал работу (смотрел на вакансии Middle Android Developer), в большинстве вакансий встречались штуки типа «знание Android SDK» (интересно, где они видели Android-программистов без знания SDK?), «знание ООП» (без комментариев),
(прошу прощения, случайно отправился текст)… «умение работать с Git», «опыт использования REST API» и прочие потрясные вещи, от которых прям захватывает дух.
Естественно, все компании обещают «интересную работу» и «отсутствие бюрократии», но на деле почти все занимаются аутсорсом и пишут однотипные приложения. На собеседованиях спрашивают про жизненный цикл активити и про интерфейсы в Java. Короче, ад, который может быть сложным для junior'а (и то вряд ли, потому что они, как правило, готовятся к собеседованиям), но является полной ерундой для middle'а.
При этом после того, как работа все же найдена, продолжают активно звонить и предлагать кучу всего «интересного» в таком же духе.

Думаю, подобное же справедливо для большинства вакансий, которые так или иначе связаны с программированием.
Это точно. Ваши гораздо лучше.
Ну и если по существу. Я так и не понял о чем статья. Описаны действия для поиска работы? Ну так они очевидны. Описаны типы собеседований которые девочка прошла? Классификация — говно. Она сугубо эмоциональна, во многом очевидна и неполна. Не нужно наполнять хабр говном, его и так тут полно. Есть шикарнейшие технические статьи, да. Но их всего на весь хабр десятка 2 наберется от силы. В остатке новости, эмоциональная муть, мануалы для детей и в принципе неплохие сугубо узкоспециализированные статейки которым место на других ресурсах где есть более шарящие люди.
Inversion of Control (IoC) (Also known as Dependency Injection), я так думаю.
Через полтора часа как раз иду на собеседование. Почитал.
UFO just landed and posted this here
Главное выбирать компанию, а не зарплату.
Если предлагают неадекватные задания, анкеты, психологические тесты и подобный бред, а первым делом не рассказывают о проекте, а говорят «у нас динамичная развивающаяся компания, приходите на собеседование» — таких можно сразу вежливо посылать.
Согласен про кампанию, но про тесты и анкеты — во многих крупных банках с интересной работой так поставлен процесс HR. Приходится иногда пройти порядка 5 интервью, чтобы попасть на место, куда хочется.
Понятно, если вы в крупный банк собеседуетесь, то можно и потерпеть.
Но если вам звонят и не представляясь говорят «Мы нашли ваше резюме, приходите на собеседование», а на вопрос «Кто вы?» отвечают «Мы динамичная компания, у нас есть проекты, нам нужен программист» — это плохой знак )
Осенью как Android-разработчик проходил собеседования.
Забавно, но по самой Java практически вопросов не было. Ну да, были там вопросы про типы исключений, разницу между коллекциями и т.п.
HR техническое как правило ничего не спрашивает, лишь задаёт вопросы, чтобы убедиться в том, что в резюме правду написали (подтвердили это).

Затем идёт собеседование либо уже с одним из разработчиков, либо с тех. диром. Если тех. дир сам не разрабатывает ничего, то там вопросы вообще абстрактные из разряда: «что такое полиморфизм», «абстрактный класс». Ну, вы поняли.

Если тех. дир сам в теме, или если собеседует вас разработчик, то вопросы уже поинтересней, но зачастую всё равно странные. Ведь как правило разработчика нанимают уже под какую-то задачу, поэтому спрашивают часто: «а сможете сделать то-то и то-то как вот в том и том приложении» и т.д.

Бывает, что спрашивают вообще не по теме, например про SQL (хотя я вроде как к серверной части не должен иметь отношения), аргументируя это тем, что если спец. по Oracle уйдёт в отпуск/заболеет, то возможно придётся взять на себя часть его обязанностей. Такое лучше сразу отметать, ибо вас будут дёргать с одной задачи на другую, и роста в какой-то конкретной области не будет.

p.s. я выбирать старался с уклоном на интересность проектов и чтобы работа над этими проектами позволяла мне расти как специалисту. Но так уж вышло, что вдобавок ещё попался хороший коллектив и зарплата, на которую рассчитывал )
Всегда задаю вопрос про абстрактные классы и интерфейсы. После того как кандидат на сениора не смог на него ответить.
Ага, в свете JDK 8 вопрос становится особенно актуален.
Отличный пост. Тоже всегда интересовался вопросов, чем отличается вопросы на junior позицию от middle/senior. По моему личному опыту хорошее интервью (читай: впечатление от компании) на 90% состоят из тех. собеседования. Вам же с этими людьми работать в конце концом.
Немного дополню пост, сам в этот же период искал работу на middle/senior java developer, зп от 100к~110к на руки, предложений много, весь треш в основном проходит на первой неделе, на второй попадаются уже фирмы поинтересней.
Собеседования самые разные, от «назовите все методы класса Object» до задач про горящие веревочки(каюсь, не решил), было собеседование где попросили ссылку на Github репозиторий, считаю это неплохим подходом. Было собеседование где просили сделать задание примерно на день работы а затем на самом собеседовании сказали что им нужен программист попроще и что у них ограничен бюджет, только время потратил.
Если кто собирается искать работу, советую хорошо подготовить JavaSE, в остальном сами собеседующие мало чего знают за гранями их повседневной работы, поэтому если вас будут собеседовать на должность JavaEE(EJB, CDI, JPA, JSF), либо Spring разработчика, то это не значит что собеседующий отлично все это знает.
Опять же модель памяти и многопоточность тоже следует почитать, сюда же и GC приплюсую. Народ который любит самоутверждаться за ваш счет скорее всего будет спрашивать именно это.
Алгоритмы знать нужно на базовом уровне — это основные сортировки, поиск по дереву, знать что такое бинарное дерево(и поиска тоже), кратко знать виды деревьев поиска, АВЛ, Красно черное, Хеш таблицы, не нужно уметь писать их реализацию, мало кто это может сделать с ходу(за исключением самых простых реализаций).
Важное знание — умение оценивать сложность алгоритмов, если вы будете это уметь делать, то остальное будет значительно легче для вас.
Сам я на работу устроился, зарплата превысила указанную в резюме сумму, с интересностью работы пока разбираюсь.
Опять же модель памяти и многопоточность тоже следует почитать, сюда же и GC приплюсую. Народ который любит самоутверждаться за ваш счет скорее всего будет спрашивать именно это.
Мидлу должно быть стыдно не знать JMM. Особенно, если его берут на написание многопоточного кода. Аналогично про GC. Хотя бы базовое представление иметь необходимо.
Я почти не разделяю людей на группы по уровню теоретических знаний, для меня намного важнее как конкретный человек решит конкретную задачу.
Отличие мидла от джуна в том, что мидл самостоятельно приобретет нужные знания если они ему потребуются + правильно ими воспользуется.
Несомненно если человек пишет многопоточный код ежедневно он должен очень хорошо понимать и разбираться что делает.
С другой стороны если многопоточный код встречается достаточно редко в работе, достаточно иметь только представление.
Хотя не иметь никаких знаний в этой области должно быть действительно стыдно для разработчика.

Да и вообще понятие джун/мидл на рынке и внутри компании разные вещи абсолютно.
Хотелось бы знать, если сейчас у российских рекрутеров спрос на продукты типа coditility, где за определенный отрезок времени нужно, простите за сарказм прямоту, насикать самое эффективное решение поставленной задачи, типа сортировка массива или equilibrium индекс массива? Ну или а ля сертификационные тесты на время типа этого?

От себя могу добавить что мне приходилось встречаться с тестами типа кодилити в Германии и Бельгии, а с тестами типа IKM в Великобритании. И каждый рекрутер перед тем как пригласить вас на собеседование предлагает вам пройти такие тесты. Кому-нибудь из аудитории приходилось сталкиваться с такими вот тестами и что вы по этому думаете?

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

Вы не представляете мое разочарование, когда после IKM тестов: Java(90min, 86 points), J2EE(90min, 78 points) и ASP.NET(120min, 80 points) я пройдя первое телефоное собеседование понял что работодатель ищет среднего разработчика на какой то кастомный WebSphere зафиксиный на java 1.5 с почти голыми сервлетами и jsp на десерт.
Sign up to leave a comment.

Articles