LINUX.ORG.RU

С/С++: вопросы на собеседованиях

 , ,


3

5

Задача понять хорош кандидат для проекта или нет, как мне кажется, супер сложна. Допустим, он позитивный и всё такое. Поговорим исключительно о технической части. У кого есть опыт - поделитесь что вы спрашиваете у middle/senior разработчиков? Только практические задачи? Теория (какая)?

Ping bugfixer

Ответ на: комментарий от Reset

Он просто не подходит для работы в гугле.

Ларри Пейдж тоже, в таком случае

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

anonymous
()
Ответ на: комментарий от dvetutnev

Мне в последний раз давали вот такую задачку.

Это прикольно сделать один раз, но писать очередной tcp эхо- или лог-сервер быстро наскучивает.

Домашнее задание по программированию на позиции выше middle — это перебор.

filosofia
()
Ответ на: комментарий от anonymous

хотя, честно говоря, я не понимаю, кто добровольно идёт во всякие фаанги работать,

зарплаты зачастую ниже менее именитых компаний

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

отсеивание ядрёное

Да, но легко учится за год при желании.

визу нормальную редко дают

H1-B, O-1, L-1 на выбор и по возможности. В Европу, понятно, вообще голубая карта.

работать, скорее всего, придётся, всякую рутину

Это правда. Тут яндексоиды любят надувать щеки, но что им еще остается?

filosofia
()
Ответ на: комментарий от Reset

Да хрен с ними с деньгами. Представляешь какое разочарование не получить оффер после настолько скрупулезно выполненной домашки? Код не смотрел, но Readme зачотный.

filosofia
()
Ответ на: комментарий от filosofia

Не путай FAANG с жмотским Яндексом.

В Яндексе все хорошо с зарплатой и акциями :) Ты думаешь почему я до сих пор там работаю ? :)

Reset ★★★★★
()
Ответ на: комментарий от filosofia

Представляешь какое разочарование не получить оффер после настолько скрупулезно выполненной домашки?

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

Reset ★★★★★
()
Ответ на: комментарий от Reset

Как ты думаешь, почему я могу что-то думать о незнакомом мне человеке? Я не знаю, на какой ты позиции, в каком проекте, сколько тебе в конце концов платят и сколько ты тратишь. Может ты местная рок-звезда, за которую там держатся.

Мне в Яндексе предлагали какие-то копейки; коллегам, вышедшим из Яндекса, платили копейки. Общий фидбек оттуда таков, что Яндекс жмот — спроси в интернете, каждый подтвердит.

filosofia
()
Последнее исправление: filosofia (всего исправлений: 1)
Ответ на: комментарий от filosofia

Общий фидбек оттуда таков, что Яндекс жмот — спроси в интернете, каждый подтвердит.

Я знаю про этот фидбек. Аналогичный, кстати, есть и про Facebook :) Обычно такие фидбеки пишут те кого что-то не устраивает, если человека все устраивает, то он не пишет фидбек.

Reset ★★★★★
()
Ответ на: комментарий от Djanik

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

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

А вам и не надо смотреть весь асм код, только около места, где произошла ошибка. Компилятор в процессе оптимизации может выбросить многие переменные, встроить метод и твой С++ код будет сильно отличаться от того, что находится в бинарном файле. Если ты хотя бы немного понимаешь в асме, то ты можешь из асма (часто, но не всегда, особенно если у тебя содержимое памяти процесса не в полном объеме, а только регистры и некоторый участок стека) вытащить доп инфо, какие-то промежуточные значения, к примеру, или определить поток исполнения (т.е. что после чего выполняется), ведь компилятор может и переставить местами инструкции относительно с++ кода. А если на руках снимок памяти всего процесса полностью, то можно еще и по куче полазить. А как у вас отлаживают от пользователя или от тестировщиков в оптимизированной сборке?

Ваш КО

yetanother ★★
()
Ответ на: комментарий от bugfixer

Да, строгое доказательство очень простое, ссылается на следующие факты: 1) «квадратный корень из 3 - иррациональное число», 2) тангенс любого угла треугольника, построенного так, что вершины в узлах клеток - рациональный.

nikitos ★★★
()
Последнее исправление: nikitos (всего исправлений: 2)
Ответ на: комментарий от filosofia

Нет

