Re[22]: собеседование
От: Sanik Россия http://sergeysthoughts.blogspot.com/
Дата: 18.01.10 12:29
Оценка:
Здравствуйте, Sanik, Вы писали:

S>Здравствуйте, Олег К., Вы писали:


LMA>>>Разве только такие монстры как google, делают системы?


LMA>>>Вообще, наше направление "embedded" заставляет серьезно относиться к набору сотрудников. Просто ошибки действительно очень дорого часто обходятся.

ОК>>Что, Гугль уже пишет под embedded?

S>андроид — не оно?

хотя конешно врядли... эту часть затачивают те, кто железки делает...
... << RSDN@Home 1.2.0 alpha 4 rev. 1253>>
Re[17]: собеседование
От: LordMAD Россия  
Дата: 18.01.10 12:40
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Если ты занимаешся системными вещами, то я что-то не могу представить для чего там нужны такие большие числа которые могут вызвать переполнение.


Да я погляжу, ты себе вообще много чего представить не можешь. Я понимаю, что ты работаешь не в IT-конторе, и тебе сложно о таких вещах судить, но все же, честно говоря, разжевывать такие вещи мне лень.

ОК>И ты помнишь весь этот академический бред?

Да, потому что LSP — это базис. Я, конечно, понимаю, что есть люди, для которых и инкапсуляция — не более, чем "академический бред". Вообще меня увивляет количество людей, марширующих по знаменем воинствующего невежества. В чем кайф?

LMA>>Фраза "похоже на нарушение LSP" напротив объявления класса. Итересно — как бы это выглядело у тебя?

ОК>Ты не умничай. Ты код покажи а я скажу как бы сказал. В наших code review как-то не было такой фигни. Уж и не знаю что вы там обсуждаете.

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

LMA>>Если сообщу это информацию, некоторым сразу станет понятно где работаю, чего бы мне не хотелось. Научись уважать чужую privacy.

ОК>Слив засчитан.

Считай, как хочешь. Не уважаешь других — твои проблемы.

LMA>>Впрочем, если хочешь рассказать о себе — валяй.

ОК>Тут речь не обо мне, вообще-то.

Ну, да. Ну, да.
Re[17]: собеседование
От: LordMAD Россия  
Дата: 18.01.10 12:51
Оценка:
Здравствуйте, hrensgory, Вы писали:

>>> > К каким требованиям на предусловия (preconditions) и постусловия

>>> > (postconditions) приводит Принцип замещения Лисков (Liskov Substitution
>>> > Principle — LSP)?
>>
>> H>К сожалению, стало яснее только на 20%. Более всего интересуют примеры
>> H>вопросов к рядовому разработчику №№ 12 и 2 (если на все лениво примеры
>> H>приводить).

H>Спасибо, понятно. Вообщем, если отбросить странные академизмы, вроде

H>"принципа подстановки Лискова" — вполне нормальные вопросы для senior
H>уровня в большинстве софтверных контор.

Только почему "Лискова"? Если уж коверкать на русский манер, то получится "Лисковой". Хотя она, конечно, Лисков.

Ну, под senior вообще каждый своё понимает. Начиная от варианта, что он, в отличие от рядового разработчика, просто еще и проектированием занимается, и, заканчивая тем, что он курирует junior'ов.

H>Рискну предположить, что разрабатываете что-то программно-аппаратное.


Точно.
Re[21]: собеседование
От: LordMAD Россия  
Дата: 18.01.10 13:00
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> Вообще, наше направление "embedded" заставляет серьезно относиться к

>> набору сотрудников.
V>А в остальных можно безответственно? Или ты что-то другое имел в виду?

Нет, конечно. Просто тут это заметнее, что ли.

>> Просто ошибки действительно очень дорого часто

>> обходятся.
V>Т.е. вы ищите, кто никогда не ошибается? А кто никогда не ошибается?
V>Закончишь фразу сам.

Никогда не ошибаться невозможно. Просто это не повод брать кого попало.
Просто чем дороже ошибка, тем для всех очевиднее, что лучше нормально платить, чтобы брать тех, кто делает меньше ошибок.
Re[18]: собеседование
От: MozgC США http://nightcoder.livejournal.com
Дата: 18.01.10 13:08
Оценка: +1
Здравствуйте, LordMAD, Вы писали:

LMA>В качестве аналогии классический пример, что называется "из учебника": человек унаследовал класс квадрата от класса прямоугольника. Понятно, что я привожу искусственный пример, зато относительно наглядный.


Я конечно понимаю что вы начитались Роберта Мартина и его быструю разработку, и теперь все это стараетесь включить в вопросы на собеседованях, просто не забывайте что некоторые люди могут просто не знать умных названий и определений, но от этого они не обязательно становятся плохими специалистами. И даже наоборот, человек который вам перескажет главу из Боба Мартина по LSP и приведет все те примеры с прямоугольниками, квадратами, сетами и т.д. — не обязательно будет хорош на практике. Я знаю людей, которые не ответили бы на тот вопрос по LSP, но при этом у них по 10 лет опыта и они ПРЕКРАСНО делают свою работу. То же самое и по другим вашим вопросам. Что если человек не знает описание протокола kerberos? Все, он получается на архитектурный вопрос (это по вашему мнению) не ответил? А зачем вы собираетесь спрашивать вопросы о базах даннах в терминах реляционной алгебры? Разве кандидат у вас будет не c обычным SQL работать? Так может тогда лучше знания SQL и проверять? Дать к примеру задачку и попросить написать запрос ее решающий?
Re[22]: собеседование
От: Vzhyk  
Дата: 18.01.10 13:25
Оценка:
18.01.2010 15:00, LordMAD пишет:
>
> V>А в остальных можно безответственно? Или ты что-то другое имел в виду?
>
> Нет, конечно. Просто тут это заметнее, что ли.
Ни чем не заметнее, ровно одинаково. А то что ты пишешь — это
классический максимализм — "Мы круче всех".

>

> лучше нормально
> платить, чтобы брать тех, кто делает меньше ошибок.
Вот поэтому я и спросил, не Гугл ли вы?

P.S. Русские (белорусские, украинские) конторы, которые платят, как ты
описал выше, я не знаю вообще.
Posted via RSDN NNTP Server 2.1 beta
Re[19]: собеседование
От: LordMAD Россия  
Дата: 18.01.10 13:49
Оценка:
Здравствуйте, MozgC, Вы писали:

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


LMA>>В качестве аналогии классический пример, что называется "из учебника": человек унаследовал класс квадрата от класса прямоугольника. Понятно, что я привожу искусственный пример, зато относительно наглядный.


MC>Я конечно понимаю что вы начитались Роберта Мартина и его быструю разработку, и теперь все это стараетесь включить в вопросы на собеседованях, просто не забывайте что некоторые люди могут просто не знать умных названий и определений, но от этого они не обязательно становятся плохими специалистами. И даже наоборот, человек который вам перескажет главу из Боба Мартина по LSP и приведет все те примеры с прямоугольниками, квадратами, сетами и т.д. — не обязательно будет хорош на практике. Я знаю людей, которые не ответили бы на тот вопрос по LSP, но при этом у них по 10 лет опыта и они ПРЕКРАСНО делают свою работу. То же самое и по другим вашим вопросам. Что если человек не знает описание протокола kerberos? Все, он получается на архитектурный вопрос (это по вашему мнению) не ответил? А зачем вы собираетесь спрашивать вопросы о базах даннах в терминах реляционной алгебры? Разве кандидат у вас будет не c обычным SQL работать? Так может тогда лучше знания SQL и проверять? Дать к примеру задачку и попросить написать запрос ее решающий?


Я, к своему стыду, Роберта Мартина не читал. А еще я не очень хорошо отношусь к agile, но это другая история. Буду признателен, если Вы скажете, что именно из того, что я писал похоже на то, что написано там. Это я безо всякой иронии или скрытого смысла — мне правда интересно.

Я прекрасно понимаю, что может быть огромное число отличных разработчиков, которые никогда не знали или просто забыли, что такое LSP, никогда не имели ничего общего с kerberos, и при этом в состоянии разобраться с ним за 1 час. Просто моя цель на собеседовании — не выставить оценку человеку за его знания, а выбрать кандидата так, чтобы не взять неподходящего. Отсеять тех, кто возможно (всего лишь возможно) не подходит. Если мои вопросы "рубят" отличных разработчиков — это не проблема. Важно чтобы те, кто ответили — были отличными программистами.

Если для вакансии такой список тем, как я привел — этот человек не будет работать с конкретным диалектом SQL. Он будет писать что надо, например, в терминах реляционной алгебры, и передавать это специалистам по конкретным диалектам SQL. Я даже никогда не встречал человека, который хотя бы 3 диалекта SQL отлично знал, так что требовать всего — не вариант.
Re[7]: собеседование
От: swame  
Дата: 18.01.10 13:54
Оценка:
SA>Вы, когда мастеров-плиточников на работу нанимаете, тоже им задачки "собери 2 квадратных метра из 4 плиток" подкидываете? Или летку-еньку станцевать просите?

На плиточника не требуется несколько месяцев "въезжать в проект".
Если после найма не смог собрать трубемые 2 метра за 2-3 дня — просто выгоняется и все.
Re[20]: собеседование
От: MozgC США http://nightcoder.livejournal.com
Дата: 18.01.10 14:12
Оценка:
Здравствуйте, LordMAD, Вы писали:

LMA>Я, к своему стыду, Роберта Мартина не читал. А еще я не очень хорошо отношусь к agile, но это другая история. Буду признателен, если Вы скажете, что именно из того, что я писал похоже на то, что написано там. Это я безо всякой иронии или скрытого смысла — мне правда интересно.


Там написано про связь LSP с пред- и постусловиями, а так же есть пример с наследованием квадрата от прямоугольника. Так что складывается впечатление, что вы взяли это именно оттуда. Хотя возможно что-то из этого есть и у Мейера. Вы откуда взяли пример про прямоугольник с квадратом и связь LSP с контрактном? Насколько я помню, в статье Лисков этой связи не показано, да и я не уверен что в те времена уже было развито понятие design by contract, и лично я эту связь в купе с примером встречал только у Роберта Мартина.
Re[17]: собеседование
От: MescalitoPeyot Украина  
Дата: 18.01.10 16:17
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Ну Си шарп вообще параноидальный.


Вот C++:

warning C4390: ';' : empty controlled statement found; is this the intent?


И в целом elmal прав.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138>>
Re[21]: собеседование
От: LordMAD Россия  
Дата: 18.01.10 19:12
Оценка:
Здравствуйте, MozgC, Вы писали:

MC>Там написано про связь LSP с пред- и постусловиями,


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

MC>а так же есть пример с наследованием квадрата от прямоугольника.


Ну это классический пример из книги Скотта Мейерса Effective C++. Отличная книга, кстати. В top-5 книг по C++ я бы её точно включил.
Re[23]: собеседование
От: LordMAD Россия  
Дата: 18.01.10 19:48
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> лучше нормально

>> платить, чтобы брать тех, кто делает меньше ошибок.
V>Вот поэтому я и спросил, не Гугл ли вы?

Нет, и даже в нашем городе Google не присутствует.

На самом деле это просто экономия, хороший разработчик не настолько больше стоит, чем посредственный, насколько полезнее для дела.

V>P.S. Русские (белорусские, украинские) конторы, которые платят, как ты

V>описал выше, я не знаю вообще.

Просто обычно такое в не очень больших конторах, а они не так известны как крупные.
Re[18]: собеседование
От: Олег К.  
Дата: 18.01.10 22:37
Оценка:
MP>Вот C++:
MP>

warning C4390: ';' : empty controlled statement found; is this the intent?

MP>И в целом elmal прав.
И что, ты предлагаешь не помнить совсем синтаксис и полагаться на то что среда/компилятор подскажут или все-таки не допускать самому таких ситуаций в первую очередь? Я за последнее.
Re[18]: собеседование
От: Олег К.  
Дата: 18.01.10 22:50
Оценка:
LMA>Да я погляжу, ты себе вообще много чего представить не можешь. Я понимаю, что ты работаешь не в IT-конторе, и тебе сложно о таких вещах судить, но все же, честно говоря, разжевывать такие вещи мне лень.
Однако тебе не лень флеймить тут?

ОК>>И ты помнишь весь этот академический бред?

LMA>Да, потому что LSP — это базис. Я, конечно, понимаю, что есть люди, для которых и инкапсуляция — не более, чем "академический бред". Вообще меня увивляет количество людей, марширующих по знаменем воинствующего невежества. В чем кайф?
Вообще-то базис это сами понятия а не то как они называются. То что ты называешь LSP — это всего лишь fancy word.

LMA>>>Фраза "похоже на нарушение LSP" напротив объявления класса. Итересно — как бы это выглядело у тебя?

ОК>>Ты не умничай. Ты код покажи а я скажу как бы сказал. В наших code review как-то не было такой фигни. Уж и не знаю что вы там обсуждаете.
LMA>В качестве аналогии классический пример, что называется "из учебника": человек унаследовал класс квадрата от класса прямоугольника. Понятно, что я привожу искусственный пример, зато относительно наглядный.
Ха! Ты мне только что привел пример наследия а это, имхо, не есть само LSP. Если судить по слову substitution, то могу предположить что имеется в виду обычный полиморфизм — смособность разных объектов реагировать по-разному на одно и то же сообщение, если говорить академическим языком. То есть сам термин LSP применим к клиентскому коду который и работает с этими объектами.

