История одного собеседования по C++.
От: pkl  
Дата: 13.03.13 13:45
Оценка:
Человек рисует два кружочка — "это клиент, а это — сервер. Давайте реализуем их взаимодействие. Пускай клиент отправляет файл, а сервер его проверяет и возвращает результат — валидный или битый".

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

Открываю редактор, пишу функцию main, которая берёт имя файла в качестве аргумента, пишет его имя в текстовый файл во временном каталоге...

Интервьюер: стоп, стоп, а чего это вы сразу функцию main решили написать?
Я: так у нас примитивный алгоритм, зачем тут что-то ещё?
И: а может стоит интерфейсы определить?
Я думаю: странное извращение: плодить сущности для такого говна, ну ладно...

В общем, пришли к обсуждению классов, интерфейсов, наследования, виртуальных функций, особенностей конструкторов и т.п. На все вопросы был дан правильный ответ. От них пришёл ответ о том, что у меня мало опыта.

Где тут прокол — мне надо было сразу догадаться, что для пустяковой проблемы следует нагородить умных универсальных интерфейсов с шаблонами или им следовало точнее задавать вопрос? ))
Re: История одного собеседования по C++.
От: pik Италия  
Дата: 13.03.13 13:59
Оценка:
Здравствуйте, pkl, Вы писали:


pkl>Где тут прокол — мне надо было сразу догадаться, что для пустяковой проблемы следует нагородить умных универсальных интерфейсов с шаблонами или им следовало точнее задавать вопрос? ))


проблема то пустяковая но вы ведъ её и не в реале решитъ должны были.
это ведъ именно СОБЕСЕДОВАНИЕ и нужно показатъ свои знания на простом примере
без шаблонов но с классами и интерфейсами, думаю даже требовалосъ как раз схематическое решение а не рабочий код в мейне. опытный программист начинает с объектов и интерфейсов а не сразу мысли в коде одной функции излагатъ.
вам нужно на простом примере показатъ как вы подходите к выполнению задач в принципе
Re: История одного собеседования по C++.
От: Vzhyk  
Дата: 13.03.13 14:01
Оценка:
On 13.03.2013 16:45, pkl wrote:

> Человек рисует два кружочка —

О, запасаюсь попкорном. А в одном кружочке была стрелочка, а другом крестик?
Posted via RSDN NNTP Server 2.1 beta
Re[2]: История одного собеседования по C++.
От: Vzhyk  
Дата: 13.03.13 14:04
Оценка: :)
On 13.03.2013 16:59, pik wrote:

> без шаблонов но с классами и интерфейсами, думаю даже требовалосъ как

> раз схематическое решение а не рабочий код в мейне. опытный программист
> начинает с объектов и интерфейсов а не сразу мысли в коде одной функции
> излагатъ.
Ждемс изложения правильного решения оного. Ждемс, ждемс.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: История одного собеседования по C++.
От: pik Италия  
Дата: 13.03.13 14:08
Оценка:
Здравствуйте, Vzhyk, Вы писали:


V>Ждемс изложения правильного решения оного. Ждемс, ждемс.


решения чего? он ведъ сам понял что подход был неверным вот и правилъно понял на будущее
Re: История одного собеседования по C++.
От: Vzhyk  
Дата: 13.03.13 14:09
Оценка: 1 (1) +2
On 13.03.2013 16:45, pkl wrote:

> Где тут прокол — мне надо было сразу догадаться, что для пустяковой

> проблемы следует нагородить умных универсальных интерфейсов с шаблонами
> или им следовало точнее задавать вопрос? ))
Ну и по сути. Этот собеседователь просто хотел увидеть от тебя точно
такое же решение, как сделал бы он. Все.
Очень многие начальники, тем более собеседователи, не знают и не
понимают кого они ищут и ищут-ли вообще, поэтому очень часто они ищут
копию себя. И если ты не показываешь им такие же подходы, как бы сделали
они — ты не подходишь.
Posted via RSDN NNTP Server 2.1 beta
Re: История одного собеседования по C++.
От: Alexéy Sudachén Чили  
Дата: 13.03.13 14:09
Оценка: 15 (1) +1 :))
pkl>В общем, пришли к обсуждению классов, интерфейсов, наследования, виртуальных функций, особенностей конструкторов и т.п. На все вопросы был дан правильный ответ. От них пришёл ответ о том, что у меня мало опыта.
pkl>Где тут прокол — мне надо было сразу догадаться, что для пустяковой проблемы следует нагородить умных универсальных интерфейсов с шаблонами или им следовало точнее задавать вопрос? ))