сойдёмся на «не всегда»

ты еще получаешь стабильный доход с акций

это после какого стажа работы?

H1-B,

нормальная

O-1, L-1 на выбор

на чей?

Это правда.

ну и какой смысл тратить год на подготовку по итогам?

anonymous
()
Ответ на: комментарий от Reset

В Яндексе все хорошо с зарплатой и акциями :)

ты, небось, там уже лет 10-15 работаешь? У новоприходящих зарплаты далеко не самые высокие по рынку.

anonymous
()
Ответ на: комментарий от anonymous

это после какого стажа работы?

Да сразу обычно, с разбивкой.

ну и какой смысл тратить год на подготовку по итогам?

Работать в гугле большая честь. Ну нет, там своя атмосфера, многим нравится. И денег много.

filosofia
()
Ответ на: комментарий от nikitos

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

С чего бы? Разверните треугольник немножко чтобы основание не было выровнено по оси.

bugfixer ★★★★
()
Ответ на: комментарий от anonymous

У новоприходящих зарплаты далеко не самые высокие по рынку.

Это зависит от человека.

Reset ★★★★★
()
Ответ на: комментарий от bugfixer

Вам, похоже совсем всё придется разжевать…

Для случая «невыровненного по оси» угол состоит из суммы двух углов «выровненных по оси» с рациональными тангенсами. Посмотрев в формулу тангенса суммы углов (tg(x+y)=(tg(x)+tg(y))/(1-tg(x)tg(y)) ), понимаем что он тоже рационален, так как формула рациональная и её компоненты тоже все рациональны.

nikitos ★★★
()
Последнее исправление: nikitos (всего исправлений: 1)
Ответ на: комментарий от nikitos

Вам, похоже совсем всё придется разжевать

Ну, дайте уж позанудствовать чутка ;)

Посмотрев в формулу тангенса суммы углов

Придётся ещё показывать что мы там нигде не нарываемся на нули и бесконечности. Можно чище (как по мне), через cos(alpha + 60).

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

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

Если правильно понять абстракцию правильного треугольника на бумажке в клеточку, как треугольника с целочисельными координатами вершин, то какие ж там нули и бесконечности? :)

nikitos ★★★
()
Ответ на: комментарий от nikitos

Если правильно понять абстракцию правильного треугольника на бумажке в клеточку, как треугольника с целочисельными координатами вершин, то какие ж там нули и бесконечности? :)

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

bugfixer ★★★★
()
Последнее исправление: bugfixer (всего исправлений: 1)
Ответ на: комментарий от nikitos

Посмотрев в формулу тангенса суммы углов (tg(x+y)=(tg(x)+tg(y))/(1-tg(x)tg(y)) ), понимаем что он тоже рационален, так как формула рациональная и её компоненты тоже все рациональны.

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

Скажем у задачки «разместить в 3D пространстве правильный шестиугольник так что бы координаты его вершин были рациональными» решение есть, можно так разместить. И треугольник в 3D тоже можно. Хотя там углы 45 и 60, ну а sqrt(2)*sqrt(3) штука тоже рациональная…

@bugfixer прав в том смысле, что у sin/cos суммы вид чуть проще чем у tan, и доказывать тоже чуть проще.

AntonI ★★★★
()

Эшо раз повторю о собеседовании

ДУРАКА ВИДНО ИЗ ДАЛЕКА ...
anonymous
()
Ответ на: комментарий от nikitos

Для случая «невыровненного по оси» угол состоит из суммы двух углов «выровненных по оси» с рациональными тангенсами.

Интересный математический вопрос здесь.
Множество синусов углов тождественно ли множеству рациональных чисел?

anonymous
()
Ответ на: комментарий от Reset
    void moveZeroes(vector<int>& nums) {
        int val = 0;
        auto newend = std::remove(std::begin(nums), std::end(nums), val);
        std::fill(newend, std::end(nums), val);
    }

Правильно? Кликаю на «Solutions», и на удивление, такого нет. Зато какие-то страшные циклы. Наверное, я что-то не понимаю в этих литкодах.

rupert ★★★★★
()
Ответ на: комментарий от Reset

Желающих пройти интервью бесконечный поток :)

из курьеров и таксистов? Это да, согласен…

fsb4000 ★★★★★
()
Ответ на: комментарий от anonymous

