Как лучше построить собеседование?
От: enji  
Дата: 30.08.12 20:58
Оценка: -3 :)
Возможно, мне вскоре придется провести несколько собеседований на программиста С/С++ для ембеддинга (и не только)

Думаю, как лучше это сделать?

Пока мысли такие:

Рассказать о будущей работе, ответить на вопросы (~5-10 мин)
Спросить о прошлом опыте, если он есть — поговорить поподробней о каких-то решениях, их последствиях (~5-10 мин)
Несколько простых вопросов на знание языка (~15-20 мин):
— напишите функцию реверса строки
— чему равен размер struct {int a; char c;}
— зачем нужен volatile

char buf[20]={0}; 
*(unsigned*)(buf+5)=123456;

чем чревато, как лучше?
— #define MAX(a,b) — как написать, чем чревато?
— как написать шаблонную функцию max? Что она должна возвращать?

//a.cpp: 
struct S{ string a; int b; } sa; 
//b.cpp: 
struct S{ int b; string a; } sb;

чем чревато? Как обойти?
— зачем нужен виртуальный деструктор? Как обойтись без него в случае, когда надо удалить объект, не зная его точного типа?
— Есть устройство, у которого могут быть разные каналы передачи данных (посл порт, tcp, twi, ...) и разные протоколы (отличаются форматом пакетов). Как бы вы спроектировали программу для него?

Дать "домашнее задание" по теме работы (~2-4 часа). К примеру: "Вот описание протокола управления устройством. Напишите программу, которая принимает стандартный ввод, выделяет из него команды и отвечает на них в стандартный вывод. Пока требуется реализовать поддержку только указанных команд (скажем, 4 или 5). Предусмотрите возможность добавления новых команд."
И оценить как работу проги (написать простой автотестер, который скормит кривые пакеты, случайный мусор, а также правильные команды и посмотрит на ответы), так и исходный код, наличие тестов, сборочного скрипта, репозитария dvcs


Покритикуйте, плиз.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.