Синдром 10-летнего джуна?
Источник: IT-юмор
Источник: IT-юмор
Я как-то чисто по приколу на собес пришла, только выпустилась из универа, опыта вообще 0, по специальности не знаю нихрена (по ощущениям).
Прихожу, мне кучу вопросов сразу: "а это знаешь?" - нет, "а это?" - нет, "а вот это умеешь?" - нет. "А у нас ещё обязательно опыт работы минимум три года нужен, а то всякие проверки и аудиты с этим прям строго" - чуваки, я вчера диплом получила, по телефону вам об этом сказала и в анкете опыта нет.
" Ну что ж, берём!", сказали они.
Логично, логично. Единственное что у меня попросили - не уходить в декрет хотя бы года три))))
не уходить в декрет хотя бы года три
Ну это легко, если сменить работу года через 1,5-2)
Да, именно так и было))
Да и я не совсем уж тупенькая, чего говорить) специальность it-шная, тут сразу видно, как правило, насколько человек обучаемый и адекватный.
У нас набирали девченок в конструкторский отдел. Делали страшное внушение - никаких декретов!! И взяли спокойно женщину 43 года. Дочь учится за границей. Через месяц женщина сообщила, что беременна! 😂
Нетъ. Четвёртый год уже работаю у них, полет бездетный. Собственно, мне легко было это пообещать (хотя, безусловно, никому ничего и так не должна была), потому что детей не планирую в принципе.
Нет и не вижу смысла разводить тут полемику. Вы просто не думали, я же уже много лет назад все для себя решила. Не понимаю людей, которые пытаются зачем то переубедить в этом вопросе других, не зная всей их ситуации.
Тоже смотрел требования на свою должность на старте. Ох, сколько там всего понаписано, и опыт работы от 3 лет и все на свете.
А на деле нам бы подошёл обучаемый и сообразительный вчерашний студент-технарь, который хотя бы знает какой ток в розетке и сколько там проводов.
Примерно 90 процентов кандидатов с релевантным опытом таким знанием не обладали.
У нас вообще был идиотен-тест, котрый слабо кореллировал с реальными навыками, но позволял отсеивать всякую дичь по его результатам.
Локальных мемасов этот тест сгенерировал прилично)
В большинстве западных IT компаний на работу берут судя кандидата по его способности решать алгоритмические задачки на удобном ему языке программирования. На работе же они с алгоритмами не сталкиваются в 99% случаев и пишут часто на совершенно другом языке программирования.
Сам Гугл, родоначальник этого глобального бреда, проводил внутренние исследования и признал, что это тупой способ оценки кандидатов, но спустя несколько лет так ничего и не изменилось. Разве что фронтендеров перестают гонят по алгоритмам.
На работе же они с алгоритмами не сталкиваются в 99% случаевТоп-1 разочарование после универа. На кой хер нас заставляли зубрить эти бесполезные алгоритмы сортировки?
Не зубрить, а понять. Чтобы иметь понятие различий подходов и иметь возможность составлять свои алгоритмы используя идеи улучшений.
Типо можно сделать, чтоб работало, а можно потом это же сделать быстрее или менее прожорливее по памяти
Это можно донести на куда более простых и полезных на практике примерах вроде поиска соответствий в массиве (в противовес сравнению/поиску + перестановке при сортировке). А сортировки вручную практически никто не пишет уже.
P. S. И да, именно зубрить, дюжина алгоритмов по памяти нахер никому не нужны в реальности.
Что интересно, сортировки не там были. Там именно математические вычисления были (матфак).
Про большинство не врите. Это знаменитые собесы у FAANG (теперь уже MANNG). Некоторые пытаются их пародировать, но большинство все таки на это кладут. У нас например таким только Яндекс страдает.
Есть такая штука - когнитивная нагрузка. В условиях ограниченного времени и стресса далеко не все могут верно мыслить. Приходилось слышать истории от коллег, в которых опытные наладчики на троих тупили над неподключенным штекером. Я думаю, нужно определиться, кого вы нанимали. Сообразительных и обучаемых или стрессоустойчивый оперативный персонал на АЭС. Так ведь оперативники, не смотря на свою феноменальную стрессоустойчивость, тоже имеют проблемы с принятием решений в условиях неопределенности. На самом деле, их сильно задрачивают на решение типовых проблем. Задача про "деревянные электроды" их тоже может поставить в тупик.
Так ведь оперативники, не смотря на свою феноменальную стрессоустойчивость, тоже имеют проблемы с принятием решений в условиях неопределенности. На самом деле, их сильно задрачивают на решение типовых проблем.на случай серьезных нештатных ситуаций, насколько знаю, вообще персонал сменяется на отдельную аварийную группу, заточенную именно на особые режимы работы
Честно говоря, не слышал о таком. Если вдаваться в подробности, то оперативный персонал тоже разный. Высокая стрессоустойчивость нужна людям уровня ВИУТа, ВИУРа и НСБ. Но есть ещё и смены цехов. Это тоже оперативный персонал. Например, смена ЦТАИ. В ней, емнип, человек шесть - от начальника смены до ДЭСа (или как он сейчас называется). Они не занимаются принятием решений. Они своеобразные "дневальные" по блоку. По команде с БПУ производят оперативные переключения, мелкий текущий ремонт, допуск бригад. Их задрачивают на знание оборудования, с которым они имеют дело. Здесь в первую очередь нужна аккуратность, хорошая память и понимание технологии - всё то, о чём говорит @Jay001. Однако к оборудованию их подпускают после обучения и экзаменов. К тому моменту юный оперативник уже изучил свою епархию, походил в поле с опытными коллегами, знает некоторые нюансы. Но и то бывает всякое. Но тут нам предлагают в условиях стресса на собеседовании позадавать нестандартные вопросы. Оно то понятно, что знания и понимание помогают не тушеваться. Но не всегда опыт и знания релевантны умению не нервничать на собеседованиях.
Поспрошал у коллеги. Нет, никакого специального персонала не предусмотрено. Есть инструкция на случай запроектных аварий. Видимо, Вы говорили о ней. Потому что за несколько лет работы в подрядке ни разу не слышал про какие-то аварийные группы. В инструкции чисто организационные мероприятия, которые должны провести ответственные лица. Причем, это те же самые лица, которые и так являются руководителями (начальники смен, начальники цехов и т.д.). К обычным обязанностям добавляется организация оперативного штаба, эвакуация и тому подобное.
Про деревянные электроды никого не спрашивали - это нам сами отвечали)
Во времени никого не ограничивали, над душой не стояли, стресса не наводили, кофем отпаивали.
Конечно является.
Но, повторюсь, никто не тиранил и не жестил.
Тут как с преподом на экзамене: переволновался и не сдал - ну не препод же виноват. Тем более вопросы простые. Ну правда простые. Уровня студента первого курса, а не специалиста в области.
Пара уточняющих вопросов спокойно выясняла стрессовый это затуп или "хронический")
Ну вот с той же розеткой:
- Сколько проводов?
- Три
- Какие?
- Фаза, ноль, земля
- Сколько проводов?
- Зависит от розетки.
- Вон сзади стоит
- Скорее всего три, может быть и два.
- Сколько проводов?
- Два
- Какие?
- Ээээ.... Черный и белый?
- Допустим, а ток там какой?
- Ээээ...
- Переменный или постоянный?
- Постоянный
- Садись два.
У меня достаточно приличный багаж знаний и опыта по своей специальности, но все равно когда меня спрашивают о "деревянных электродах", то быть уверенным что они на самом деле не существуют, а не я просто отстал от развития технологий, довольно тяжело.
Так что в условиях отсутствия интернета на собеседовании, я бы сказал, что о деревянных электродах ничего не слышал, но возможность их существования допускаю. Что конечно же, может восприниматься как "влегкую утонул на простом вопросе".
Ну, видишь, деталей он уже не помнит. Да и тест секретный, его в готовом варианте всего три человека в компании видело.
А на деле нам бы подошёл обучаемый и сообразительный вчерашний студент-технарь, который хотя бы знает какой ток в розетке и сколько там проводов.
херасе.. и "какой" (интересно, что задающий этот вопрос хочет услышать) ток в розетке? и сколько же в ней проводов? вы призеров битвы экстрасенсов берете?)
1. скорее всего переменный, но бывают исключения
2. обычно 2-3, но бывают исключения, но всегда не менее 1
2. обычно 2-3, но бывают исключения, но всегда не менее 1А если провода не подведены, то может быть и менее 1.
ну давай поймем уровень моей осведомленности..
сколько проводов в розетке, вмонтированной в стену?
может 0? кандидат допускает, что ваша организация - сплошь неумные люди и могли вмонтировать розетку без проводов
может 1-N тупо запихнутых туда? ну, наверное, можно попросить расcчитать это N через ширину розетки и толщину стены, диаметр провода с изоляцией.. это покажет, что кандидат великий инжынеръ.
если скажет 3, а там их 2 - неудачник, нам такие не нужны
если скажет 2, а там их 3 - пусть валит, за забором таких очередь
можно еще лучше - спросить сколько метров кабеля нужно, чтобы все настройщики пианино в сызрани могли зарядить свои, набитые тенисными шариками, автобусы
Вот мы, впрочем, сразу и посмотрели, как вы реагируете на такие вопросики.
Мы вам перезвоним.
так расскажите нам, как вы умеете интерпретировать ответы)
что должен ответить кандидат на достаточно тупой вопрос, не имеющий, но требующий однозначного ответа по формулировке, чтобы это было +- правильно?
и, если ответов несколько, как вы их трактовать будете?
Забавно бывает когда на собеседовании ты понимаешь, что гораздо лучше их знаешь то что они спрашивают)
А чего тут забавного - "вы оверквалифайд для этой вакансии, нам нечего предложить под этот уровень знаний, спасибо что отозвались"
Ну хз, мне в последний раз на 50к больше предложили. Зря не пошёл. Мне казалось, что в Яндексе неплохо.
Искал работу, предложили на 50к больше, считал, что в той компании, где предложили больше - неплохо.....но не пошёл? wtf?
Не. Я был в Яндексе, а предложили больше в СТС. Не пошел, потому что казалось, что в Яндексе прикольно.
Почитал отзывы. Яндекс большой и условия в разных отделах могут сильно разниться. Я, например, большей части негатива, который там описан, не встречал.
На серьёзе у меня реально была похожая ситуация. Уже на собеседовании я видел что неплохо платят но не видел я перспектив в развитии для себя на этом проекте и ребята видели как я недовольно ворочал носом. Я уже заранее решил что откажу им в случае оффера, но при этом они сами отказали мне. Получился такой взаимоотказ, но с другой стороны мне понравилось что мы были на одной волне и хорошо понимали друг друга
ха! это довольно забавно
я пол года собесил сеньоров, мы искали прям серьористого сеньора, причем сам себя я с натяжкой наверное могу сеньор минус назвать (хотя от конторы конечно зависит)
реально сильных действительно интересно собесить
супер сильный был за пол года наверное один, мы с ним обсуждали какие лучше вопросы на собесах задавать)))
- Андрей спасибо за ответы, вопросы у нас закончились, если они появились у тебя задавай
- Теперь вы мне расскажите что лучше, композиция или наследование?
Спасибо! Я только начал питонить на курсах яндекс практикума. Кстати, что посоветуйте в плане обучения программирования?
Попробовать с этими курсами ЯндексПрактикума устроиться в сам Яндекс.
Сделай потом пост об этом.
У них вебинары частенько проходят, можно спросить, возьмут ли они выпускника с их же курсов хотя бы стажером.
(Спойлер - нет)
А начнут ответ как-то так: "Мы обучаем множество специалистов, по множеству направлений. Из них мы как-то выбираем лучших (возможно не справедливо и тп.) несколько человек..."
Прям в яблочко 😅 Смотрел несколько, ответ всегда именно такой, мол ну вот 1-2 человека и правда пришли прямо с курсов или даже во время. Причем спрашивают про статистику трудоустройства - ответ примерно такой же, "если спец хороший - сразу с руками оторвут, ага. У меня такой один друг есть. Вот."
Ну збс, остальные 500-5000 человек, заплатившие по овер100к за обучение:
Справедливости ради, я не думаю что статистика по университетам намного лучше. Если сам зубами и когтями не будешь пытаться устроится на работу, то никому ты не нужен.
Дело в том, что Яндекс включает в программу обучения еще и программу трудоустройства, но сам не торопиться своих же студентов нанимать.
Разве включает? Если мне не изменяет память, по факту там у них «модуль профориентации», где максимум говорят как составить резюме, как откликаться и как подготовиться к собесу. Чтобы они хоть куда-то трудоустраивали или хотя бы сопровождали в процессе поиска - звучит как фантастика
Это и есть программа трудоустройства. Они помогают составить резюме, сопроводительное письмо, рассказывают как проходить интервью и собесы, и сопровождают на первых откликах.
Естественно они не будут искать за тебя работу и протаскивать куда-то. Просто помощь, чтобы ты на собесах не тупил и резюме не было как у дурачка - а это львиная доля шанса на успех в устройстве.
Человек, заплативший овер100к за то, что бесплатно лежит в открытом доступе, как бы изначально не очень умный.
Это легко говорить, когда уже устроился работать и с высоты опыта смотришь на новичков. Я вот работаю программистом, но вообще без курсов я бы застрял на месте. Информации полно, но в ней просто потеряешься.
Мне кажется тут проблема в том, что люди в массе своей не умеют работать с информацией. Порой встречаются индивидуумы не способные пользоваться поиском в интернете.
Для таких людей курсы помпьютерной грамотности были бы в 100 раз полезнее чем курсы по питону.
Решено! Открываю курс «как правильно гуглить»))) Не стоим — записываемся, всего 99 т.р., для первых 100 записавшихся скидка 1% 😉
В теории могут взять, но скорей всего такого человека и без курсов яндекс практикума бы взяли)
Как бы да, но в этом и проблема - знания основ и пары работ в портфеле должно по идее хватать как раз для работы джуном (ну стажером-то уже тожно), это же логично. Но нет - читаешь требования и глаза на лоб лезут. Казалось бы, ну если курсы от яндекс - наверное сам яндекс-то с такими знаниями возьмет? Нет, нихуя. НЕДОСТАТОЧНО!
Вот только загвоздка - на собес еще надо попасть. Если опыт ноль то и шанс околонулевой
Так на курсах практикума так и пишут, что эти курсы не повод устраиваться к нам. Наберитесь опыта и попытайтесь. Они этого и не скрывают.
У подруги несколько коллег устроились после этих курсов. Довольно крупная ит компания. Не яндекс. Сначала получаешь не много, но там быстрый рост.
Пройти хоть как-то курсы и идти работать стажёром за мелкую какую-нибудь крупную компанию (хотяб попроходить собесы и понять, что именно ты не осиливаешь). А там уже на месте можно будет либо подтянуться до джуна, либо получить опыт, даже если после стажировки тебя отошьют
Вчера читаоа историю девушки из Киева. Она год бесплатно на степике проходила всякие курсы по pythpn, linux, алгоритмам. Взяли в иностранную контору.
делай пет проект, желательно хоть немного полезный кому то
нейронку или рест
попробуй змейку написать, новичок за день управится
вариантов тыщи но все их объединяет одно
Ощущение, что все ищут веб-разраба с учетом, что завтра отключат интернет.
А у меня большинство коллег даже с интернетом не смогут. Вот честно, реально так!
Я аналитик, но ощущения аналогичные. Тех интервью на знание формул в математике, алгоритмов и языка. Это ппц. Причем 10 лет успешного опыта и реальные кейсы инсайтов и роста доходов компаний никого не интересуют.
Смотря что вы понимаете под теорией и практикой. Написать компилирующийся (а иногда даже этого не требуется) код, который как-то решает задачу, не проблема. А вот понимать, что за этим кодом стоит и какие могут быть проблемы в случае чего - это уже другое дело.
Хотя с другой стороны был (слишком много раз) на собесах синьоров, который не могли факториал написать.
Так это они тоже не все знают. Гарантии доставки спроси - начинаются гадания на кофейной гуще. И на уровне архитектуры мыслить нужно, но толку-то, если человек это закодить не может.
Спросил в рабочем чатике о факториалах. Пока ни одному в жизни не пригодилось это знание (проект с разношерстными ребятами в основном с опытом от 5 лет). Вы реально думаете, что это важное знание для сеньора?
Вот если бы попросили жсон преобразовать и переложить, вот тут уже и поговорить можно было бы)
Типичная задача.
Веб-сервис, Odata v4.
Запрос не только $select, но и $expand по десятку таблиц.
Каждую запись в ответе развернуть в плоский json, сохранить итог как jsonl.
* Веб-сервис отдаёт сразу 2Гб, на серваке лимит памяти на процесс 512мб.
Спасибо. Задача и в правду типичная. Просто формулировка была не правильная. Преобразовать В жсон. Предлог "В" очень важен:)
Жена отправляет мужа-программиста в магазин:
- Купи батон хлеба, если
будут яйца - возьми десяток.
Муж возвращается из магазина с десятью батонами.
- Ты зачем столько хлеба купил?
- Так ведь яйца были...
Я реально думаю, что если человек не может цикл (или что будет вместо него в другом языке, что угодно) написать, то он программировать не умеет. Суть же не в факториале, это просто пример, чтобы посмотреть, знает ли кандидат хотя бы синтаксис языка.
Вы думаете на собесе норм заставить весь сервис с нуля писать чтобы в бд или кафку ходить?
помню меня попросили написать расчет факториала, но без IDE шки, просто на бумажке) Я начал писать, и чот тупить начал, ну блин, бумажка эта, не привычно. Чел начал искать ошибки или типа дописывать и в итоге тоже натупил) Вот так сидим, одного проверяли, другой проверял))
На собесе писать код в принципе не норм, ибо эта хуита собачья, когда одному моча в голову приходит и он даёт задачу, которую только сам и может решить при этом точно потратив на неё суммарно времени больше чем длится собес не испытывая стресса как такового и самое главное вставить очень ниибаца важную мысль про если человек не может...(нужное вставить). И вот почему-то всегда, когда невзначай спрашиваешь интервьювера про свои задачи, которые решал, которые тоже "если человек не может..." то что-то у них нихера не выходит их решить))) выходит все такие дохуя выебистые, только когда спрашивают, а как только начинаешь спрашивать ты то сразу пердят себе под нос
Для этого есть испытательный срок, навык кодинга оставь джунам, ну и в таком случае шарьте проект, чтобы кандидат мог оценить ваш навык кодинга и понимать какой пиздец у вас на проекте сопоставив с вашими требованиями к кодингу на собесе)
то чем же тогда сеньоры занимаются?
сеньоры в отличие от джунов уже доказали то что умеют кодить своим опытом
Ну если вы на проекте ожидаете код сопоставимой сложности с "напишите метод, который перемножает все числа от 1 до N", то это мощно, конечно. Сильный кандидат.ооо, типикал чсв интервьювер, как я и ранее говорил дохуя крутые только до тех пор, пока сами не начинают отвечать на вопросы))) я же говорю, шарь код проекта на собесе тогда
сеньоры в отличие от джунов уже доказали то что умеют кодить своим опытом
Кому доказали? Вселенной? У собеседователя нет доступа ко всем знаниям вселенной.ооо, типикал чсв интервьювер
Собесил много людей, с некоторыми потом работал. Когда просил дать фидбэк - все говорили, что было збс комфортное интервью. Но зачем думать, если можно сразу перейти на личности. Кстати, но собесах же софт скилы ещё оцениваются. Вы бы не прошли :) но судя по сообщениям куда-то вы таки пошли и даже зарабатываете видимо неплохо. Ну, удачи там.
Кому доказали? Вселенной? У собеседователя нет доступа ко всем знаниям вселенной.
зато есть доступ к резюме и есть рот, которым можно спросить о предыдущем опыте, если как ты выразился у "собеседователя" не хватает мозгов спросить такие элементарные вещи, то грош цена такому "профи" и о каких задачах кодинга вообще может идти речь?
Когда просил дать фидбэк - все говорили, что было збс комфортное интервью. Но зачем думать, если можно сразу перейти на личности.как ребенок ей богу)) и ты правда правда веришь всему сказанному? человек мог заебаться на собесе и ему могло не понравиться, ты реально думаешь, что он будет тебе рассказывать свое мнение о тебе или быть может просто скажет, что все ок и свалит побыстрее? хотя уже после слов "все говорили" уже понятно, что пиздеж)) тут надо писать % офферов для кандидатов от всех интервью и % их отказов, вот показатель, а не твое псевдохвастовство, которое может оставить неопытным джунам
хз, код имеет смысл давать, с какой-то простейшей задачкой, чтобы просто посмотреть как человек пишет
Это не скажет о написании кода человеком ровным счётом ничего, абстрактные задачи в по типу того же факторила не несут в себе смысла, потому что не отражают сути написания кода уже в существующем проекте, где уже есть свои код конвенции, к тому же где даётся на решение самой минорной баги один стори поинт, что ты хочешь увидеть за час полтора времени интервью?
Сори, уже почитав более детально тред согласен с тобой, я скорее про джунов, тк там сразу видно кто хоть что-то делал, ну и в целом я не про потратить полтора часа на этот этап, а про 15-20 мин, такой тест на дебила
Ничего))
За джунов да, там это имеет место быть, потому что опыта у них нет, следовательно появляется пробел на собесе, где можно было бы поговорить о предыдущем опыте, да и конкуренция там огромная
Ну а 15-20 минут лучше потратить на что-то более существенное, что будет более информативно, чем задача на дебила, которая не даст информации, тот же вопрос например на что обращает кандидат во время код ревью например куда полезнее и занимает пару минут от силы
Интересно, а я сойду за синьора, если для функции вида long factorial(int x) предложу использовать таблицу заранее вычисленных значений факториала?
Ха, подержите мое пиво.
Обоснование элементарное - для long (который в C#), достаточно всего 20 записей. Больше чем 20! в него не влезает.
Даже для double с его максимумом около 10 в 308 степени (хоть и с низкой точностью символов в 15-17) даже 171 записей будут уже избыточны.
Поэтому вместо того, чтобы плодить рекурсивные вызовы (как это делают в учебных пособиях для демонстрации рекурсии), или попросту проводить реальные вычисления каждый раз, заметно быстрее будет просто вернуть табличное значение из небольшого списка, который займет совершенно незначительное количество памяти.
Так что для практически любых случаев использования факториала, которые не подразумевают использования длинной арифметики произвольной точности, предложенное решение выглядит оптимальным с точки зрения производительности.
Это не поддаётся ревью, с точки зрения поддерживаемости это будут магические числа. А вот найти ошибку в таком элементарном алгоритме сильно проще. Если хочется максимальную производительность и возвращать табличное значение - просто можно сделать функцию-обёртку, которая будет класть значения в кэш (обычный словарь / мапа). А чтение из файла будет вряд ли быстрее высчитывания 20 чисел.
Это замечательно поддается юнит тестированию, позволяющему проверить все эти числа. Опять таки в силу ограниченности их количества. Поэтому некорректно называть их "магическими". И в юнит-тестировании уже практически все равно насколько быстродействующий алгоритм вы будете использовать для проверки.
А вот насчет предложения функции-обёртки и словаря - это вы переусложняете по привычке, полагаю. И про чтение из файла никто речи не ведет. Зачем вам файл для ~160 байт? Очевидно же что реализация выглядит как массив long, а все тело функции просто return _factorials[x];
И взятие элемента массива по индексу совершенно точно будет быстрее высчитывания факториала при каждом обращении к функции.
А как вы юнит тесты писать собираетесь на это? Большинство юнит тестов пишутся как раз таки на основе каких-то константных значений. Вы собираетесь табличные значения проверять табличными значениями? Или писать под них алгоритм?) а кто алгоритм проверять будет? Ну можно ещё property based тесты, но по итогу получается ещё сложнее.
Ну будете хранить это прям в коде, ок. На ревью все равно эти значения кому-то придётся проверять. И на собесе вы точно не сможете вспомнить все эти значения и положить их в массив, а значит задачу вы самостоятельно без гугла решить не сможете. Или вы будете писать алгоритм, а потом хардкодить? Ну ок, good enough, алгоритм-то все равно придётся писать, а остальное в рамках собеса не важно.
И нет, я не переусложняю. Кэш - стандартная задача. Можно вместо него и массив использовать, почему нет. Вычисление чисел по какому-то правилу - стандартная задача. Их объединение - стандартная задача. Итого тот, как придёт вместо вас, спокойно разберётся в стандартных кусках кода и ему не нужно будет разбираться, а что ж это такое блядь за файл / класс, куда-то при увеличении требований к диапазону чисел надо числа копировать.
Воот, вы уже перешли к вопросам сложности поддержки кода. Впрочем, давайте по порядку:
Юнит тесты вовсе не обязаны выглядеть (и совсем не всегда выглядят) как банальный assert выходного значения с заранее вычисленным числом. Вполне может быть любой из предложенных вами вариантов (и с таблицей, и с простым но долго работающим алгоритмом и т.д.). И ничего невероятного в таком подходе я не вижу. Как и какого-то ужаса с ревью такого теста. В том же тесте (да и в коде при необходимости) эти 20 чисел могут быть записаны как 1*2*3...*N. Компилятор сам прекрасно всё это посчитает заранее.
Теперь насчет переусложнения:
Вы апеллируете к понятию "стандартная задача", как будто это такое магическое словосочетание которое внезапно сделает использование словаря в данном случае оптимальнее использования массива. Вот возьмет мидл и без включения мозга использует типовой кэш с протуханием результатов раз в минуту по умолчанию и перевычислением каждый раз. Я и хуже варианты видел.
Про "вычисление чисел по какому-то правилу" - это вы сгоряча сказали. Вся информатика целиком это "вычисление чисел по какому-то правилу", но назвать всю информатику стандартной задачей - это немного перебор, вам не кажется?
Но если вам очень хочется, давайте просто объединим наши подходы. Алгоритм будет генерировать массив однократно на старте программы, а функция будет использовать готовые результаты. Правда, это совсем неоптимально с точки зрения холодного старта, но что уж тут придираться...
Я к тому, что паттерны проектирования прекрасная штука, но не панацея, и соревнования свежеиспеченных сеньоров вида "кто больше использует паттернов в этом куске кода" зачастую заканчиваются тем, что код становится чрезмерно переусложненным, "фабрика фабрикой погоняет".
И это не говоря уже о том, что оптимальные подходы будут совершенно разными в зависимости от конкретной компании и её деятельности. У разработчиков микроконтроллеров, веб-сайтов, enterprise систем и игр совершенно разные понятия о важных метриках качества кода и о качестве кода в целом.
В смысле "уже перешли к вопросам сложности поддержки кода"? Я про это сразу написал.
Я знаю, что они не обязаны так выглядеть, я сам же привёл вариант с property based. И я как раз вижу проблемы с тестированием алгоритмом другим алгоритмом, потому что это всегда поднимает вопрос о том, а кто же будет тестировать тестировочный алгоритм.
Ну возьмёт мидл и пусть берет. Для таких вещей ревью и нужно. Это будет одна простая техническая фича с понятной целью, предназначение которой легко понять и, соответственно, поверить на логичность. А вот если мидл напихает новых чисел от балды, то удачи в проверке, тогда придётся самому погружаться в бизнес логику, чтобы понять, почему именно эти числа.
Ну так-то да, оно все к этому и сводится, ФП на этом и построено, например. Это всего лишь функция из A в B, но главное, что это будет чистой бизнес логикой. Производительность и прочее - это не бизнес логика, этому в общем случае лучше идти допом, а не быть забитым гвоздями.
И вот мы это всё обсуждаем, но главное-то вот в чем: сможет ли кандидат каким угодно способомрешить задачу во время собеса сам. Задача простая, гуглить такое - это уже перебор. Сможет - ок, идёт дальше. Не сможет - oh well. И я почему-то уверен, что никто первые числа факториала наизусть не помнит.
А еще добавлю, что не надо забывать и о влиянии, скажем, временных факторов на планку качества кода. В норме MS SQL сервер не должен выполнять перекодирование текста из utf-8 в utf-16, у него и инструментов для этого нет. Но если завтра показ, развертывание бинарников на сервер заказчика требует двухдневного согласования, а хранимую процедуру можно написать прямо сейчас, то оказывается что написание побитовых операций (и перекодировщика) на обычной арифметике на T-SQL спасает ситуацию. Хотя в норме никому и в голову не придет таким заниматься, в моменте ценность такого кода для компании отрицать не получится.
Впрочем, если хотите, можем сойтись на том, что мой случай подтверждает высказывание топикстартера, и я не прошел ваш тест на синьора. Что скажете, каков мой результат? В джуны сгожусь хоть?
Так вон решил же. Выше подробно написано как. Вы б хоть прочитали, что я написал, а то неинтересно становится.
Лично я как раз предпочитаю на собеседовании послушать, как именно соискатель думает, на что опирается, как защищает своё решение.
Но если у вас все сводится к галочке "работает/не работает", ну, мне кажется вы что-то упускаете в процессе собеседования. Впрочем, это всего лишь моё личное мнение, не более того.
Это не магические цифры, это справочник математических констант, которые не меняются со временем вне зависимости от погоды и фазы луны.
Мало того, этот справочник можно пополнять результатами вычислений, которые были могли быть получены только на всяких суперкомпах, которых у конторы нет и никогда не будет.
Тут другой вопрос. Зачем на собесе задачи, которые к реальным задачам не имеют отношения? Убедиться, что соискатель вчера освежил в памяти базовые алгоритмы, у него дофига времени решать задачки на литкоде/хакеррранке или он уже на сотое собеседование пришёл?
Кеш на этапе использования и вот ты только ровно раз посчитаешь каждое значение факториала, новые будут добавлять значения и если у тебя уже был вычеслен 15! То до него включительно это уже табличное значение, все что больше потребует меньше вычислений
Это всего лишь вопрос того, чем вы руководствуетесь в первую очередь. Желанием применить паттерны для решения задачи, или использованием принципов KISS и YAGNI. Не более того. Я бы не стал использовать кэш для 20 предвычисляемых значений. Вы бы применили паттерн, в надежде что это сделает код более поддерживаемым ( в чем я лично сомневаюсь, но это только мое личное мнение )
Да не принцыпы не всегда помогут, в плане вычисления один раз значения в кеш имеет место быть если необходимо постоянно вычислять, если это разово, то да смысла нет, тут надо не на принципы смотреть, а сначала на условия в которых тебе нужен данный алгоритм или функционал
А еще забыл, может быть микро устройство у которого ни ПЗУ ни тем более ОЗУ не хватит, тут придется постоянно вычислять
Конечно, в большинстве случаев реальные узкие места лежат не в накладных расходах на вычисление факториала, и даже рекурсивное решение прокатит почти везде... Но это уже совсем другая история... :)
От вакансии зависит. Если это эмбеддед, то за такое они могут даже сразу отказать в продолжении собеса. Лучше всего будет обычный цикл, либо рекурсия, которая в него как правило компилятором преобразуется
Ненавижу заучивать теорию, и решил сделать ставку на проектах. Не работает такой подход. От новичков ждут железобетонных ответов на собеседовании, как на экзамене, а проекты даже не смотрят толком.
что быстрее: пробежаться по теоретическому опроснику с углублением в некоторые моменты, или же слушать про твои "очень интересные" проекты, или же, упаси боже, смотреть онлайн, как ты пишешь "let spisokSotrudnikov ="?
если ты на текущем месте занимаешься исключительно построением графиков на d3, значит ли это, что ты не подойдешь на проект, где основная работа - с реактивными формами? из твоего подхода - значит.
что я придумал? ты пишешь, что "Практика почему-то всем интересна в последнюю очередь". как ты предлагаешь через практику оценивать кандидата?
Да, и че где я пишу "Предлагаю показывать свои красивые проекты вместо теории"?
Ничего не предлагаю, просто констатирую факт, что при всем херовом знании теории вполне можно отлично работать на тех местах, куда не попадешь через собеседование.
Я пробовал пару собеседований проходить, вопросы были наипростейшие, я на них ответа не знал. Дома в интернетике посмотрел, лицо пробил фейспалмом и запомнил (правда сейчас уже опять подзабыл, так как не использую). И как говорит один мой друг - у меня есть список вакансий и я хожу, начиная от самой менее интересной к более интересной. На первых меня собесах валят такими вопросами из учебника. Все учу, и к нужной вакансии уже готов более менее. А потом 3-4 года ковыряюсь в легаси коде, и не использую ничего из того, что спрашивали на собеседовании.
Ну и конечно я писал по своему опыту. 3 последних удачных "собеседования" были типа таких:
1) о, это ты делал? Вчера обсуждали, жди оффер.
2) Давай ты не будешь больше фрилансить на нас, а перейдешь на постояннку.
3) Знаешь эту технологию? Го к нам
есть два человека: ты, и другой, разбирающийся в теории. кого я должен взять? ответ очевиден. даже если у человека нет практики, но он осмысленно рассуждает теоретически - он более приоритетен, нежели тот, который в теории плавает (а некоторые, не очень умные, бахвалятся, что теорию не повторяли), но у которого ЯКОБЫ хорошие практические навыки.
ибо по теории я спрашиваю нужное в работе + смежные темы. а то, что у второго практика, как я и писал вначале - графики на d3, меня не интересует. и я не хочу об этом узнавать по факту испытательного.
при всем херовом знании теории вполне можно отлично работать на тех местах, куда не попадешь через собеседование.
нет. просто работать - возможно. отлично - нет. либо там задачи такого уровня, что вся эта ветка к ним не относится.
я говорю про уровень, начиная с мидла. мидл, плавающий в теории вызывает большие подозрения.
Очевиден, я не отрицаю и не отрицал. Я не понимаю, о чём вы со мной спорите?
нет. просто работать - возможно. отлично - нет. либо там задачи такого уровня, что вся эта ветка к ним не относится.У нас наверно разное понимание отличной работы. Для меня "работник сделал - работодатель доволен". Задача и есть задача, или у вас там трекер на задачи побит отличная/хорошая/так себе?
IT-юмор
6.9K поста53.2K подписчиков
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору