Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.66
rikimaru2013
C++ Game Dev
2419 / 1113 / 240
Регистрация: 30.11.2013
Сообщений: 3,661
#1

Собеседования по С++ для джуна - C++

29.07.2015, 13:22. Просмотров 3994. Ответов 100
Метки нет (Все метки)

Добрый день,

если вы бы проводили собеседования по С++ для джуна - какой вопрос по С++ вы бы припасли как самый сложный?

Кликните здесь для просмотра всего текста
Для меня пока, что самый сложный вопрос (который расскрыл бы многие области знания по С++) такой:
- опишите все факторы, которые влияют на размер экземпляра класса. Какой минимальный и максимальный размер пустого класса.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,451
Записей в блоге: 17
30.07.2015, 19:25     Собеседования по С++ для джуна #61
Ок и какие языки вы считаете эти "нормальными" ?
rikimaru2013
C++ Game Dev
2419 / 1113 / 240
Регистрация: 30.11.2013
Сообщений: 3,661
30.07.2015, 21:51  [ТС]     Собеседования по С++ для джуна #62
Есть ли смысл давать тестовое задание ( что-то типа свой умный указатель, быстрая сортировка, демонстраций одного из паттернов) ? Ведь джун волнуется, руки трусятся, вероятнее всего дома стационарный комп и к ноутбуку не привык.
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.07.2015, 22:22     Собеседования по С++ для джуна #63
Цитата Сообщение от Voivoid Посмотреть сообщение
мне например нравится задача написать свой, несколько упрощенный, аналог shared_ptr
мне тоже понравилась задача решу на досуге)
Цитата Сообщение от ct0r Посмотреть сообщение
Можно начать с вопроса: а зачем нам может понадобиться свой, а не стандартный shared_ptr?
а можно получить ответ на этот вопрос?

rikimaru2013, что за глупость про не привычку к ноутбуку? да смысл есть, но лучше оставить джуна одного и дать времени чтобы хватило справиться с волнением и взять себя в руки. Но эт конечно, ИХМО
Butt-Head
Заблокирован
30.07.2015, 22:28     Собеседования по С++ для джуна #64
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
если вы бы проводили собеседования по С++ для джуна - какой вопрос по С++ вы бы припасли как самый сложный?
Очевидно же:
You have a 1TB file containing integers (one number per line). You have 2GB of memory. How do you sort this file as fast as possible?
rikimaru2013
C++ Game Dev
2419 / 1113 / 240
Регистрация: 30.11.2013
Сообщений: 3,661
30.07.2015, 22:47  [ТС]     Собеседования по С++ для джуна #65
Цитата Сообщение от ыфырф1992 Посмотреть сообщение
что за глупость про не привычку к ноутбуку?
у меня 7 лет одна марка клавиатуры, и 3 года одна мышка. Когда я сажусь за другой комп (я молчу уже про ноутбук) - я испытываю дискомфорт, и скорость написания падает на 30% минимум.
Velesthau
523 / 425 / 129
Регистрация: 25.11.2014
Сообщений: 1,662
30.07.2015, 22:50     Собеседования по С++ для джуна #66
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Есть ли смысл давать тестовое задание ( что-то типа свой умный указатель, быстрая сортировка, демонстраций одного из паттернов) ?
Никогда не видел смысла в тестовых заданиях.
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
что-то типа свой умный указатель
Можно просто поговорить по RAII и т. д..
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
быстрая сортировка
Для практики достаточно помнить лишь один алгоритм сортировки. Помнить все остальные - пустая трата времени, они описаны в любой книге по алгоритмам. Лучше помнить, какой будет работать лучше с теми или иными данными.
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
демонстраций одного из паттернов
Практическая польза паттернов - ооооочень спорная тема. Может, стоит сначала спросить, какие паттерны человек применял на практике, и зачем? Вдруг он разумен и не уродовал код ими.
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.07.2015, 22:54     Собеседования по С++ для джуна #67
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
скорость написания падает на 30%
дайте больше времени
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,013
31.07.2015, 04:34     Собеседования по С++ для джуна #68
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Есть ли смысл давать тестовое задание ( что-то типа свой умный указатель, быстрая сортировка, демонстраций одного из паттернов) ?
Иногда дают что-нибудь. Может даже совсем простое, для написания на бумажке. Просто посмотреть: кандидат код-то умеет писать? А то всякое бывает.

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

Не по теме:

Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Когда я сажусь за другой комп (я молчу уже про ноутбук) - я испытываю дискомфорт, и скорость написания падает на 30% минимум.
На скорость никто не станет обращать внимания. Не на машинистку же устраиваемся. Дискомфорт тоже объясним и ожидаем, но делать из этого проблему как-то смешно. У меня самого не совсем стандартная конструкция, что не мешает при необходимости работать за другими девайсами. Главное, чтобы были исправны.

Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
31.07.2015, 08:14     Собеседования по С++ для джуна #69
Цитата Сообщение от 0x10 Посмотреть сообщение
конструкция

Не по теме:

170 не наших отдали? И как, стоит оно того? А вы десятью пальцами на ней печатаете?

hoggy
6437 / 2655 / 460
Регистрация: 15.11.2014
Сообщений: 5,844
Завершенные тесты: 1
31.07.2015, 16:09     Собеседования по С++ для джуна #70
Цитата Сообщение от ct0r Посмотреть сообщение
hoggy, я пишу с телефона, но если ты сам копирнешь код в любой онлайн-компилятор с С++03, то убедишься, что код нормально отрабатывает. И в С++11 будет нормально, если прописать деструктору noexcept(false). Все дело в разной умолчательной спецификации исключений.
http://rextester.com/LZLARW16805

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//Title of this code
//g++  4.9.2
 
#include <iostream>
 
 
struct sample
{
    ~sample() 
    {throw 1; }
};
 
 
int main()
{
    std::cout << "Hello, world!\n";
    
    try
    { 
        sample s; 
    }
    catch(... )
    {
        std::cout << "upppsss!\n";
    }
    
    std::cout << "success!\n";
    
    
    
}
про noexcept(false) не знал.
спасибо.

Добавлено через 53 минуты
Цитата Сообщение от Ilot Посмотреть сообщение
Повторять одно и то же не собираюсь. Я все сказал здесь и здесь
ваш собственный код наглядно демонстрирует, что ни объекты,
ни структуры не могут быть нулевого размера.
и вы не сможете получить sizeof объекта или структуры равным нулю.

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

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

так например, ответ на заданный вами вопрос:
это связанно с особенностями выравнивания данных.

но могут быть и другие парадоксы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//Title of this code
//g++  4.9.2
 
#include <iostream>
 
struct some
{
    some(int (&a)[256]): a(a){}
    
    int (&a)[256];
};
 
int main()
{
    std::cout << "Hello, world!\n";
    
    
    int a[256];
    
    some s(a);
    
    
    std::cout << "size of class: " << sizeof(some) <<'\n';
    std::cout << "size of member of class: " << sizeof(some::a) <<'\n';
    
    if( sizeof(some) < sizeof(some::a) )
        std::cout<< "о боже! размер отдельно взятого члена почему то оказался больше,"
               " чем размер всего класса\n";
}
в этом примере размер класса и его членов попадает под правило о ссылках.
-----------------------------------------------

но это все приколы "типо-образования".

и к тезису о том,
что стуктуры(или объекты) якобы могут иметь нулевой размер,
отношения не имеет.
ct0r
Игогошка!
1768 / 670 / 42
Регистрация: 19.08.2012
Сообщений: 1,284
Завершенные тесты: 1
31.07.2015, 16:40     Собеседования по С++ для джуна #71
Цитата Сообщение от Avazart Посмотреть сообщение
Ок и какие языки вы считаете эти "нормальными" ?
Нет, я называть конкретно не буду, дабы не уйти от темы и не скатиться в очередной холивар.

Цитата Сообщение от ыфырф1992 Посмотреть сообщение
а можно получить ответ на этот вопрос?
Если у нас есть много std::shared_ptr в разных потоках, указывающих на один объект, то функции-члены этих std::shared_ptr thread-safe. Это обеспечивается атомарными операциями (над счетчиком с memory_order_relaxed например) внутри них. Поэтому если мы обращаемся всего лишь в одном потоке и не хотим платить скоростью за атомарность операций, то лучше использовать свой unsafe вариант.
Кстати замечу касательно реализации std::shared_ptr в libstdc++. Если она была собрана без опции --enable-threads, то все окей, атомарные операции не будут использоваться. Или если у нас в программе всего лишь один поток, то тоже не будут.

Цитата Сообщение от hoggy Посмотреть сообщение
http://rextester.com/LZLARW16805
Ага, падает, потому что С++11. Если там убрать опцию компилятора -std=c++11, то перестанет. Кстати почему rextester? Мне например http://melpon.org/wandbox/ больше нравится.

Цитата Сообщение от hoggy Посмотреть сообщение
про noexcept(false) не знал.
спасибо.
Кстати noexcept наконец-то нормальная вещь. Не то что старый throw, которым пользоваться себе дороже.
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
31.07.2015, 16:46     Собеседования по С++ для джуна #72
hoggy, sizeof это всего лишь оператор. Реально только адрес переменных в памяти. Так вот если адрес объекта b в моем примере равен адресу переменной b.x то очевидно что на часть базового класса в объекте b предоставляется 0 байт.
Что касается вашего примера то как говорил один бобер: "Ты не о том думаешь!".
Тут же в соседней теме подробно объясняется что есть ссылка. Так что не стоит вводить меня в заблуждение.
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,451
Записей в блоге: 17
31.07.2015, 17:03     Собеседования по С++ для джуна #73
Цитата Сообщение от ct0r Посмотреть сообщение
Нет, я называть конкретно не буду, дабы не уйти от темы и не скатиться в очередной холивар.
Ну тогда слив засчитан. Ибо говоришь А- говори Б.
ct0r
31.07.2015, 17:16
  #74

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
Ну тогда слив засчитан. Ибо говоришь А- говори Б.
Хочу - говорю, хочу - не говорю. "Засчитывать сливы" можешь сколько душе угодно, хоть звездочки у себя на бачке выбивай гвоздем

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 18:03     Собеседования по С++ для джуна
Еще ссылки по теме:
Вот такой тест скинули на Джуна, пока еще не решил PHP
Подскажите пожалуйста, как ответить на вопрос про полиморфизм в JAVA в достаточном объеме для прохождения собеседования Java SE
Задача с собеседования C (СИ)
PHP Вопросы с собеседования в nix Solutions.
Прохождение собеседования (Системный администратор)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
hoggy
6437 / 2655 / 460
Регистрация: 15.11.2014
Сообщений: 5,844
Завершенные тесты: 1
31.07.2015, 18:03     Собеседования по С++ для джуна #75
Цитата Сообщение от Ilot Посмотреть сообщение
sizeof это всего лишь оператор.
изначально речь шла о том, что размер структур и объектов не может быть ноль.
sizeof - это всего лишь оператор,
который возвращает размер структур или объектов.

Цитата Сообщение от Ilot Посмотреть сообщение
что на часть базового класса в объекте b предоставляется 0 байт.
"часть базового класса" - не является ни объектом, ни структурой.
это не более, чем абстракция в вашей голове.

если наследник скастит сам себя к своей базе,
то sizeof результата окажется таким же,
как и sizeof самого базового класса.

ну нужно путать понятие "объект" и "часть класса".
первое вторым не является.

Цитата Сообщение от Ilot Посмотреть сообщение
Что касается вашего примера то как говорил один бобер: "Ты не о том думаешь!".
целью демонстрации было показать,
что не нужно полагать что размер "целого" слагается из его "частей".

специально, в надежде, что адрес поймёт:
не нужно отожествялть "объект" или "структуру" с "частью структуры".
Yandex
Объявления
31.07.2015, 18:03     Собеседования по С++ для джуна
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru