69

Собеседования

Недавно мне нужно было найти себе в команду middle backend разработчика. Я провёл собеседования с двумя десятками человек и сказать, что я в ахуе - это ничего не сказать. Контора у нас софтверная, поэтому есть во-первых свои люди, которые сидят в ожидании проектов (на так называемом бенче), а во-вторых, которые у нас сейчас не работают, но с ними уже поговорил HR и направил на техническое собеседование. То есть у первых мидл вроде как подтверждённый, а вторые
заявляют, что на него претендуют.
Я в курсе, что сейчас уровень упал, поэтому решил не упарываться и не валить какими-то хитровыделанными вопросами. Был буквально один вопрос что такое SOLID, пару вопросов по специфике языка, пару вопросов по базам (что такое индексы). И небольшое тестовое задание: реализовать метод для подсчёта рабочих дней между двумя заданными датами.
Итог:
- никто не ответил ни на один вопрос по базам.
- никто не рассказал про SOLID в лучшем случае помнят что такое S.
- язык половина не знает и не понимает.
- тестовое задание "сделали" 2 из 20. Хоть в каком-то примерно работающем виде. Двое отказались даже начинать, когда узнали, что нужно делать в браузере и без гугления.
Я ещё могу понять, что со стороны может приходить кто угодно, но блин там половина была наших, которые имеют этот уровень и получают соответствующую зарплату.

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

Лига программистов

2.1K постов11.9K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

Вы смотрите срез комментариев. Показать все
84
Автор поста оценил этот комментарий

Я вот 10+ лет в программировании.


Что такое solid знаю, умею, применяю, но каждый раз когда нужно собеседоваться учу заново. Или вы думаете я как молитву определение солида перед сном читаю?


Вопросы по SQL? Меня недавно спросили что такое having, я ответил "не помню, применял его последний раз примерно 6 лет назад, что-то про группировку". Если у вас реальные бизнесовые задачи, тем более под нагрузкой, а не решение задачек по SQL, то с большой вероятностью, его применение будет скорее во вред, я уже молчу про дальнейшее сопровождение кода. Для аналитики полезно, но такие задачи встречаю редко.


Нормальные формы? Когда-то знал, но сейчас сложно сложить это в объяснение. Пришёл к вам бизнес с кучей запросов и сильно дешевле задублировать данные и поддерживать консистентность чем делать join. Применить 3ю нормальную форму и хотелось бы везде, но далеко не везде это выгодно.


Наследование, инкапсуляция и полиморфизм? Мало кто как молитву его повторяют, чтобы помнить всегда. Да применяю. Но я не лектор в институте чтобы сразу и просто это объяснить, у меня другие сильные стороны, и они не в объяснении.


Индексы? Я знаю про b-tree, и что есть другие. Знаю как правильно их создавать чтобы они использовались. Знаю как проверить. Но абстрактные вопросы для меня сложны.


Тестовое задание? Без гугления и браузере?

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


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


Сумбурно как-то получилось, но надеюсь смог донести мысль.

раскрыть ветку (43)
31
Автор поста оценил этот комментарий

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

ещё комментарии
21
Автор поста оценил этот комментарий

О, блять, созвоны! Все программеры, которых знаю, тратят туеву хучу времени на эти блядские созвоны. Как ни спросишь: у меня через час созвон. Как-то раз краем уха слышал такой "созвон": натужное блеянье человеков, плохо умеющих в четкие формулировки и постановки задач, зато жонглировать новомодными терминами - на уровню Дю солей. Получасовое пиздобольсто легко уложилось бы минут в пять, но как же тогда изображать многотрудное пахание с рассвета до заката.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

На последнем проекте были созвоны только по делу ... первое время ... золотое было время ... потом пришли менеджеры 🥲.

3
Автор поста оценил этот комментарий

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

раскрыть ветку (9)
1
Автор поста оценил этот комментарий
Может у вас слишком высокое мнение об интерфейсах? Если хотите его разработать, то стоит самому захотеть и не нужно чтобы кто-то об этом просил.
раскрыть ветку (7)
5
Автор поста оценил этот комментарий

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

раскрыть ветку (6)
1
Автор поста оценил этот комментарий
Я могу только выразить вам сочувствие, что у вас настолько примитивные проекты, которые не подразумевают использование интерфейсов.
Либо, как вариант, вы таки не понимаете как их применять.
раскрыть ветку (5)
4
Автор поста оценил этот комментарий

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

раскрыть ветку (4)
Автор поста оценил этот комментарий
В своё время я ушёл из небольшой фирмы именно по этой причине. Примитивные проекты с очень ограниченными технологиями. В энтерпрайз секторе конечно куча своих погремушек, но чего уж не отнять так разнообразия технологий.
И тем не менее, я уверен, что даже в очень небольшом проекте можно использовать интерфейсы. Или если вы пишете тесты и используете моки, то вам без них тоже не обойтись.
раскрыть ветку (3)
0
Автор поста оценил этот комментарий

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

раскрыть ветку (2)
Автор поста оценил этот комментарий

Если у вас есть желание и энтузиазм что-то улучшать и развиваться - проявите инициативу.

У вас видно недовольство, но непонятно чего же собственно вы хотите и что сделали чтобы это получить.

Руководители бывают разные, проблемы и стиль управления разные, но обычно все хорошо относятся к тому когда сотрудник приходит, показывает проблему(реальную, не придуманную) , описывает 1-2 способа её решить и предлагает сам все сделать, только нужно подтвердить что это нужно.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Тут проблема в самой системе. Я уже пробовала работать руководителем, улучшать и тд. Мне не понравилось, ответственность это не мое. Но речь то тут не об этом. А о том, что на собеседованиях все делают вид, что у них вся работа построена защибись как круто. На деле же - все через жопу, как у всех.

0
Автор поста оценил этот комментарий

Да ну. В моей практике интерфейсы постоянно встречаются, а вот абстрактные классы очень и очень редко

1
Автор поста оценил этот комментарий

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

Что спрашивать будете? На слово поверите что каждый первый творческий и умный гений, сам решит задачу любой сложности, но вот прямо при вас даже сортировку или простой алгоритм написать не может, в типах данных не ориентируется и про hashtable не может рассказать ничего кроме магического слова хеширование?

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

Я был на той стороне, и делал то же самое. Ибо согласен с вами сложно определить критерии подбора.


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

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Два дня назад собеседовал кандидата. Общие рассуждения о сферических конях - легко.

Простейшие примеры в коде - тупик тлен и безысходность.

Все мы как-то приходим к своим сложившихся практикам собеседования, чтобы проще достигать целей и уменьшать риски. У меня получилось так, что я вначале проверю технические навыки, а потом можно и абстракции обсудить. В чем смысл для меня обсуждать синьорские темы с бараном? Зачем мне слушать его ахинею?

Разумный подход двигаться от простого к сложному. Простое не прошли - не мучаем себя, следующий. У меня нет задачи принять всех косноязычных и убогих, которые ни код не напишут, ни книжку не могут открыть и к интервью подготовиться, ни пример кода разобрать. Зачем мне такие? С ними же работать а не воспитывать их.

Пусть идут в конторы где презирают теорию, где главное как-то написать работающий код и не вникать в детали, где солид это какая-то хуета оторванная от жизни. Культура разработки в разных конторах разная, каждый себе гнездо найдёт.

Опять же задачи везде разные.

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

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

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

раскрыть ветку (3)
0
Автор поста оценил этот комментарий
Я вас понимаю, может и вы меня понимаете. Я с таким девом работал. Даже пост про него писал Странный коллега
кстати это мне всё-таки удалось его заменить, вот не хочу наступить на те же грабли.
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Почитал, любопытное.

Как интересный кейс я бы предположил такие варианты, в порядке уменьшения вероятности:

- лень и отсутствие мотивации (проводить 1-1, понять статус ситуацию, его цели и обсудить проблему с ним самим)

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


Вы как-то пытались решить? Что пробовали? Правда интересно, не подъебываю. В вашем посте нет ничего о том как вы это пробовали решить. Или вы тогда не были тимлидом?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Уже был. Делал именно то что вы предлагали: 1:1, обсуждали, что ему нравится делать, в чём он видит проблему? Говорил с его менеджером по развитию. Прописывали планы на год. Я там чуть ли не большими буквами писал, если есть проблемы с задачей, то сразу спрашивать совета других. Пофиг.
Я сделал вывод, что до этого он довольно долго работал на проекте, где нужно было тиражировать уже имеющиеся решения. Это было не совсем программирование, а автоматизация тестов. На такой копипасте он себя неплохо чувствовал. А у нас всё-таки нужно было постоянно что-то понимать, разбираться в зависимостях.
0
Автор поста оценил этот комментарий

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

раскрыть ветку (5)
8
Автор поста оценил этот комментарий

Вы ж не на собесе у ТС. Можете погуглить))

0
Автор поста оценил этот комментарий
Having оператор для фильтрации агрегированных функций или групп.
Я очень хорошо знаю sql, но несколько теряюсь, когда на собеседованиях просят рассказать про какую-нибудь супер-мега-редкую хрень и смотрят хитро - типа знаешь или нет. Вроде "а вы ведь знаете, что такое setseed?" Знаю. Потому что в универе базы данных преподаю, но нахера вам на постоянной основе нужна функция установки начального числа в рэндоме - понятия не имею. Мало того, я вообще сомневаюсь, что существуют некие люди, которые наизусть знают все встроенные функции и операторы всех СУБД. Зачем? Все это обновляется, а искать и читать документацию я умею.
раскрыть ветку (3)
0
Автор поста оценил этот комментарий
Хорошо знать сиквел - это очень полезный скилл. И, конечно, это не только уметь приджоинить несколько таблиц. Хотя почему-то многие так думают.
Но если речь идёт о таблицах миллиардами записей или о тысячах инсертов за секунду, то без понимания, как это устроено, уже не обойтись. Поэтому, если дев пишет оно мне не надо и не будет надо, то его уровень - формочка для редактирования бд и признание, что развитие ему не нужно.
раскрыть ветку (2)
0
Автор поста оценил этот комментарий
Но в ваших вопросах я совершенно не вижу всего, что требуется для "миллиардов записей". Индексирование в таком случае скорее несёт вред, чем пользу - ибо нерентабельно содержать такое количество индексов. То есть для дева в больших данных я понимаю зачем нужны вопросы: об оптимизации, об уровнях изоляции, быть может об оконных функциях, партиционировании в конце концов. Мало того, подавляющее большинство моих коллег - и бывших, и нынешних, легко ответит вам на эти вопросы, хоть мы и не бэкенд совсем. Принципы ООП - вообще голая теория, сомневаюсь, что есть те, кто как молитву их помнит, но в работе вполне себе пользуют
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Да, вы правы, я искал дева не на миллиарды записей, к счастью. И согласен, что в этих случаях стоит отходить от реляционных баз. Я утрировал чтобы показать, что тезис "если оно мне до сих пор не пригодилось, но ненужная фигня" совершенно несостоятельный и показывает, что человек не особо стремится обучаться. А для моих задач вопросы были вполне уместные.
ещё комментарии
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку