LINUX.ORG.RU

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

 , ,


3

5

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

Ping bugfixer

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

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

В такую компанию я бы вообще не стал устраиваться. Это тоже неадекватность, только уже со стороны работодателя. Правда - она же где-то посередине.

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

Есть вариант получше: выгнать на мороз, т.к. он вместо того что бы работать над проектом, на который его брали, а «хочет проект получше». Собсна хочет - пусть ищет.

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

Но платить вы хотите, естественно, ниже среднего

Про зп в этом треде вообще ничего не было

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

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

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

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

Aswed ★★★★★
()

Техническая часть вообще не играет роли при наличие базовой подготовки. Главная задача на собесе - создать у кандидата положительное впечатление о компании. А если я предъявляю диплом ВМК МГУ, а меня просят решить систему школьных уравнений, то сразу возникает мысль «а не чудак ли он»?

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

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

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

так наоборот же, пожаловались, здесь уже пишут

«Кто вы-то? Я здесь один» (c) слоник

Где ты от жалобу увидел?

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

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

И если вы думаете, что угробить проект можно только на C/C++ — я спешу вас переубедить, потому что я лично видел падающий проект на JS. Да, угробить проект на C/C++ проще, но на C#/Java/JS/etc это тоже вполне реальная достижимая цель.

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

Техническая часть вообще не играет роли при наличие базовой подготовки. Главная задача на собесе - создать у кандидата положительное впечатление о компании

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

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

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

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

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

у вас наверно очередь стоит за дверью, ну ну))

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

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

Может лизгинку станцевать?

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

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

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

Как я понял, речь шла о том, что человек как раз ничего еще не прокачал, но уже хочет переписать все. Это разные случаи.

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

А ты еще не понял, что рыночек труда давно глобализовался, и внезапно оказалось, что большая часть работодателей в России - это говно, жадины и негодяи

Вот видишь, ты самом не понела, что, вообще-то, рыночек труда по всему миру — это говно, жадины, и негодяи. Даже если это Oracle, SAP, MS, IBM — они первыми тебя будет прогибать на ЗП ниже рынка, а если ты заказчик, то выставят такой космический ценник, что на него можно было бы весь Microsoft нанять твой проект выполнять.

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

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

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

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

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

Это прикольная история, но тесты не работают на:
 — многопоточных приложениях;
 — распределенных приложениях;
 — GUI.

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

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

Это прикольная история, но тесты не работают на:
— многопоточных приложениях;
— распределенных приложениях;
— GUI.

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

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

yetanother ★★
()

«Разработчик С++»(если он прям только С++) это неликвид по умолчанию. Проект «только на C++» это треш по умолчанию. А спрашивать всякое задротство которого даже в комитете половина не знает - это вообще дрочерство конченое, и за такое по голове бить надо.

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

тесты не работают на:
— многопоточных приложениях;
— распределенных приложениях;
— GUI.

Работают на всех пунктах, с разной степенью извращения.

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

Может это ты не вырос?

Это на втором курсе C++ этакрута и все такое. А как-то после хотя бы лет 5 в разработке, понимаешь че к чему.

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

Ну смотри, у меня работает 7 С++ разработчиков, 95% их программистской деятельности ограничивается плюсами. Совокупно мы платим им больше миллиона в год, что есть где-то 95-й персентиль по рынку. Найти хорошего плюсовика не сложнее чем хорошего JS-ника. Работу им найти тоже легко. Неликвид такой неликвид получается, по умолчанию, ага.

  • 2 курс: С++ это круто!
  • 4 курс: ЛИИИШП! Плюсы для первокурсников, неликвид.

Перевел на понятный тебе язык.

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

В IBM пусть нагибают и прогибают, я согласна.

Осталось выяснить мнение IBM. Кто ты и на хуй им нужна. Может они вообще не будут согласны даже видеть тебя.

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

Требуется доопределение условий, на самом деле. А то может быть задача из серии «вывести != вычислить» (исходя из того, что диапазон маленький). Тогда рекурсия будет оверинженирингом (хотя формально решено правильно), а требовалось тупое

a[0] = 0;
a[1] = 1;
...
a[9] = 9;

или ещё более тупое

uint8_t a[] = {0,1,2,3,4,5,6,7,8,9};
SkyMaverick ★★★★★
()
Последнее исправление: SkyMaverick (всего исправлений: 2)
Ответ на: комментарий от Aswed

Есть вариант получше: выгнать на мороз

Удачи лол! Если он трудоустроен в штат, хер ты его выгонишь, если он сам не захочет уходить.

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

А если я предъявляю диплом ВМК МГУ, а меня просят решить систему школьных уравнений, то сразу возникает мысль «а не чудак ли он»?

Камень, я так понимаю, в мой огород? Да, именно школьных, и не просто решить но и составить, потому как времени у меня на Вас будет не больше часа и давать что-то зубодробительное смысла нет, и интересовать меня будет прежде всего Ваша смышлёность и умение транслировать сущности реального мира в что-то поддающееся формализации (мы знаете ли не со сферическими конями в вакууме дело имеем, а со вполне себе прикладными задачами). Мне будет интересно какие упрощения Вы будете делать, как Вы будете оценивать сопутствующие погрешности итд. И ещё, Вы можете продолжать молиться на свой ВМКшный диплом - адекватным интервьюерам он всего лишь даёт надежду что Вы что-то знаете, и самое главное - умеете эти знания применять на практике, и сам по себе Ваш диплом ничего из этого не гарантирует (как бы Вам не нравилось и/или хотелось так думать).

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

мы уже все знаем как у лисперов пригорает, ага

но то что лисп неликвид, ты уже подтвердил

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

Коллеги предлагали решить задачу - ставим карандаш на острие под небольшим углом к вертикали и отпускаем. Посчитать как он будет падать.

«Злые» у Вас коллеги, должен заметить. Задумался. Мне кажется в отсутствии скольжения острия должно решаться аналитически, правда я бы ожидал что в нуле интеграл не сходится. А вот если мы позволим скользить, да ещё если коэффициент трения от скорости зависит - жесть начинается, и в лучшем случае моделировать придётся. Я прав?

bugfixer ★★★★
()

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

В остальном — есть CV и резюме. Я проверяю, на сколько оно «правдивое». Т.е. разговор идет о том, что делал, как делал, зачем делал, что получилось. Разработчик только тогда senior level, когда он может выполнять работу «от и до» полностью без супервизии. Поэтому, если речь идет о такой позиции, то интересно, в первую очередь, как быстро человек может учиться. И чему он за время работы научился (если долго работал). Если джуниор, то чему научился в институте.

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

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

Я предлагал кандидату написать на бумаге реализацию strcpy.

Я часто спрашиваю «наоборот»: «наивной реализацией какой стандартной libc’шной функции является while (*p++ = *q++);», исключительно дабы проверить знания базового синтаксиса.

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

Да, в евро. Сообщение выше было за берлинский рынок.

Чуть больше €140k в год? За хорошего спеца? Pre-tax? Это не так много, и это не то что-бы я выпячивал напоказ. Хотя если Вы лично организовали бизнес который позволяет платить такие зарплаты - это уже само по себе достойно уважения.

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

да какой там бизнес, пилят гранты на крипту которые бутерин раздает

а так типичная зп берлина 90к какой бы там звездный кодерок не был

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

В IBM пусть нагибают и прогибают, я согласна.

Не удержался. «Эвоно как» (c).

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

печаль наступает после вычета налогов на 40к-45к

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

Прав:-) В нуле это состояние неустойчивого равновесия, он там формально может бесконечно долго стоять.

Там два режима, с проскальзыванием и без. Начиная от некоторого критического угла начинается проскальзывание, угол зависит от коэффициента трения и пр. И вот с проскальзывания все самое интересное и начинается…

Они не злые, они мои коллеги - шо поделать если мы моделированием занимаемся:-( За они год кстати так никого и не нашли. Хотя приходили очень разные люди.

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