69

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

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

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

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

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

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

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

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

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

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

Это ваш код или кандидата? Это же кусок говна.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Там было пусто, уже кто-то из пикабушников успел написать 😂
6
Автор поста оценил этот комментарий

но вот вы таких и ищете?

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

Вот я и пытаюсь донести до ТС.

Что знать конкретное, не значит уметь решать задачи :))


раскрыть ветку (1)
3
Автор поста оценил этот комментарий
100% согласен, есть программисты, которые могут отлично пройти интервью, но не уметь применять эти знания. Про сути они зазубривают верные ответы без понимания.
показать ответы
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Когда я учился в универе, в далёких 90-х у одного из лучших преподов была присказка: "Будешь знать теорию - будешь решать задачи". Я с ним согласен.
1
Автор поста оценил этот комментарий

ваши решения на проекте правильные

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


А без гула вообще не выдам никакое решение.

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

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

При этом срок жизни проекта полтара - два года, работа в одной компании 3-5 лет. Тоесть за 10 лет у вас пяток проектов и знание 2-3 стеков технологий. Совпадение вопросов собеседования на новом месте с вашим опытом будет процентов 20.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Это зависит от индустрии. У нас никто проекты каждые три года не переписывает. Сейчас мы поддерживаем проекты которые были начаты 10 лет назад, но совершенно не редкость встретить что-то, что было написано и 20 лет назад.
5
Автор поста оценил этот комментарий

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

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

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Может у вас слишком высокое мнение об интерфейсах? Если хотите его разработать, то стоит самому захотеть и не нужно чтобы кто-то об этом просил.
показать ответы
2
Автор поста оценил этот комментарий
Вы ведёте кандидата? Что я имею ввиду: когда я провожу собеседование то ставлю задачу себе не получить решение, а понять как мыслит. То есть слушаю его, если нужно то подсказываю, конечно не всем и не всегда, но если видно что человек нервничает то можно и подсказать. Пол часа норм, как по мне, у нас задачи были проще, но и времени на 15-20 минут всего.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Да, мы с радостью даже подсказываем. Главное, как он мыслит и какие вопросы задаёт. Например вопрос, что делать, если входные данные не валидны задал один!!! человек.
показать ответы
1
Автор поста оценил этот комментарий

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


Поэтому я стараюсь избегать существованиея иерархии классов, которые не являются абстрактными.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Прекрасно работает и в реальной жизни, если разработчик понимает, что хочет и как это сделать. Даже в больших и сложных проектах наследование обычно это не какие-то мега классы с множеством свойств и методов. Хорошо спроектированная система - это набор небольших классов.
Если в вашей реальности у вас получается что-то монстрообразное, то скорее всего вы что-то делаете не так. Точнее, если исходить из вашего примера, вы точно что-то делаете не так.
показать ответы
1
Автор поста оценил этот комментарий

Лень писать длинный ответ. Но если в кратце, то это самый тупой принцип, которого надо избегать. Почитайте критику нашего богоугодного ООП от гомогеев функциональщиков - она вполне здравая. Наследование в ООП это штука, которая все портит. Потому что вместо того, чтобы быть инструментом описания абстракций оно стало инструментом следования DRY. Почему DRY не всегда хорошо, это отдельный спор.


Программирование это процесс представления объектов и процессов реального мира с помощью упрощённых моделей и кодирование последних с помощью команд, которые способна исполнить конкретная архитектура. Реальный мир не следует этому принципу, почему код должен. Если у вас есть класс "шлюха" и у вас появилась потребность создать класс "связанная шлюха", то очевидным решением будет создать класс наследник, который в случае вызова метода "сосать" будет выкидывать исключение с с сообщением о кляпе во рту.


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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Проблема в том, что вы не понимаете суть наследования, совершаете ошибку, а потом иллюстрируете этим якобы ошибочность принципа.
Правильно спроектированное наследование должно расширять, а не сужать возможности базового класса.
показать ответы
0
Автор поста оценил этот комментарий
Тут два варианта, либо у вас зп ниже дна рынка и идут соответствующие кандидаты, либо вы так сформировали требования на вакансию и ваш эйчар не умеет проводить скрининг

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

А так да, нужен тебе разраб под микросервисы, спрашиваешь про клауд, кубер и гарантированную доставку через брокеры, даёшь конкретные кейсы, а не гоняешь по голимой теории. Нужен под безопасность, упарываешься в кейклок, спринг секьюрити, госты, реверсы и т д. Вы же мидла набираете, а не джуна. Или у вас даже матрицы компетенций нет никакой, чтобы отличать один грейд от другого и всех подряд одно и то же спрашиваете? И вопрос - что даст, знание теории солид, если не видел код человека?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Зарплаты более-менее на уровне, то есть до дна далеко. И матрицы есть и мы их после каждого интервью заполняем. Но у меня сложилось впечатление, что на полном безрыбье туда стали ставить натянутые числа. И по бумагам вроде мидл, а поскрести - там и джуна нет. После этого открытия я написал этот пост.
0
Автор поста оценил этот комментарий
В it вообще проблема не с кадрами, а с наймом. Когда собеседующий вместо того, чтобы плясать от опыта и задавать узкие кейсы в процессе интервью - дрочит по одним и тем же вопросам