Очевидно же что мало )))

Ну сам посуди, вот сидит команда, в вконтактике чатится, кывт троллит, на хабре карму сливает... тут ты такой быстрый всё сразу раз и сделал, без одобренной многослойной архитектуры и необходимых согласований. Команда что получается, идиоты? Или вот допустим компания зарабатывает на бараночасах, то есть чем больше баранов числится в проекте и чем дольше он тянется, тем больше инкам. Вдруг ты тут такой красивый раз и сразу всё сделал. Клиент конечно будет в восторге, но ты то зачем в такой компании нужен? Хотя компании то ты может и нужен, кто то же должен делать то на чём бараны числятся, но вот интервьювер, который вероятно сам кто-то типа лида, скорее всего в таком раскладе не заинтересован.

[disclaimer]
Всё написанное выше очевидно не имеет никакого отношения к реальности, возможные совпадения стопроцентно случайны.
[/disclaimer]
Re[4]: История одного собеседования по C++.
От: Vzhyk  
Дата: 13.03.13 14:13
Оценка:
On 13.03.2013 17:08, pik wrote:

> решения чего? он ведъ сам понял что подход был неверным вот и правилъно

> понял на будущее
Так верный то какой он не понял. Вот и пришел сюда спросить.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: История одного собеседования по C++.
От: pik Италия  
Дата: 13.03.13 14:29
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Так верный то какой он не понял. Вот и пришел сюда спросить.


сюда пришол за подтверждением своей догадки
очевидно ведъ что на собесдовании надо себя удачно "продатъ" а это включает и "следует нагородить умных универсальных интерфейсов"
Re: История одного собеседования по C++.
От: Kvd  
Дата: 13.03.13 14:34
Оценка:
Здравствуйте, pkl, Вы писали:

pkl>Где тут прокол — мне надо было сразу догадаться, что для пустяковой проблемы следует нагородить умных универсальных интерфейсов с шаблонами или им следовало точнее задавать вопрос? ))


Имхо прокол в том что были показаны знания, а требовался опыт.
Re[2]: История одного собеседования по C++.
От: Vzhyk  
Дата: 13.03.13 14:36
Оценка: :)
On 13.03.2013 17:34, Kvd wrote:

> Имхо прокол в том что были показаны знания, а требовался опыт.

Опыт телепатии.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: История одного собеседования по C++.
От: Alexéy Sudachén Чили  
Дата: 13.03.13 14:46
Оценка:
pkl>>Где тут прокол — мне надо было сразу догадаться, что для пустяковой проблемы следует нагородить умных универсальных интерфейсов с шаблонами или им следовало точнее задавать вопрос? ))
Kvd>Имхо прокол в том что были показаны знания, а требовался опыт.

Вполне возможно, но мало вероятно, что от испытуемого требовалось послать предложения о множестве умных универсальных интерфейсов в корзину, и настоять на простом решении? ))) Хотя, для этого опыта и знаний мало будет, нужно ещё кое что.
Re[6]: История одного собеседования по C++.
От: Alexéy Sudachén Чили  
Дата: 13.03.13 14:50
Оценка:
pik>сюда пришол за подтверждением своей догадки
pik>очевидно ведъ что на собесдовании надо себя удачно "продатъ" а это включает и "следует нагородить умных универсальных интерфейсов"

Кому очевидно? На собеседовании нужно быть собой. Если же перед тобой мыльный пузырь, который сам не понимает чего спрашивает, то тонко (или толсто) его троллить и больше туда не возвращаться. Такое вот у меня ИМХО )))
Re: История одного собеседования по C++.
От: Jolly Roger  
Дата: 13.03.13 14:52
Оценка:
Здравствуйте, pkl, Вы писали:

pkl>От них пришёл ответ о том, что у меня мало опыта.


Ну правильно ответили. Будь у Вас опыт, Вы бы знали, что любой системе, которой сегодня достаточно взаимодействовать через файл, завтра обязательно потребуется работа в локальной сети, а послезавтра — в интернет. Причем буквально на днях в вэбсервисах обнаружился фатальный недостаток, а самым модным внезапно стал HTTP++. И будете Вы свою "main" 100500 раз переписывать, превращая проект в...Ну Вы знаете во что.
"Нормальные герои всегда идут в обход!"
Re[7]: История одного собеседования по C++.
От: pik Италия  
Дата: 13.03.13 15:01
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:


AS>Кому очевидно? На собеседовании нужно быть собой. Если же перед тобой мыльный пузырь, который сам не понимает чего спрашивает, то тонко (или толсто) его троллить и больше туда не возвращаться. Такое вот у меня ИМХО )))


