Re[6]: Вопрос на собеседовании
От: landerhigh Пират  
Дата: 14.11.08 11:21
Оценка: :)
Здравствуйте, Dog, Вы писали:

L>>Редактору студии до возможностей и удобства vim как до Парижа ползком через Антарктиду.

Dog>Ага, только разница в том, что редактор студии находится в Париже, а vim в Антарктиде. И ползти туда никакого желания нет.
Ну, в Антарктиде я пока не бывал, но смею предположить, что общество пингвинов в некотором смысле может быть приятнее общества парижских албанцев
Re[7]: Вопрос на собеседовании
От: SkyDance Земля  
Дата: 14.11.08 14:22
Оценка:
L>Ну, в Антарктиде я пока не бывал, но смею предположить, что общество пингвинов в некотором смысле может быть приятнее общества парижских албанцев

Точно-точно. А аскетизм антарктических снегов придает неповторимый колорит этому самому обществу.
Нет уж, спасибо, мы уж лучше в Париже как-нибудь, с вынужденными командировками в Антарктику.
Re[8]: Вопрос на собеседовании
От: landerhigh Пират  
Дата: 15.11.08 03:06
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>Точно-точно. А аскетизм антарктических снегов придает неповторимый колорит этому самому обществу.

SD>Нет уж, спасибо, мы уж лучше в Париже как-нибудь, с вынужденными командировками в Антарктику.
Антарктические снега и отрицательная температура большую часть года означает отсутствие всяких насекомых и вирусов. Почти стерильная обстановка.
Да и командировка из Антарктиды в Париж выглядит привлекательнее, нежели наоборот
Re[6]: Вопрос на собеседовании
От: landerhigh Пират  
Дата: 15.11.08 04:47
Оценка:
Здравствуйте, aik, Вы писали:

aik>Гы. Там даже workspace нету, чтоб можно было искать "только по файлам в workspace". Не, это ну совсем не IDE.

Эээ.
У вас не совсем верная информация.
Re: Вопрос на собеседовании
От: SE Украина  
Дата: 15.11.08 06:55
Оценка:
Здравствуйте, FSerdukov, Вы писали:

FS>Каков корректный ответ на этот вопрос?


В таких случаях я отвечаю так: в последнее время я часто использовал контролы A, B, C, немного реже X, Y, Z. А в случае сомнений я сверяюсь с MSDN, читаю рекомендации по использованию, оцениваю применимость.
Если такого ответа недостаточно, собеседующий идет лесом. Если распрашивает меня про A, B, C подробней — я только рад.

Раз пошла такая пьянка, прокомментируйте следующие вопросы по базовой части .NET (отвечать не надо, просто оцените адекватность )

1. Скомпилируется ли код, и что происходит "за кулисами", если написать object o = 1;?

2. Что возвращает медот int SomeMethod(int i) { return i++; }

3. В каких случаях экземпляр value-type может оказаться в куче? А наоборот, экземпляр reference-type в стеке?

4. В чем разница между простой передачей параметра в функцию и передачей c модификатором ref для структур? А для классов?

5. Какова судьба экземпляра класса, у которого в конструкторе было выкинуто исключение (создастся/не создастся, будет доступен или нет, сборка мусора и т.д.)

6. Паттерн реализации IDisposable

7. Все знают, что catch(Exception) — это плохо, а расскажите почему плохо?

Вопросов на самом деле много, это малая часть из них, и используются они для нахождения тем, интересных собеседнику, т.е. для развития дискусии.
Re[2]: Вопрос на собеседовании
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 15.11.08 20:37
Оценка: 9 (2)
Здравствуйте, SE, Вы писали:

SE>1. Скомпилируется ли код, и что происходит "за кулисами", если написать object o = 1;?


Слишком неконкретно.

SE>2. Что возвращает медот int SomeMethod(int i) { return i++; }


Не удивлюсь, если приличный разработчик без плюсового бэкграунда на этот вопрос не ответит.

SE>3. В каких случаях экземпляр value-type может оказаться в куче? А наоборот, экземпляр reference-type в стеке?


Касательно первой части — не очень удачный, имхо, вопрос. По второй части — хм, ну теоретически я знаю, как реф-тип запихнуть в стек, но спрашивать подобное на собеседовании?

SE>4. В чем разница между простой передачей параметра в функцию и передачей c модификатором ref для структур? А для классов?


Более менее

SE>5. Какова судьба экземпляра класса, у которого в конструкторе было выкинуто исключение (создастся/не создастся, будет доступен или нет, сборка мусора и т.д.)


