nyurka: (Default)
[personal profile] nyurka
Ни хрена не успеваю.
Везде завал, куча проблем, крокодил не ловится, кокос не растет, алгоритм не пишется, проект валится не начавшись.

Ребят подскажите мне 6-8 заданий для экзамена для начинающего программера по С/С++.
Времени нет интервью проводить, хоть дать начальству пусть кого-нибудь посадит выдавать эти листочки потенциальным претендентам.
А то народ ждет, а я уже только что из туалета собеседования не провожу.
Сегодня по дороге на работу в машине по телефону общалась.

Надо где-то пару заданий на С++ с классами, пару на простейшую отрисовку простейшего битмапа и сколько-нибудь общих.
Что-нибудь поумнее реверса списка. Это только ленивый наизусть не заучил.

on 2009-02-01 04:32 pm (UTC)
Posted by [identity profile] shadow-at-night.livejournal.com
Реализация простой системы Parent-Children - класс, который может присоединять детей, выполнять действие для себя и всех своих детей и т.д. Соответственно, со всеми функциями для создания, удаления, проверки детей.

on 2009-02-01 04:38 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Лови:

1. Какие два вида перегрузки функций Вы знаете.
2. Что такое множественное наследование, чем оно плохо.
3. Что такое шаблонный класс.
4. Что делает паттерн "singletone", назовите типичное применение такого паттерна.
5. Что делает паттерн "class factory", где его имеет смысл применять.
6. почему запись if (1 == x) на практике лучше, нежели if (x == 1)
7. Структура битмапа выглядит вот так... (показать википедию) напишите функцию, создающую из битмапа битмап с указанными координатами (crop).
8. Чем однонаправленный список отличается от двунаправленного?
9. Какие стандартные контейнеры Вы знаете? Объясните приемущества использования одних по отношению к другим для различного класса задач.
10. Есть вот такой код:

char* p = NULL;

p = new char[10];
...
...
...
delete p;

Объясните, что здесь не так и почему.

11. Вам нужно заполнить одним и тем же значением все элементы двумерного массива, напишите три способа это сделать: самый медленный, побыстрее и самый быстрый.
12. Что такое итератор контейнера, зачем он нужен.
13. Чем плоха идея объявить все члены класса открытыми.

on 2009-02-01 05:31 pm (UTC)
Posted by [identity profile] shadow-at-night.livejournal.com
2. Что такое множественное наследование, чем оно хорошо :)
4. Написать реализацию singleton'а. Чтобы была устойчива к многопоточности.
11. Самый быстрый - на каком процессоре и какого размера элементы? :) И если в поэлементное копирование вставить вызовы Sleep(10) - то сойдут ли способы за медленный и побыстрее? :)

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