Множество синусов углов тождественно ли множеству рациональных чисел?

сколько углов, столько и синусов!

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

откуда можно сделать вывод, что в природе не существует правильных треугольников. треугольники всегда немного неправильные.

alysnix ★★★
()
Ответ на: комментарий от anonymous

Множество синусов углов тождественно ли множеству рациональных чисел?

Сам себе отвечу.
Нет!
Потому как для дробь целых чисел в результате дает периодическое повторение последовательности цифр в результате деления …

anonymous
()
Ответ на: комментарий от Reset

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

anonymous
()
Ответ на: комментарий от anonymous

Если не хочется «целыми днями имплементировать циклы» то не надо идти в программисты. Реальные задачи на собеседованиях никто не дает по причине ограниченного времени.

Reset ★★★★★
()
Ответ на: комментарий от Reset

долгие годы в Яндексе действуют необратимо, видимо

Если не хочется «целыми днями имплементировать циклы» то не надо идти в программисты.

за 10+ лет программистом ни разу не работал в компании, где на собесе просили имплементировать циклы, и, как показывает моя практика, наиболее успешное и долговременное сотрудничество получается с теми, с кем, грубо говоря, разговаривали за жизнь.

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

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

Но это, конечно, если тебе нужен человек, чтобы работу работал. Если нужна зубрилка картонная - то конечно, пусть 100500 раз переписывает циклы.

anonymous
()
Ответ на: комментарий от anonymous

за 10+ лет программистом ни разу не работал в компании, где на собесе просили имплементировать циклы, и, как показывает моя практика, наиболее успешное и долговременное сотрудничество получается с теми, с кем, грубо говоря, разговаривали за жизнь.

Сочувствую.

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

Очевидно, такие собеседования должны оплачиваться. Вы же платите кандидатам? Еще возникает вопрос, а откуда взялся кривой код на проекте, если процесс найма якобы «правильный»? Что-то тут не так :)

Reset ★★★★★
()
Последнее исправление: Reset (всего исправлений: 1)
Ответ на: комментарий от bugfixer

В вашей формуле тангенса суммы углов. И вообще - тангенс не очень «хорошая» функция, с разрывами и всё такое.

Не стоит рассматривать функцию тангенса отдельно от контекста решения поставленной задачи.

Наверно поигравшись с задачкой, вы понимаете что наблюдение за тем, кто её решает, за прогрессом в его рассуждениях - помогает с выводами о кандидате на позицию С/C++ разработчика :) Не кодера, а разработчика.

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

Тем более что врядли что-то полезное для большой математики можно родить «усиляя» изначальную задачу.

Анонимусу с синусами - не синусы, а тангенсы.

все эти иррациональности - есть игра воспаленного ума.

Целые числа - божий промысел, всё остальное - дело рук человеческих. Вроде слова Леопольда Кронекера.

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

nikitos ★★★
()
Последнее исправление: nikitos (всего исправлений: 2)
Ответ на: комментарий от Reset

Но светить ими тут не буду.

Если можешь, скинь на почту former.anonymous на gmail.com :) Если нет - ок.

former_anonymous ★★★
() автор топика
Ответ на: комментарий от Reset

Сочувствую.

от яндексоида-плюсовика звучит очень иронично

Очевидно, такие собеседования должны оплачиваться.

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

Еще возникает вопрос, а откуда взялся кривой код на проекте, если процесс найма якобы «правильный»?

лол, чья бы мычала, ваш быдлокод вся страна видит

anonymous
()
Ответ на: комментарий от nikitos

помогает с выводами о кандидате на позицию С/C++ разработчика :) Не кодера, а разработчика.

Мне правда, очень нравится, что Вы проводите границу ;)

красота задачи состоит в простой, лаконичной формулировке утверждения.

Тут я согласен. Задачка хороша. Я такие коллекционирую (ну вот хобби у меня такое), ещё раз спасибо ;)

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

Тут я задумался… Вы действительно думаете есть корреляция?

bugfixer ★★★★
()
Ответ на: комментарий от anonymous

лол, чья бы мычала, ваш быдлокод вся страна видит

Какой «быдлокод» хуже – тот который «вся страна видит» или тот, который даже стесняются показать? Ответ на этот вопрос очевиден и однозначен ;)

Reset ★★★★★
()
Ответ на: комментарий от bugfixer

Тут я задумался… Вы действительно думаете есть корреляция?

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

nikitos ★★★
()
Ответ на: комментарий от nikitos

Такое о чем угодно можно написать 😀 О красоте разводки сантехники и лён vs. фум-лента как тест для разработчика чтобы его программы не текли.

former_anonymous ★★★
() автор топика
Ответ на: комментарий от former_anonymous

О красоте разводки сантехники и лён vs. фум-лента

могу вот поделиться как клеить фольгу на силиконовые кнопы от пульта… чтобы восстановить ега…

а задачка ваша про треугольник - ерундовая.

alysnix ★★★
()
Ответ на: комментарий от former_anonymous

Написали много, а толковее чем массива с нулями - ничего 😁 Ну ё моё!

Хорошие незасвеченные задачки - на вес золота. Я буду сильно удивлён если Вам много накидают. Сам пристально слежу за темой ;)

bugfixer ★★★★
()
Ответ на: комментарий от Reset

Да без проблем. Желающих пройти интервью бесконечный поток :)

Почему-то вспомнилась не так давно мелькавшая задачка о выборе наиболее красивой женщины с обочины, не смотря на её бородатость - формулировка прекрасна «я щитаю» ;)

bugfixer ★★★★
()
Ответ на: комментарий от aist1

Тут еще есть нюанс. Практики проведения интервью переносятся 1-в-1 из США на остальные рынки труда, которые очень даже другие. В РФ будет совсем другое распределение скиллов по кандидатам, чем в США. И один и тот же тест будет показывать совершенно разные вещи на разных рынках. Вот это не учитывается от слова «совсем»

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

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

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

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

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

Потом этот УСПЕШНО ПРИМЕНЯЕМЫЙ МЕТОД ПОДБОРА КАДРОВ растекается по всему шарику, как ты пишешь, и получается вовсе цирк. Я не забуду, как в институте нас училка учила проводить собеседование, по принципу «вот, столичный уровень задавать задачки с подковыркой». Это что-то уровня «у туземцев с материка принято жить у гигантских птиц. Давайте же тоже соорудим гигантские птицы».

Ну как бы всё: денег много, вчера тёлка была администратором в кафешке, сегодня HR в серьезной корпорации — потому что хочется и кушать, и одеваться хорошо. Абидна только одно — я почему-то сам не на этом банкете из-за своих тараканов в башке. Вот ты уехал в штаты, а я почему-то побрезговал.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Вот ты уехал в штаты, а я почему-то побрезговал.

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

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

Насчет того, кто идет в ФААНГи. Тут еще нужно учитывать, что в России разрабочику в карьерном отношении тупо неуда расти. По факту, потолок достигается где-то в 25 или, от силы, в 30 лет. Дальше — или в университет в лабу, или «в яндекс» (который один на всех), или в оборонку (нифиг-нафиг), или в менеджмент. Или — в свой стартап.

В США, по сути, то же самое. Но в стеклянный карьерный потолок ты упираешься на много позже. Легко можно и до пенсии доработать, и не чувствовать, что «застрял». Довольно много народа сразу на это затачивается. Работает в корпорациях, обзаводится связями, прикупает активы, недвижимость. Уважаемые люди, все дела. Они и идут работать в корпорации в первую очередь. Плюс, те, кому нужны хорошие бенефиты. Так как здесь вся твоя социалка дается работодателем.

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

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

Я тут хочу подчеркнуть: речь идет вовсе не о читерах. Речь идет о том, каких специалистов компании воспитывают своей практикой интервью. Бессмысленность (и безрезультативность) всех рабочих процессов заявляется изначально прямо с момента интервью. Большие американские компании — это коммерциализированные секты. Они свято верят в то, что своим успехом они обязаны следованию свой корпоративной культуре. Соответственно, любой, кто на эту культуру «покушается», совершает преступление против самой компании, против её успеха.

aist1 ★★★
()
Последнее исправление: aist1 (всего исправлений: 2)

Компиляторы C/C++ все же нужно сделать более «строгими» к синтаксису исходного текста, потому как при написании кода бывают ОПЕЧАТКИ /но синтаксически верные/, которые компилятор НЕ ВИДИТ …

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.