вот это "бытъ собой" надо уметъ максималъно хорошо продатъ. пузыръ надуватъ не надо но свои знания надо уметъ даже лучше чем естъ преподнести. собеседование это игра причём с обеих сторон, надо правила этой игры знатъ и бытъ хорошо к этому готовым т.е. говоритъ то что от тебя ожидают а не так как тебе хочется. в конце концов вы желаете получитъ контракт или нет? у вас естъ конкуренция, вы должны победитъ
Re: История одного собеседования по C++.
От: IID Россия  
Дата: 13.03.13 15:15
Оценка:
Здравствуйте, pkl, Вы писали:

pkl>Пускай клиент отправляет файл, а сервер его проверяет и возвращает результат — валидный или битый


Может они про цифровую подпись услышать хотели ?
kalsarikännit
Re: История одного собеседования по C++.
От: Miroff Россия  
Дата: 13.03.13 15:21
Оценка: 30 (6) +5
Здравствуйте, pkl, Вы писали:

pkl>Где тут прокол — мне надо было сразу догадаться, что для пустяковой проблемы следует нагородить умных универсальных интерфейсов с шаблонами или им следовало точнее задавать вопрос? ))


Примерно. Я бы уже после первого вопроса насторожился, термины "клиент" и "сервер" вполне однозначны и общеупотребимы, хотя, возможно, у C++ программистов какое-то особое видение. Если бы у тебя был опыт, ты бы знал что не бывает простейших задач, а любое временное решение имеет все шансы стать стандартом де-факто. Файл на диске это прекрасно для студенческой курсовой но в продакшене такие решения вызывают кучу проблем на ровном месте. Что будет если клиент и сервер потребуется разнести по нескольким машинам? Что случится если во временном каталоге закончится место? Как мы будем портировать решение на мак, если нам придется? Опытный разработчик отличается от неопытного тем что задумывается над подобными вопросами автоматически, не дожидаясь пока за него их поставит начальство.

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

pkl>им следовало точнее задавать вопрос? ))


Задача таких вопросов не получить от тебя готовый код, а посмотреть можете ли вы общаться "на одной волне": говорите на одном языке, принимаете одни и те же ценности, поклоняетесь одним и тем же богам. В данном случае оказалось что нет, они надрачивают на архитектуру и расширяемость, а ты предпочитаешь ad hoc решения. Если бы они тебя взяли, велика вероятность что вы бы просто не смогли вместе работать: ты бы казался им недалеким быдлокодером, а они тебе архитектурными астронавтами. Это не значит что кто-то из вас не прав, просто разные подходы.
Re[6]: История одного собеседования по C++.
От: Miroff Россия  
Дата: 13.03.13 15:26
Оценка:
Здравствуйте, pik, Вы писали:

pik>Здравствуйте, Vzhyk, Вы писали:


V>>Так верный то какой он не понял. Вот и пришел сюда спросить.


pik>сюда пришол за подтверждением своей догадки

pik>очевидно ведъ что на собесдовании надо себя удачно "продатъ" а это включает и "следует нагородить умных универсальных интерфейсов"

Ой не факт. Для Python программистов на собеседовании часто встречается зеркальная ситуация: дается задача написать какой-нибудь скрипт, человек начинает городить иерархии классов и паттернов после чего задание признают зафейленым по причине "использования ООП там где без него легко обойтись".
Re[7]: История одного собеседования по C++.
От: pik Италия  
Дата: 13.03.13 15:33
Оценка:
Здравствуйте, Miroff, Вы писали:


M>Ой не факт. Для Python программистов на собеседовании часто встречается зеркальная ситуация: дается задача написать какой-нибудь скрипт, человек начинает городить иерархии классов и паттернов после чего задание признают зафейленым по причине "использования ООП там где без него легко обойтись".


завалитъ при желании всегда можно, это ведъ нам известно ещё со времён институтов
как правило не приглашают на собеседовыние чтобы завалитъ.
в С++ пока ещё надо думатъ объекториентированно хотя конечно найдёстя какойнибудъ спец который вам докажет обратное
Re[2]: История одного собеседования по C++.
От: Michael7 Россия  
Дата: 13.03.13 15:36
Оценка:
Здравствуйте, pik, Вы писали:

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


Это смотря на какой стадии опытности он находится. Действительно опытный программист приучается не плодить лишние сущности там, где они не нужны. Keep It Simple Можно, конечно сказать, что закладывается развитие программы в дальнейшем, но из исходного вопроса не очевидно.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.