Нормально

SE>6. Паттерн реализации IDisposable


Наизусть? Зачем? Лучше проб\демонстрировать паттерн и попросить объяснить, где, что и почему.

SE>7. Все знают, что catch(Exception) — это плохо, а расскажите почему плохо?


Негодная формулировка. "Все знают" выкинуть.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[3]: Вопрос на собеседовании
От: Eugeny__ Украина  
Дата: 15.11.08 23:22
Оценка: 6 (1)
Здравствуйте, AndrewVK, Вы писали:

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


SE>>1. Скомпилируется ли код, и что происходит "за кулисами", если написать object o = 1;?


AVK>Слишком неконкретно.


Имеющий опыт на жабе запутается. Хотя в шарпе (вроде) код корректный. Если мне не изменяет трехгодовая память, и ничего не поменялось, произойдет боксинг "1" в объект инт(а вот тут не помню, какой, 32, наверное).
В жабе это некомпилируемый код.

SE>>2. Что возвращает медот int SomeMethod(int i) { return i++; }


AVK>Не удивлюсь, если приличный разработчик без плюсового бэкграунда на этот вопрос не ответит.


Да ну, тут многие ответят. Благо, сишный синтаксис постоператора ++ весьма распространен. Хотя сам пример абсолютно бессмысленен, не смог представить, как бы его применить. Вот тупо спросить, в чем отличие ++i от i++ еще можно, но тоже не особо осмысленно. По большому счету, если кто-то напишет i = i + 1, никто не пострадает.

SE>>3. В каких случаях экземпляр value-type может оказаться в куче? А наоборот, экземпляр reference-type в стеке?


AVK>Касательно первой части — не очень удачный, имхо, вопрос. По второй части — хм, ну теоретически я знаю, как реф-тип запихнуть в стек, но спрашивать подобное на собеседовании?


Вот тут бы я завалился. Мало знаком с value-type(но я жавист по большей части, там нет структур).
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[4]: Вопрос на собеседовании
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.11.08 00:19
Оценка:
Здравствуйте, Eugeny__, Вы писали:

E__>Имеющий опыт на жабе запутается.


Да дело не в этом. Все эти вопросы с подковыркой непойми что тестируют. Почему нельзя просто спросить что такое автобоксинг и попросить привести пример, этот самый автобоксинг демонстрирующий?

E__>Да ну, тут многие ответят.


Тут это где? Вот я лично ++i за 5 лет в продакшн коде, кажется ни разу не применял, и кода, который полагается на значение, возвращаемое i++ стараюсь избегать.

AVK>>Касательно первой части — не очень удачный, имхо, вопрос. По второй части — хм, ну теоретически я знаю, как реф-тип запихнуть в стек, но спрашивать подобное на собеседовании?


E__>Вот тут бы я завалился. Мало знаком с value-type(но я жавист по большей части, там нет структур).


На самом деле все тривиально — структуры расположены в куче, если они являются полем реф-типа либо забоксены. Просто опять вопрос сформулирован косвенно. А вот что касается второй части — хотелось бы услышать от автора его вариант ответа.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[5]: Вопрос на собеседовании
От: Cyberax Марс  
Дата: 16.11.08 00:24
Оценка:
Здравствуйте, AndrewVK, Вы писали:

E__>>Имеющий опыт на жабе запутается.

AVK>Да дело не в этом. Все эти вопросы с подковыркой непойми что тестируют. Почему нельзя просто спросить что такое автобоксинг и попросить привести пример, этот самый автобоксинг демонстрирующий?
Ну это понятно почему. Ответ на "что такое автобоксинг" можно выучить по книжке.

Я в собеседованиях подобным образом поступаю — знание концепций проверяю с помощью косвенных вопросов.

E__>>Да ну, тут многие ответят.

AVK>Тут это где? Вот я лично ++i за 5 лет в продакшн коде, кажется ни разу не применял, и кода, который полагается на значение, возвращаемое i++ стараюсь избегать.
Ну не знаю. Я часто использую что-то типа:
int row=1;
for(SomeObject obj : coll)
{
   SomeControl ctrl=new SomeControl(obj);
   something.add(row++,ctrl);
}


А "++i" — это в С++ правильный способ работы с итераторами.

Вот i +++++ i — это да, за такое пинать надо на собеседованиях.

AVK>На самом деле все тривиально — структуры расположены в куче, если они являются полем реф-типа либо забоксены. Просто опять вопрос сформулирован косвенно. А вот что касается второй части — хотелось бы услышать от автора его вариант ответа.