И потом, я тебя не просил приводить мне пример наследования. Я тебя попросил привести конкретный пример (код) где бы ты сказал "похоже на нарушение LSP напротив объявления класса", а я бы объснил это по-своему.
Re[22]: собеседование
От: Олег К.  
Дата: 18.01.10 22:55
Оценка:
LMA>Ну, это сейчас вообще на каждом углу. Мы убрали его из корпоративного документа по собеседованиям после того, как это написали в английской википедии и количество знающий ответ заранее возросло. Кстати, очень жаль, потому что вопрос действительно очень хороший. Мне до сих пор не известно кто впервые обратил внимание на эту связь.
Все! Я понял. Вы там задались целью придумать вопросы на которые никто не ответит! Браво!
Re[13]: собеседование
От: ilvi Россия  
Дата: 19.01.10 03:46
Оценка: +1
Здравствуйте, Олег К., Вы писали:

ОК>Спрашиваю как внутри реализован std::list<>.


Можно узнать с какой целью задаются подобные вопросы?
Re[19]: собеседование
От: MescalitoPeyot Украина  
Дата: 19.01.10 08:38
Оценка: +1
Здравствуйте, Олег К., Вы писали:

ОК>И что, ты предлагаешь не помнить совсем синтаксис и полагаться на то что среда/компилятор подскажут или все-таки не допускать самому таких ситуаций в первую очередь? Я за последнее.


Я считаю что ситуаций в которых программисту надо о чем-то помнить, следить, обращать особое внимание должно быть как можно меньше. Надо ему пройтись по контейнеру от начала до конца — пусть так и пишет for each begin end, нужна длина строки — size; а все эти strlen'ы, char buffer[], +1, -1 — потенциальный багодром и на собеседовании лучше смотреть как соискатель умеет его избегать чем заставлять писать непривычный ему код и смотреть как он считает единички.

Точка с запятой вообще надуманная проблема, кода типа if (xxx); yyy(); ни разу не встречал, это может быть или неудачная копипаста или откровенное вредительство, но никак не результат незнания синтаксиса. В тоже время лично у меня половина ошибок первой компиляции если писать без IDE — пропущенная точка с запятой, забытые инклуды и std:/boost::. Смею вас заверить, где в С++ нужны/не нужны ';' и в каком пространстве лежит list/shared_ptr я знаю.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138>>
Re[23]: ну естественно
От: Pizarro  
Дата: 19.01.10 10:32
Оценка:
Здравствуйте, Олег К., Вы писали:

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

ОК>Все! Я понял. Вы там задались целью придумать вопросы на которые никто не ответит! Браво!

в этом и цель — письками померяться
http://retiredwizard.livejournal.com/51355.html
Re[9]: собеседование
От: modev  
Дата: 19.01.10 17:10
Оценка:
Здравствуйте, Олег К., Вы писали:

M>>Не всегда и float можно взять, не говоря уж про double. Long long и прочее тоже может не поощряться. Например, вычисления для мобильных платформ в fixed point. Там даже при несложной физике много тонких моментов вылезает. Правда, те же физические движки для моб. игр пишут одна-две конторы, остальным это не особо нужно. Готовым пользуются уже.

ОК>Твоя правда но мы не говорим тут о какой-то экзотике в большинстве своем. Потом, разве на плюсах пишут игры для мобилок? А еще там код ужасный и те кто этим занимается сами хотят свалить. Были тут посты.

Для "продвинутых" смартфонов пишутся на C или C++.

M>>Если у чела компания чем-то подобным занимается, то задача вполне оправдана. Такое и нужно спрашивать.

ОК>Не знаю чем они там занимаются, но если давать такие задания, то надо честно предупреждать чтобы принималось во внимание переполнение.

Просто иногда из названия самой компании/подразделения это может быть очевидно.
Например, есть библиотеки Intel Performance Library Primitives, там про обработку сигналов, фильтры изображений и т.д. Так там есть много на целочисленные вычисления. Вроде бы куски этих библиотек в Нижнем Новгороде писали. Может, и под arm версии этих или подобных библиотек остались, даже после продажи этого подразделения.
Или всевозможные программы/сервисы для захвата и стриминга видео со смартфонов. Там тоже может быть, например, задача повышения резкости сразу после захвата с камеры. Тоже в целых числах задача. Или популярные разработки в стиле "преврати смартфон в web-камеру" для Symbian или Windows Mobile. Тоже может быть какая-то пост-обработка захватываемого видео.
Re[14]: собеседование
От: Олег К.  
Дата: 20.01.10 01:58
Оценка:
ОК>>Спрашиваю как внутри реализован std::list<>.
I>Можно узнать с какой целью задаются подобные вопросы?
Спрашиваю потому что считаю что программист должен знать стандартные структуры данных и понимать в каком случае лучше использовать ту или иную структуру данных. Ответить на этот вопрос занимает 20 секунд.

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