Найм строится по чеклисту, ответил на 80% вопросов - берём. Пусть даже это джун, тупо зазубривший базу, но не имеющий практического понимания применения солид

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

Скорость обмена информацией в общении заметно отличается от монолога, напечатанного с телефона.


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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Поддержу коллегу. Попробуйте обосрать Барбару.
показать ответы
0
Автор поста оценил этот комментарий

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

throw exception ("error description") в разных местах?

Насколько глубокое наследование используете в своих классах?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Все крупные проекты имеют свой набор исключений.
Наверно в 95% случаев наследование ограничивается одним уровнем.
0
Автор поста оценил этот комментарий

Прикольно. Если не секрет, какие были вопросы по языку?


Я С++ разработчик и порой вопросы на собесах попадаются типа:

Что такое виртуальное наследование?

Или

Что будет с аллокацией памяти при new A; если конструктор выкинет исключение?

Или мой любимый:

Чем отличается make_shared от конструктора shared_ptr?


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


Понимаю, что у вас скорее всего другой язык, вряд ли вы backend на С++ фигачите, но все-таки интересно.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
На понимание наследования и как работает try-catch
показать ответы
1
Автор поста оценил этот комментарий

Бодишоп? Или что-то вроде accenture?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
:) если я не ошибаюсь, то бодишопы продают девов на развес, у нас всё-таки продают команды.
показать ответы
0
Автор поста оценил этот комментарий

"Половина из них уже в нашей фирме" не могу понять - ты из яндекса, амазона или гугла?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Нет, по сути вы говорите о компаниях со своими продуктами, у нас в отличие от них компания больше консалтинговая, но сотрудников в 2.5 раза больше, чем в гугле.
показать ответы
Автор поста оценил этот комментарий
Импортозамещение ПО. Кадров свободных нет.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Дело происходит не в России.
показать ответы
3
Автор поста оценил этот комментарий
Ну кстати тестовое очень прикольное - много вариантов как сделать, много что есть обсудить. Вывести на разговор.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Воооот.
1
Автор поста оценил этот комментарий

А есть выбор?

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

Ну так я главный синьор:).

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

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

Из моего опыта собеседования Джуна:

- Почему ты в цикле использовал int а не например byte?

- эм...ну обычно используют int. В учебниках так

- ок. А чем int отличается от byte?

- эм... ну... я не знаю

А потом пришла его мама, и орала что мы не взяли сыночка потому что он не русский. :)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Да, это что я и писал. Язык не знают и не понимают. Хорошо ещё не спросили зачем нужен struct, если все используют class.
0
Автор поста оценил этот комментарий
А сколько времени вы даёте на решение?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
До получаса. Но смешно, что почти все заканчивают раньше и приносят либо говнокод, либо говорят, что не сделают.
показать ответы
0
Автор поста оценил этот комментарий

+++++:))

Если изучал все языки по немногу.

А писал большое на одном.

То и с гуглом можно разобратся если нужно в проекте новый язык.


Это как в любой сфере. Знать хорошо обзорно. А быть докой в одном.


А ТС со своим Солидом всех долбит :)))


А надо просто поговорить о прошлых проектах и их специфики, то что человек делал САМ. Там станет понятно, может ли человек разобраться в задачах и проблемах ТС.

А не искать конкретно кодера под Солид :))

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Вы сами себе противоречите. Солид - это как раз не про язык и если разработчик понимает о чём он, то да относительно неважно какие языки он знает. Хотя это, опять же, уровень понимания продвинутого джуниора. Когда в проекте есть возможность чтобы этот джуник осваивал новый язык и разбирался в технологиях. А иногда надо, что разработчик уже должен это знать и может даже учить других. Тогда вот это вот всё: "я знаю всё понемногу и если надо, то выучу" уже не канает.
показать ответы
21
Автор поста оценил этот комментарий

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

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

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

Вот Solid это для меня, да и для многих.

Это программа, а не язык :))

Cad/Cam.


Так что думаю так многие на собеседовании и понимали.


Надо ставить и объяснить конкретно, а не хрен пойми что.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Если у человека в резюме написано это слово, а оно было написано почти у всех, то предполагается, что он понимает что это, как вы думаете?
показать ответы
4
Автор поста оценил этот комментарий

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

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

Да ну, где считают? Я добрую половину комментов прочёл никто такого не говорил, один разраб отметился с таким же тезисом что и я насчёт тестовых, собственно все.


Ну а коль половина разрабов уже на проекте тогда к чему нытье в посте, что вы никого найти не можете?))

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ещё раз, они в фирме, но у них нет проекта. Они сидят на скамейке запасных и ждут когда для них проект появится. Ходят на работу попинать всякое разное, обучаться на тренингах, может работать на внутренних проектах. Вот из них я могу выбрать человека на проект себе. Такая специфика работы многих софтверных компаний.
показать ответы
10
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Как минимум потому что половина из них уже в нашей фирме и даже получают зарплату, хоть ничего и не делают. Это раз. А во-вторых тут большая часть комментаторов считает, что цель тестового задания украсть их сверхинтеллектуальную собственность и вставить в продакшн. Это не так :).
показать ответы
4
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
К сожалению, я не могу принять за аксиому, что на собеседования приходят только нормальные программисты. Более того, чаще как раз приходят те, кому не стоит связывать свою жизнь с программированием.
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ну и достаточно, если есть понимание. Хотя примеры применения должны исходить из того, что вы осознаёте что это такое.
показать ответы
6
Автор поста оценил этот комментарий
Если у тебя есть проверенные и грамотные люди, зачем искать кого-то? Ответ только один:экономия. Но экономя на кадрах, вы получаете соответствующие знания. По простому: на зарплату мотнажника инженер не пойдет, а пойдут монтажники с амбициями инженера. Из таких можно вырастить грамотных людей. Но тут вам решать:качественно, дорого и быстро или тратить время на обучение
раскрыть ветку (1)
Автор поста оценил этот комментарий
Самый очевидный ответ: а если у меня не хватает проверенных и грамотных людей? Надо их искать. Мне непонятно другое зачем ставить людям неадекватные уровни?
Автор поста оценил этот комментарий
Если сделаете тестовое занятие и ответите на другие вопросы, почему нет?
10
Автор поста оценил этот комментарий

Тоже склоняюсь, что дело в ЗП.

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Наверно есть, но там же ещё работа hr который сортирует кандидатов, а мне на собеседования попадают он кто хочет стать .net разработчиком, девопсов собеседует кто-то другой. Ну а если кто-то из .net имеет опыт брокеров, контейнеров и т.д. то он и остальное обычно хорошо знает.
показать ответы
6
Автор поста оценил этот комментарий

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

Или я вас не так понял?

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

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Наверно вы меня не так поняли.
показать ответы
40
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Вот такие примерно и приходили. То как вы без гугления сделаете это задание скажет о вас больше, чем полуторачасовое собеседование.
показать ответы
6
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
По базам я не задавал каких-то заковыристые вопросы. Что такое индексы в самом общем понятии, преимущества и недостатки. И что такое кластерный индекс. Всё.
показать ответы
6
Автор поста оценил этот комментарий

Ты все праздники без гугления знаешь со всеми переносами выходных?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ваш комментарий отлично показывает ваш уровень понимания задачи.
показать ответы
1
Автор поста оценил этот комментарий

А внутренних-то сотрудников зачем заставлять тестовое задание делать? Можно же просто посмотреть их пулреквесты.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Нельзя обычно. Они же работают на проектах клиентов, а у меня к этим репозиториям доступа нет.
10
Автор поста оценил этот комментарий

Если вы и с соискателями так же общаетесь, то к вам не надо идти.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Эх, если бы я так общался с соискателями, то на Пикабу ничего бы не писал.
1
Автор поста оценил этот комментарий
Комментарий удален. Причина: Провокации и грубое общение
раскрыть ветку (1)
Автор поста оценил этот комментарий
@moderator, мне кажется что трёх раз достаточно чтобы отправить желающего в баню?
показать ответы
10
Автор поста оценил этот комментарий

Вы хоть представляете насколько объемная это была бы работа? Чтобы детально с примерами объяснить недостатки и изъяны. Привести примеры.


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


Научил меня на вопрос "почему?" не отвечать "потому, что". Сложно объяснить кратко. У объективной реальности есть координаты, в которых мы можем попробовать ее оценить. У кода это нефункциональные характеристики. Я не стану использовать что-то "потому, что" это похоже на описание некоего паттерна или принципа или чего-то мнения в интернете. Всегда лишь код и ситуация на проекте могут быть мерила и того, как надо поступить.


раскрыть ветку (1)
Автор поста оценил этот комментарий
Вы пару комментариями выше написали котолампу о том, что проделали это все на собеседовании и даже получили потом мегаоффер.
показать ответы
31
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Я надеюсь вы действительно разъясняли им говно по каждому принципу, а не отделались общими словами про увеличение сложности кода? Вам же не будет сложно повторить объяснение для нас?
показать ответы
16
Автор поста оценил этот комментарий

Да все поняли, что ты очередной мудак

раскрыть ветку (1)
Автор поста оценил этот комментарий
@moderator, в этом сообществе допустимы оскорбления?
показать ответы
26
Автор поста оценил этот комментарий

Бля, ну и сиди без сотрудников, принципиальный хер

раскрыть ветку (1)
Автор поста оценил этот комментарий
@moderator, как-то густо пошло.
84
Автор поста оценил этот комментарий

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


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


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


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


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


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


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

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


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


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

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

Мне лень детально пояснять. На Пикабу с телефона только сижу, тем более долго печатать.



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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Это однозначно можно считать сливом? Или неоднозначно? Спорный момент.
показать ответы