on 2009-02-01 06:56 pm (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Я видел массу людей, которые бодро тарабанили про реверс списка, но мычали и бледнели в ряде "простых" вопросов.

on 2009-02-01 07:35 pm (UTC)
Posted by [identity profile] shadow-at-night.livejournal.com
Не спорю. Но ведь просят именно задачки дать - как раз таки чтобы как можно меньше времени проводить за собеседованием.

on 2009-02-02 09:23 am (UTC)
Posted by [identity profile] nyurka.livejournal.com
Спасиб огромный!

on 2009-02-02 09:21 am (UTC)
Posted by [identity profile] nyurka.livejournal.com
СПАСИБИЩЕ!!!

on 2009-02-02 09:23 am (UTC)
Posted by [identity profile] cynicanonimus.livejournal.com
Буду рад, если это сгодится. На самом деле, конечно, надо обязательно проверять еще и понимание многопоточности, если это есть в проекте.
Posted by [identity profile] premaman.livejournal.com
Только не singleton - его уже бедного заездили на всех интервью. Есть достаточно других паттернов, тот же фасад или медиатор, только я не знаю на сколько это начальный уровень.
Я бы попросила порассуждать на тему Inheritance vs. Composition или как иnheritance нарушает encapsulation и послушала бы как человек разбирается в теме.
А ещё хорошо дать код почитать, по той теме в которой претендент будет работать, пусть расскажет что знает :)
Posted by [identity profile] shadow-at-night.livejournal.com
>Только не singleton - его уже бедного заездили на всех интервью.
Сможете нормальную реализацию привести?
>Есть достаточно других паттернов, тот же фасад или медиатор, только я не знаю на сколько это начальный уровень.
Эти паттерны в обычной работе врядли пригодятся и расчитывать на их знание - бесполезно (ибо не даст ничего - человек который их не знает очень вероятно не так уж и плох)
>Я бы попросила порассуждать на тему Inheritance vs. Composition или как иnheritance нарушает encapsulation и послушала бы как человек разбирается в теме.
Вот это имхо пустые слова будут. Хотя фиг знает...
>А ещё хорошо дать код почитать, по той теме в которой претендент будет работать, пусть расскажет что знает :)
А это - хорошая вещь :)
Posted by [identity profile] premaman.livejournal.com
Вы очень безапелляционно рассуждаете :)
Извините, но мне абсолютно не интересно вести беседу в таком ключе, в добавок тяжело с русскими компьютерными терминами.
На счёт singleton:) именно это меня и спрашивали на интервью и почти всех моих знакомых, это как бородатый анекдот.
Медиатор и фасад используют :) может быть вы не сталкивались.
На счёт пустых слов.. я пропущу мимо ушей.
Posted by [identity profile] shadow-at-night.livejournal.com
1. Думаю, все паттерны можно использовать. Другое дело, что кроме парочки из них знать остальные не является обязательным условием для хорошего программиста. Нужны они бывают редко, а когда нужны - можно посмотреть детали в книжке. Главное - знать в общих чертах...
2. Рассуждения на тему наследования и аггрегации действительно считаю пустыми. Ну не выявляют они хороших программистов!
3. А синглетон потому и спрашивают, что это полезно и достаточно глубоко. Не уверен, что даже те, кого уже спрашивали, смогут нормально его реализовать.

on 2009-02-01 08:25 pm (UTC)
Posted by [identity profile] vitbel2000.livejournal.com
class A
{
public:
A() { foo(); }
virtual ~A() { foo(); }
virtual void foo() { cout << "aaa" << endl; }
}

class B : public A
{
public:
void foo() { cout << "bbb" << endl; }
}

int main(int argc, char *argv[])
{
B b;
}

on 2009-02-01 09:11 pm (UTC)
Posted by [identity profile] vitbel2000.livejournal.com
1. Что делает not_so_auto_ptr?
2. Будет ли работать main?
3. Если нет то почему?
4. Как починить?
5. Что еще стоит добавить к классу?

class not_so_auto_ptr
{
public:
not_so_auto_ptr(T* p =0) { _p = p; }
~not_so_auto_ptr() { if(_p) delete _p; }
T& operator*() const { return *_p; }
T* operator->() const { return _p; }
not_so_auto_ptr& operator=(not_so_auto_ptr& rhs) { _p = rhs._p; }

private:
T *_p;
}

class A() {}

not_so_auto_ptr foo() {
return not_so_auto_ptr
(new A());
}

int main(int argc, char *argv[])
{
not_so_auto_ptr
x(new A());
not_so_auto_ptr
y;
y = x;

not_so_auto_ptr
z = foo();
}

on 2009-02-01 09:12 pm (UTC)
Posted by [identity profile] vitbel2000.livejournal.com
Не проверял что компилируется, но идея думаю ясна.

on 2009-02-02 09:22 am (UTC)
Posted by [identity profile] nyurka.livejournal.com
СПАСИБИЩЕ!!!

on 2009-02-02 09:24 am (UTC)

on 2009-02-02 10:02 pm (UTC)
Posted by [identity profile] fludietrich.livejournal.com
Я прошу написать функцию от двух параметров : вектор элементов и вектор индексов элементов из первого вектора, которая максимально эффективно удаляет те элементы первого вектора, индексы которых содержатся во втором векторе. Еще прошу привести эффективный алгоритм, проверяющий находится ли данная точка внутри или тетраэдра. Второй пример для тебя может быть не столь важным.

Profile

nyurka: (Default)
nyurka

January 2013

S M T W T F S
   1 2345
6789101112
13141516171819
20212223242526
2728293031  

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 22nd, 2026 09:08 pm
Powered by Dreamwidth Studios