Может имелся в виду escape analysis?
Sapienti sat!
Re[6]: Вопрос на собеседовании
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.11.08 00:29
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ну это понятно почему. Ответ на "что такое автобоксинг" можно выучить по книжке.


Пример с объяснением легко этот вопрос выясняет. Да и, в любом случае, человек зазубривший книжку легко распознается без приемчиков аля Торквемада.

C>Ну не знаю.


А я знаю. И код вроде твоего часто вижу у старых сишников. А вот сам стараюсь такого избегать.

C>А "++i" — это в С++ правильный способ работы с итераторами.


Но мы же не про С++ говорим, не так ли?

C>Может имелся в виду escape analysis?


В дотнете???
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[7]: Вопрос на собеседовании
От: Cyberax Марс  
Дата: 16.11.08 00:39
Оценка:
Здравствуйте, AndrewVK, Вы писали:

C>>Ну это понятно почему. Ответ на "что такое автобоксинг" можно выучить по книжке.

AVK>Пример с объяснением легко этот вопрос выясняет. Да и, в любом случае, человек зазубривший книжку легко распознается без приемчиков аля Торквемада.
Ну так "object obj=42;" — это как раз и есть пример. Программист обязан его распознать и объяснить.

C>>Ну не знаю.

AVK>А я знаю. И код вроде твоего часто вижу у старых сишников. А вот сам стараюсь такого избегать.
У меня просто много динамического GUI, а там такое часто встречается.

C>>А "++i" — это в С++ правильный способ работы с итераторами.

AVK>Но мы же не про С++ говорим, не так ли?
Просто сразу старого С++-ника не таком можно узнать.

C>>Может имелся в виду escape analysis?

AVK>В дотнете???
А чем он хуже Java? По крайней мере, хороший вопрос на знание теории.
Sapienti sat!
Re[5]: Вопрос на собеседовании
От: Eugeny__ Украина  
Дата: 16.11.08 01:09
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


E__>>Имеющий опыт на жабе запутается.


AVK>Да дело не в этом. Все эти вопросы с подковыркой непойми что тестируют. Почему нельзя просто спросить что такое автобоксинг и попросить привести пример, этот самый автобоксинг демонстрирующий?


Я против, что-ли?
Нужен реальный пример. Автобоксинг часто используется в коллекциях. Вот на него и можно простейший пример привести. Да и кроме этого немало возможностей. Тупо присваивание... Ни разу такого не использовал.

E__>>Да ну, тут многие ответят.


AVK>Тут это где? Вот я лично ++i за 5 лет в продакшн коде, кажется ни разу не применял, и кода, который полагается на значение, возвращаемое i++ стараюсь избегать.


Аналогично. Предпочту явно написать, пусть это будет не ++i(с определенной конструкцией), а пару строчек. Компилер и так соптимизирует, а человеку понятнее. Также, предпочитаю всегда писать скобки в условиях и выражениях, так как знаю, что не все наизусть знают приоритеты операций(ага, кто скажет вот так сразу приоритеты ВСЕХ операций, включая булевские?). Скобки всем понятны. А конструкции типа [a * b & с * ~e || с + b & a / e] напряжны по определению.

AVK>>>Касательно первой части — не очень удачный, имхо, вопрос. По второй части — хм, ну теоретически я знаю, как реф-тип запихнуть в стек, но спрашивать подобное на собеседовании?


E__>>Вот тут бы я завалился. Мало знаком с value-type(но я жавист по большей части, там нет структур).


AVK>На самом деле все тривиально — структуры расположены в куче, если они являются полем реф-типа либо забоксены. Просто опять вопрос сформулирован косвенно. А вот что касается второй части — хотелось бы услышать от автора его вариант ответа.


Да я знаю. Придется извратно использовать структуры — я внимательно прочту доки. Но обычно они используются по назначению(как стековые структуры внутри области видимости, обычно метода). Согласен, что вопрос не очень помогает понять что-то о кандидате — нужны, опять же, знания о нужных в работе вещах, а не о извратах.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[6]: Вопрос на собеседовании
От: Eugeny__ Украина  
Дата: 16.11.08 01:17
Оценка:
Здравствуйте, Cyberax, Вы писали:


C>Ну не знаю. Я часто использую что-то типа:

C>
C>int row=1;
C>for(SomeObject obj : coll)
C>{
C>   SomeControl ctrl=new SomeControl(obj);
C>   something.add(row++,ctrl);
C>}
C>


Неужели код:

int row=1;
for(SomeObject obj : coll)
{
   SomeControl ctrl=new SomeControl(obj);
   something.add(row,ctrl);
   row++ [or  row = row + 1]
}


более напряжный?

Напишу про такие случаи, и что может быть, когда буду трезвее, сегодня суббота, которую я проспал до 6 вечера, а сейчас немого нетрезв...
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[5]: Вопрос на собеседовании
От: SE Украина  
Дата: 16.11.08 08:43
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


E__>>Имеющий опыт на жабе запутается.


AVK>Да дело не в этом. Все эти вопросы с подковыркой непойми что тестируют. Почему нельзя просто спросить что такое автобоксинг и попросить привести пример, этот самый автобоксинг демонстрирующий?


Да нет, наоборот, народ бодро говорит "боксинг". Я спрашиваю что такое боксинг... ну и пошло-поехало, с примерами на коллекции и особенности работы со структурами через интерфейсы.

E__>>Да ну, тут многие ответят.


AVK>Тут это где? Вот я лично ++i за 5 лет в продакшн коде, кажется ни разу не применял, и кода, который полагается на значение, возвращаемое i++ стараюсь избегать.


Да, вопрос наверно не очень удачный, но не спрашивать же чему равно int i = i++; (кстати в С# поведение такого кода определено стандартом). А ответ "за такое по рукам надо бить" принимается как правильный тоже
Может уберу этот вопрос.

AVK>>>Касательно первой части — не очень удачный, имхо, вопрос. По второй части — хм, ну теоретически я знаю, как реф-тип запихнуть в стек, но спрашивать подобное на собеседовании?


E__>>Вот тут бы я завалился. Мало знаком с value-type(но я жавист по большей части, там нет структур).


AVK>На самом деле все тривиально — структуры расположены в куче, если они являются полем реф-типа либо забоксены. Просто опять вопрос сформулирован косвенно. А вот что касается второй части — хотелось бы услышать от автора его вариант ответа.


Еще структура оказывается в куче как часть массива. Удивительно, но мне попадались кандидаты с парой лет опыта в .NET, уверенные, что массивы хранятся в стеке, и даже что стринг — велью-тип
По поводу второй части ответа — я знаю только очень специфический способ с помощью stackalloc, поэтому ответы "не знаю", "нет такого способа" вполне принимаются.

Вообще никогда не провожу собеседования в виде "щас я его завалю". Вопросы потому и косвенные, что хочется втянуть в дискуссию. А на каждый свой вопрос я стараюсь объяснить ответ, если человек затрудняется ответить. Времени не жалко, зато 1) позволяет устранить недопонимание 2) оставляет хорошее впечатление о конторе в целом

Кроме того, я ж не принимаю решение hire/no-hire, за исключением случаев, когда ну совсем "увы и ах" по знаниям, или человек антипатичен (такое очень редко, но бывает). Я даю техническую оценку уровня опыта и знаний и общее впечатление. Иногда даже, приписываю что-то вроде "я очень хочу работать в команде с этим человеком!!!"

Громадное спасибо за ответы. Обязательно учту и постараюсь сформулировать вопросы поточнее.

P.S. За кадром еще остались вопросы по GC, витруальным методам, в том числе и в контрукторах, синхронизации потоков и простенькие по базам данных вроде того, что и почему вернет SELECT 1 WHERE NULL = NULL
Re[3]: Вопрос на собеседовании
От: SE Украина  
Дата: 16.11.08 08:53
Оценка:
Здравствуйте, AndrewVK, Вы писали:

SE>>6. Паттерн реализации IDisposable


AVK>Наизусть? Зачем? Лучше проб\демонстрировать паттерн и попросить объяснить, где, что и почему.


Конечно не наизусть. Хотя многие сами брали и писали наизусть на бумажке. Если человек говорил, что не реализовывал IDisposable, то тоже принимается. Для тех, кто плавет в вопросе, обычно задаю вопросы на тему, что будет если "забыть" использовать using, освободятся ли ресурсы, и когда они освободятся.

SE>>7. Все знают, что catch(Exception) — это плохо, а расскажите почему плохо?


AVK>Негодная формулировка. "Все знают" выкинуть.


Согласен, судя по коду, который к нам с новым проектом "приехал", выкинул "все знают"
Я еще задаю доп. вопрос: а есть ли место в программе, где catch(Exception) все же нужно писать.
Re[8]: Вопрос на собеседовании
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.11.08 09:43
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ну так "object obj=42;" — это как раз и есть пример. Программист обязан его распознать и объяснить.


Не на собеседовании. Потому что цель собеседования — не подловить на чем нибудь, а выяснить уровень. В конце концов, даже если не произносить слово автобоксинг, то можно привести пример с каким нибудь спецэффектом и попросить его объяснить. А не заставлять работать за компилятор да догадываться, что же собеседующий имел в виду.

AVK>>А я знаю. И код вроде твоего часто вижу у старых сишников. А вот сам стараюсь такого избегать.

C>У меня просто много динамического GUI, а там такое часто встречается.

У меня тоже есть места, где его много, но кода там такого нет.

AVK>>Но мы же не про С++ говорим, не так ли?

C>Просто сразу старого С++-ника не таком можно узнать.

Так я об этом и говорю.

C>>>Может имелся в виду escape analysis?

AVK>>В дотнете???
C>А чем он хуже Java?

Ничем. Только, ЕМНИП, и в релизной джаве его пока нет. Так что спрашивать такое на собеседовании неразумно.

C> По крайней мере, хороший вопрос на знание теории.


Теории чего? Построения оптимизирующих компиляторов? Совершенно бесполезный вопрос, если только целью не является завалить или продемонстрировать, что собеседующий умнее.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[6]: Вопрос на собеседовании
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.11.08 09:43
Оценка:
Здравствуйте, Eugeny__, Вы писали:

E__>Нужен реальный пример. Автобоксинг часто используется в коллекциях.


Да можно и без коллекций. Скажем то же копирование структуры vs копирование ссылки продемонстрировать.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[6]: Вопрос на собеседовании
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.11.08 09:43
Оценка: 7 (2) +2
Здравствуйте, SE, Вы писали:

SE>Да нет, наоборот, народ бодро говорит "боксинг". Я спрашиваю что такое боксинг... ну и пошло-поехало, с примерами на коллекции и особенности работы со структурами через интерфейсы.


Ну и зачем идти окольными путями? Суть ведь не в том, что боксинг, а в том, что он делает и какие от этого результаты. Так почему сразу не спросить нужное?

SE>Да, вопрос наверно не очень удачный, но не спрашивать же чему равно int i = i++;


Вообще не надо это спрашивать, знание/незнание сего почти никак не сказывается на уровне разработчика.

SE>Еще структура оказывается в куче как часть массива.


Вот поэтому вопрос и неудачный. Спрашивать надо не где оно окажется, за бесполезностью сего знания, а о том, где окажется массив структур. У тебя почти все такие вопросы в стиле "догадайся что я имел в виду". Зачем?

SE> Удивительно, но мне попадались кандидаты с парой лет опыта в .NET, уверенные, что массивы хранятся в стеке, и даже что стринг — велью-тип


Ну так и спрашивай конкретно — где храняться массивы и является ли string value-типом.

SE>По поводу второй части ответа — я знаю только очень специфический способ с помощью stackalloc, поэтому ответы "не знаю", "нет такого способа" вполне принимаются.


На МC++ было можно, не знаю, оставили ли эту фичу в C++/CLI. Но зачем такое спрашивать на собеседовании, если даже сам точного ответа не знаешь?

SE>Вообще никогда не провожу собеседования в виде "щас я его завалю". Вопросы потому и косвенные, что хочется втянуть в дискуссию.


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

SE> А на каждый свой вопрос я стараюсь объяснить ответ, если человек затрудняется ответить.


Слушай, ты попросил оценить вопросы, а не твой способ проведения собеседования. Я тебе ответил.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[7]: Вопрос на собеседовании
От: Pzz Россия https://github.com/alexpevzner
Дата: 18.11.08 15:36
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Редактор MSVS и на самом деле сильно уступает Vim (на всякий случай: и Emacs), из чего, впрочем, не следует, что MSVS плохо использовать для разработки.


Их можно скрестить.
Re[5]: Вопрос на собеседовании
От: comm Россия http://bipulse.ru
Дата: 19.11.08 22:46
Оценка:
Здравствуйте, The Lex, Вы писали:

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


SA>>А может, важнее знать хотя бы ...

SA>>или важнее перечислить за пять минут содержимое вкладки All Windows Forms?

TL>На собеседовании "собеседуются" _обе_ стороны...


У меня на эту тему теперь байка есть:

Когда я проходил собеседование в последний раз, интервьювер, закончив ,пожаловался другому сотруднику:
"Я не понял, кто кого собеседовал? "

То есть бывает что и кандидат тестирует компанию на проф. пригодность.
Тут надо сотруднику компании правильно все рассказать чтобы зинтерисовать потенциального сотрудника.
С уважением, Алексей Васильев. http://bipulse.ru
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.