Только что с интервью...
От: Mishka Великобритания  
Дата: 28.03.17 13:47
Оценка: +1 -1 :)
Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.
Вопрос: using в С# где и зачем
Ответ:
using 
{
  var o = new Object();
}
// здесь GC будет знать что объект свободен и его можно убрать


Re: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 14:23
Оценка: +8 -3
Здравствуйте, Mishka, Вы писали:

M>


Может переволновался человек.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Только что с интервью...
От: Michael7 Россия  
Дата: 28.03.17 14:28
Оценка:
Здравствуйте, IT, Вы писали:

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


M>>


IT>Может переволновался человек.


От волнения можно было синтаксис забыть, но вот, что using(...) работает только для классов с IDisposable, а не вообще любых объектов, это уже косяк, если она так и программы пишет. Впрочем, что там GC на практике сделает не всегда очевидно.
Re: Только что с интервью...
От: antropolog  
Дата: 28.03.17 14:51
Оценка: 3 (1) +4 -6 :)
Здравствуйте, Mishka, Вы писали:

M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.


серъёзно в банках это да ( читай — пускание пыли в глаза ), но вот то что на интервью у кандидата с 9 годами опыта спрашивают про using говорит лишь о том что собеседующий вчерашний студент, понятия не имеющий что такое разработка ПО, даже если ему под сраку лет.
Re[2]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 14:56
Оценка: +6
Здравствуйте, antropolog, Вы писали:

A>серъёзно в банках это да ( читай — пускание пыли в глаза ), но вот то что на интервью у кандидата с 9 годами опыта спрашивают про using говорит лишь о том что собеседующий вчерашний студент, понятия не имеющий что такое разработка ПО, даже если ему под сраку лет.


Не надо бузить. Нормальный вопрос, особенно для скрининга. На интервью приходит такое количество дураков, что задавать нормальные вопросы им не имеет никакого смысла. Такие вопросы как разминка и предварительное определение уровня кандидата вполне нормальны. Другое дело, что человек действительно может переволноваться.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Только что с интервью...
От: Mishka Великобритания  
Дата: 28.03.17 14:57
Оценка: +3
Здравствуйте, antropolog, Вы писали:

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


M>>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.


A>серъёзно в банках это да ( читай — пускание пыли в глаза ), но вот то что на интервью у кандидата с 9 годами опыта спрашивают про using говорит лишь о том что собеседующий вчерашний студент, понятия не имеющий что такое разработка ПО, даже если ему под сраку лет.


Серьёзный наезд, учитывя что вопрос по keywords основного языка.
Re[3]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 14:58
Оценка: :))) :)
Здравствуйте, Michael7, Вы писали:

M>От волнения можно было синтаксис забыть, но вот, что using(...) работает только для классов с IDisposable, а не вообще любых объектов, это уже косяк, если она так и программы пишет. Впрочем, что там GC на практике сделает не всегда очевидно.


Кстати, а что будет если убрать using?

{
  var o = new Object();
}
// здесь GC будет знать что объект свободен и его можно убрать?


Помню в плюсах частенько использовал такой финт, чтобы огранить время жизни объекта. В шарпе объект останется болтаться в стеке или будет зачищен?
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Только что с интервью...
От: antropolog  
Дата: 28.03.17 15:02
Оценка: +3 -3 :))) :)
Здравствуйте, Mishka, Вы писали:

M>Серьёзный наезд, учитывя что вопрос по keywords основного языка.


я даже не хочу с вами спорить. Я уже устал спорить в этом подфоруме с такими как вы. Вы просто не поймёте. Я уверен что человек знал что такое using. Более того, я уверен что любой кто 9 лет писал на C# знает что такое using. И ещё более того, я уверен что человек, который не знает что такое using и имеет 9 лет опыта в разработке (на любом языке) в разы более полезен как разработчик чем вчерашний студент прочитавший рихтера. И задавая подобные вопросы вы лишь показываете свою некомпетентность как собеседующий и полное отстутствие понимания кто такой хороший разработчик.
Re[3]: Только что с интервью...
От: antropolog  
Дата: 28.03.17 15:05
Оценка: +2 -2
Здравствуйте, IT, Вы писали:

IT>Не надо бузить.

надо

IT>Нормальный вопрос, особенно для скрининга.

для студентов да. Для опытных нет. Точнее это создаст отрицательный отбор на проходильщиков собеседований.

IT>На интервью приходит такое количество дураков, что задавать нормальные вопросы им не имеет никакого смысла.

для опытных людей как раз нормальные вопросы и имеют смысл

IT>Такие вопросы как разминка и предварительное определение уровня кандидата вполне нормальны.

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

IT>Другое дело, что человек действительно может переволноваться.

да.
Re[4]: Только что с интервью...
От: Evgeny.Panasyuk Россия  
Дата: 28.03.17 15:11
Оценка:
Здравствуйте, IT, Вы писали:

IT>Кстати, а что будет если убрать using?

IT>
IT>{
IT>  var o = new Object();
IT>}
IT>// здесь GC будет знать что объект свободен и его можно убрать?
IT>

IT>Помню в плюсах частенько использовал такой финт, чтобы огранить время жизни объекта. В шарпе объект останется болтаться в стеке или будет зачищен?

В каком стеке? Разве в C# завезли хотя бы примитивный escape analysis? В стэке будет указатель.
Что значит "будет зачищен"? Как это по-твоему выглядит в случае копирующего GC? Или ты только про вызов Dispose?
Re[4]: Только что с интервью...
От: Mishka Великобритания  
Дата: 28.03.17 15:12
Оценка: +7 :))) :))) :)
Здравствуйте, antropolog, Вы писали:

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


M>>Серьёзный наезд, учитывя что вопрос по keywords основного языка.


A>я даже не хочу с вами спорить. Я уже устал спорить в этом подфоруме с такими как вы. Вы просто не поймёте. Я уверен что человек знал что такое using. Более того, я уверен что любой кто 9 лет писал на C# знает что такое using. И ещё более того, я уверен что человек, который не знает что такое using и имеет 9 лет опыта в разработке (на любом языке) в разы более полезен как разработчик чем вчерашний студент прочитавший рихтера. И задавая подобные вопросы вы лишь показываете свою некомпетентность как собеседующий и полное отстутствие понимания кто такой хороший разработчик.


Ты сам начальник? Или с позиции программера размышляешь? Это вопрос на разминку, таких у меня штук 5 на 2 минуты разговора. Затем идём дальше. Если не понимать keywords используемого языка, то какой нафиг "полезнее"? Я ж не спрашиваю про goto в Java, вот это реально вопрос для викторины. Нафига нанимать программеров, которые не знают свой основной инструмент?

P.S. Вопрос 2 — что есть mutex и зачем он? Это тоже "о боже мой, вы совсем о..уели в своих банках"?
Re[4]: Только что с интервью...
От: Michael7 Россия  
Дата: 28.03.17 15:16
Оценка:
Здравствуйте, IT, Вы писали:


IT>Кстати, а что будет если убрать using?


IT>
IT>{
IT>  var o = new Object();
IT>}
IT>// здесь GC будет знать что объект свободен и его можно убрать?
IT>


IT>Помню в плюсах частенько использовал такой финт, чтобы огранить время жизни объекта. В шарпе объект останется болтаться в стеке или будет зачищен?


GC вычистит ненужный более объект (ушедший из поля видимости). Только using для этого не обязателен, это уже я поспешил замечание сделать. using нужен был, если требовалась очистка, даже при словленном исключении, то есть, это фактически аналог try{}finally{}
Re[2]: Только что с интервью...
От: v6  
Дата: 28.03.17 15:37
Оценка:
Здравствуйте, IT, Вы писали:

IT>Может переволновался человек.


Если переволновалась — исправится на следующих вопросах. Но судя по всему, этого не произошло.
Re: Только что с интервью...
От: sharpcoder Россия  
Дата: 28.03.17 15:40
Оценка: +2
Здравствуйте, Mishka, Вы писали:

M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.

M>Вопрос: using в С# где и зачем
M>// здесь GC будет знать что объект свободен и его можно убрать

Прикинь, она идеально знает алгоритмы, структуры данных, паттерны, машинленинг и т.п.
и при этом сама unig не использует, предпочитая вручную вызывать Dispose()?
Re[5]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 15:45
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>В каком стеке? Разве в C# завезли хотя бы примитивный escape analysis? В стэке будет указатель.


Я про указатель и говорю.

EP>Что значит "будет зачищен"? Как это по-твоему выглядит в случае копирующего GC? Или ты только про вызов Dispose?


Если указатель в стеке не обнулить или не переиспользовать, то висящий на нём объект будет болтаться в GC до выхода из метода. Вот я и спрашиваю, что там происходит.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 15:46
Оценка:
Здравствуйте, antropolog, Вы писали:

A>для студентов да. Для опытных нет.


У тебя есть однозначный чёткиий критерий кто есть студент, а кто опытный?
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 15:48
Оценка:
Здравствуйте, Michael7, Вы писали:

M>GC вычистит ненужный более объект (ушедший из поля видимости). Только using для этого не обязателен, это уже я поспешил замечание сделать. using нужен был, если требовалась очистка, даже при словленном исключении, то есть, это фактически аналог try{}finally{}


Давай без using. Нет его. Влияют ли скобки на время жизни объекта? С областью видимости переменной всё понятно. А как с объектом?
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Только что с интервью...
От: Mishka Великобритания  
Дата: 28.03.17 16:00
Оценка:
Здравствуйте, sharpcoder, Вы писали:

S>Прикинь, она идеально знает алгоритмы, структуры данных, паттерны, машинленинг и т.п.

S>и при этом сама unig не использует, предпочитая вручную вызывать Dispose()?

Это единственное где using используется?

Я всегда готов послушать, что опытные люди думают. Подкиньте "хорошие" вопросы, а то гублю кандидатов накорню и сам об этом не догадываюсь.
Re[4]: Только что с интервью...
От: Mishka Великобритания  
Дата: 28.03.17 16:04
Оценка: +4
Здравствуйте, antropolog, Вы писали:

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


M>>Серьёзный наезд, учитывя что вопрос по keywords основного языка.


A>Я уверен что человек знал что такое using. Более того, я уверен что любой кто 9 лет писал на C# знает что такое using.


Кстати, я более чем уверен, что этот конкретный человек наврал про 9 лет и вообще на C# никогда не писал. Прикинь такие тоже встречаются, не все кто в тельняшках моряки.
Re: Только что с интервью...
От: fmiracle  
Дата: 28.03.17 16:05
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.

M>Вопрос: using в С# где и зачем
M>Ответ:
M>// здесь GC будет знать что объект свободен и его можно убрать
M>

Я не собеседую в Лондоне в большой банк, а только в РФ в небольшую компанию. И я часто спрашиваю что такое метод Dispose, для чего применяется, и уже не раз получал ответ, что он нужен для того, чтобы сборщик мусора теперь мог собрать этот объект
При этом человек может работать с C# уже несколько лет, в т.ч. с базами данных.
Re[6]: Только что с интервью...
От: Слава  
Дата: 28.03.17 16:05
Оценка:
Здравствуйте, IT, Вы писали:

IT>Давай без using. Нет его. Влияют ли скобки на время жизни объекта? С областью видимости переменной всё понятно. А как с объектом?


Нет, не влияют. Я вообще сомневаюсь, что MSIL со скобками и без них будет хоть чем-то отличаться.
Re[6]: Только что с интервью...
От: Michael7 Россия  
Дата: 28.03.17 16:07
Оценка:
Здравствуйте, IT, Вы писали:

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


M>>GC вычистит ненужный более объект (ушедший из поля видимости). Только using для этого не обязателен, это уже я поспешил замечание сделать. using нужен был, если требовалась очистка, даже при словленном исключении, то есть, это фактически аналог try{}finally{}


IT>Давай без using. Нет его. Влияют ли скобки на время жизни объекта? С областью видимости переменной всё понятно. А как с объектом?


По идее тоже заканчивается за блоком, если только не static.
Re[2]: Только что с интервью...
От: StandAlone  
Дата: 28.03.17 16:24
Оценка:
Здравствуйте, sharpcoder, Вы писали:

S>Прикинь, она идеально знает алгоритмы, структуры данных, паттерны, машинленинг и т.п.


Что, кстати, вполне вероятно. Алгоритмы не требуют знания идиомы Disposable, это чисто специфика прикладного кодера.
Но, с другой стороны, тогда бы и вопросы были другие. Предложили бы, например, на доске написать нейросеть, которая будет прогнозировать стоимость бензина по РФ в 2017 году.
Человеку, способному это сделать, тупых вопросов про using и Mutex задавать не будут.
Re[5]: Только что с интервью...
От: fmiracle  
Дата: 28.03.17 16:25
Оценка: +1
Здравствуйте, Mishka, Вы писали:

A>>Я уверен что человек знал что такое using. Более того, я уверен что любой кто 9 лет писал на C# знает что такое using.

M>Кстати, я более чем уверен, что этот конкретный человек наврал про 9 лет и вообще на C# никогда не писал. Прикинь такие тоже встречаются, не все кто в тельняшках моряки.

А бывает, что человек работал годами, но условно говоря юниором, которому серьезной работы не доверяется, а он главным образом пишет через какой-то готовый фреймворк код, в котором ошибки не критичны. Последний человек, который мне сказал, что Dispose — для очистки памяти, занимаемой объектом, работал несколько лет в создании разных приложений, с плотной работой с БД. Дальнейшие вопросы после этого выявили, что в компании был какой-то самописный ДАЛ, которым человек собственно и пользовался. А как оно там работает внутри — он так и остался без понятия.
Re[7]: Только что с интервью...
От: Mishka Великобритания  
Дата: 28.03.17 16:26
Оценка:
Здравствуйте, Michael7, Вы писали:

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


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


M>>>GC вычистит ненужный более объект (ушедший из поля видимости). Только using для этого не обязателен, это уже я поспешил замечание сделать. using нужен был, если требовалась очистка, даже при словленном исключении, то есть, это фактически аналог try{}finally{}


IT>>Давай без using. Нет его. Влияют ли скобки на время жизни объекта? С областью видимости переменной всё понятно. А как с объектом?


M>По идее тоже заканчивается за блоком, если только не static.


На коленке :

{
    var o = new MyClassWithFinilizer();
}
GC.Collect
GC.WaitForPendingFinilizers()
GC.Gollect


Упадёт объект? Нет студии под рукой проверить
Re[5]: Только что с интервью...
От: StandAlone  
Дата: 28.03.17 16:26
Оценка: :)
Здравствуйте, Mishka, Вы писали:

M>P.S. Вопрос 2 — что есть mutex и зачем он? Это тоже "о боже мой, вы совсем о..уели в своих банках"?


А тебя какой интересует, системный объект Винапи или его дотнет обертка? Их поведение различается, кстати.
И это все тоже чисто специфика прикладного кодера невысокого уровня.
Re[7]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 16:27
Оценка:
Здравствуйте, Слава, Вы писали:

IT>>Давай без using. Нет его. Влияют ли скобки на время жизни объекта? С областью видимости переменной всё понятно. А как с объектом?


С>Нет, не влияют. Я вообще сомневаюсь, что MSIL со скобками и без них будет хоть чем-то отличаться.


Вряд ли это MSIL. Это зависит чего там компилятор нагенерирует.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 16:29
Оценка:
Здравствуйте, Michael7, Вы писали:

IT>>Давай без using. Нет его. Влияют ли скобки на время жизни объекта? С областью видимости переменной всё понятно. А как с объектом?

M>По идее тоже заканчивается за блоком, если только не static.

Не думаю. Указатель под переменную выделяется в стеке и вряд ли он зачищается при выходе из области видимости переменной. Следовательно, объект будет существовать до момента выхода из метода.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Только что с интервью...
От: StandAlone  
Дата: 28.03.17 16:34
Оценка: 14 (3) :)
Здравствуйте, fmiracle, Вы писали:

F>Я не собеседую в Лондоне в большой банк, а только в РФ в небольшую компанию. И я часто спрашиваю что такое метод Dispose, для чего применяется, и уже не раз получал ответ, что он нужен для того, чтобы сборщик мусора теперь мог собрать этот объект


Меня однажды собеседовали в один небольшой немецкий банк. Собеседующих было 2, добрый и злой, как положено. Ну в общем на третий час они малость подустали( а я как раз тогда проштудировал от корки до корки Нэша по наисвежайшему C# 4.0 и прорешал все задачки из Сэджвика). И один из собеседующих, наморщив лоб, небрежно обронил — "а расскажите-ка нам, как в машинной памяти устроена ссылка на объект в .NET... ШТАААААА???? ВЫ ЭТОГО НЕ ЗНАЕТЕ И СМЕЛИ К НАМ ПРИЙТИ?!!!!...".
Даже не знаю, насколько гневную тему на каком-нибудь форуме тиснул тем вечером один из тех разгневанных программистов.

F>При этом человек может работать с C# уже несколько лет, в т.ч. с базами данных.


P.S. Да, самое смешное. Несмотря на знания Нэша и Сэджвика, кодил я тогда откровенно говенно. Опыта не хватало, умения сосредоточиться на нужном или запомнить все важное из структуры проектов в несколько сотен kloc.
Щас, правда, ситуация не особо улучшилась, зато я стал намного наглее.
Отредактировано 28.03.2017 16:35 StandAlone . Предыдущая версия .
Re[3]: Только что с интервью...
От: _Raz_  
Дата: 28.03.17 16:46
Оценка:
Здравствуйте, StandAlone, Вы писали:

S>> она идеально знает ... паттерны ...

SA> Что, кстати, вполне вероятно. Алгоритмы не требуют знания идиомы Disposable, это чисто специфика прикладного кодера.

А если не вполне вероятно, а совершенно точно, то Dispose — это паттерн.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[8]: Только что с интервью...
От: Michael7 Россия  
Дата: 28.03.17 16:55
Оценка:
Здравствуйте, Mishka, Вы писали:


M>
M>{
M>    var o = new MyClassWithFinilizer();
M>}
M>GC.Collect
M>GC.WaitForPendingFinilizers()
M>GC.Gollect
M>


M>Упадёт объект? Нет студии под рукой проверить

Не должен, а с чего бы? Студии тоже нет под рукой, но проверил на mono, ничего не упало. Использовал StreamReader для класса с финализатором
Re[8]: Только что с интервью...
От: Michael7 Россия  
Дата: 28.03.17 16:58
Оценка:
Здравствуйте, IT, Вы писали:

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


IT>>>Давай без using. Нет его. Влияют ли скобки на время жизни объекта? С областью видимости переменной всё понятно. А как с объектом?

M>>По идее тоже заканчивается за блоком, если только не static.

IT>Не думаю. Указатель под переменную выделяется в стеке и вряд ли он зачищается при выходе из области видимости переменной. Следовательно, объект будет существовать до момента выхода из метода.


Засомневался, глянул сейчас в https://msdn.microsoft.com/ru-ru/library/30k8f0kc.aspx

Идентификатор, объявленный без спецификатора класса хранения static, имеет автоматическую длительность хранения, если он объявлен внутри функции. Идентификатор с автоматической длительностью хранения ("локальный идентификатор") имеет выделенную память и определенное значение только внутри блока, в котором он определен или объявлен. Автоматическому идентификатору выделяется новая память при каждом входе программы в соответствующий блок; при выходе программы из этого блока память (и значение) идентификатора освобождается. Идентификаторы, объявленные в функции без компоновки, также имеют автоматическую длительность хранения.


Естественно, на практике GC может сохранять какое-то неопределенное время память за объектом.
Re[2]: Только что с интервью...
От: ylp  
Дата: 28.03.17 17:04
Оценка: 9 (2) +6 :))) :))
Здравствуйте, antropolog, Вы писали:

A>серъёзно в банках это да ( читай — пускание пыли в глаза ), но вот то что на интервью у кандидата с 9 годами опыта спрашивают про using говорит лишь о том что собеседующий вчерашний студент, понятия не имеющий что такое разработка ПО, даже если ему под сраку лет.


Объясните свою логику.
Если у кандидата 9 лет опыта, это отменяет необходимость знать, зачем нужен using?
Если да, то начиная со скольки лет опыта необязательно знать, зачем нужен цикл while?
Re[9]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 17:11
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Засомневался, глянул сейчас в https://msdn.microsoft.com/ru-ru/library/30k8f0kc.aspx


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

M>Естественно, на практике GC может сохранять какое-то неопределенное время память за объектом.


Это понятно.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Только что с интервью...
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 28.03.17 17:16
Оценка:
Здравствуйте, StandAlone, Вы писали:

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


F>>Я не собеседую в Лондоне в большой банк, а только в РФ в небольшую компанию. И я часто спрашиваю что такое метод Dispose, для чего применяется, и уже не раз получал ответ, что он нужен для того, чтобы сборщик мусора теперь мог собрать этот объект


SA>Меня однажды собеседовали в один небольшой немецкий банк. Собеседующих было 2, добрый и злой, как положено. Ну в общем на третий час они малость подустали( а я как раз тогда проштудировал от корки до корки Нэша по наисвежайшему C# 4.0 и прорешал все задачки из Сэджвика). И один из собеседующих, наморщив лоб, небрежно обронил — "а расскажите-ка нам, как в машинной памяти устроена ссылка на объект в .NET... ШТАААААА???? ВЫ ЭТОГО НЕ ЗНАЕТЕ И СМЕЛИ К НАМ ПРИЙТИ?!!!!...".

SA>Даже не знаю, насколько гневную тему на каком-нибудь форуме тиснул тем вечером один из тех разгневанных программистов.

Посылать надо подальше таких работодателей!
Два с лишним часа собеседовать людей--это слишком!
Re[10]: Только что с интервью...
От: Michael7 Россия  
Дата: 28.03.17 17:17
Оценка:
Здравствуйте, IT, Вы писали:

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


M>>Засомневался, глянул сейчас в https://msdn.microsoft.com/ru-ru/library/30k8f0kc.aspx


IT>Я бы глянул не в документацию, а декомпилированный код. По-моему там никто ссылки в стеке после выхода из блоков не зачищает.


Тут я пас, MSIL еще не изучал. В принципе, логично просто счетчик ссылок уменьшить до нуля после выхода из блока, а зачищать лишь при необходимости или по расписанию.
Re: Только что с интервью...
От: bazis1 Канада  
Дата: 28.03.17 17:22
Оценка: 2 (2) +10
Здравствуйте, Mishka, Вы писали:

M>Ответ:

M>
M>using 
M>{
M>  var o = new Object();
M>}
M>// здесь GC будет знать что объект свободен и его можно убрать
M>

Ну спросил бы, что будет, если using убрать. Поговорили бы, зачем нужен garbage collector. Если цель — именно нанять полезного человека, а не самоутвердиться — то надо смотреть, способен ли он понимать, что к чему, с разумным количеством подсказок. Иначе вы наймете только тех, кто целенаправленно зубрил "100 вопросов для собеседования по %TechnologyName%", что никак не коррелирует с полезностью.
Re[11]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 17:33
Оценка: +1
Здравствуйте, Michael7, Вы писали:

M>Тут я пас, MSIL еще не изучал. В принципе, логично просто счетчик ссылок уменьшить до нуля после выхода из блока, а зачищать лишь при необходимости или по расписанию.


Какой ещё счётчик ссылок?
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re: Только что с интервью...
От: LaptevVV Россия  
Дата: 28.03.17 17:37
Оценка:
M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.
M>Вопрос: using в С# где и зачем
Это еще что...
Боб Мартин писал, что беседовал с претенденткой на серьезную программистскую должность,
которая не написала НИ ОДНОЙ программы за 6 лет обучения...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[12]: Только что с интервью...
От: Michael7 Россия  
Дата: 28.03.17 17:56
Оценка: :))) :)
Здравствуйте, IT, Вы писали:

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


M>>Тут я пас, MSIL еще не изучал. В принципе, логично просто счетчик ссылок уменьшить до нуля после выхода из блока, а зачищать лишь при необходимости или по расписанию.


IT>Какой ещё счётчик ссылок?


Я не знаю как точно сделан GC в C#, но по идее самое простое — это завести в памяти кроме данных еще и счетчик ссылок на эти данные. Каждый новый объект, ссылающийся на них увеличивает счетчик. И наоборот счетчик уменьшается с ликвидацией объекта.
Re[3]: Только что с интервью...
От: sharpman Россия  
Дата: 28.03.17 18:09
Оценка: 2 (1) +3 :))) :))) :))) :)
Здравствуйте, ylp, Вы писали:

ylp>Объясните свою логику.

ylp>Если у кандидата 9 лет опыта, это отменяет необходимость знать, зачем нужен using?
ylp>Если да, то начиная со скольки лет опыта необязательно знать, зачем нужен цикл while?

С того момента, как получаешь уровень "good team player"
.

Пессимисты говорят, что хуже быть не может,
а оптимисты всегда уверены, что — может!

.

http://zavtra.ru/upl/15259/alarge/pic_71100add09a.jpg
Re[3]: Только что с интервью...
От: bazis1 Канада  
Дата: 28.03.17 18:15
Оценка: 16 (2) :)
Здравствуйте, StandAlone, Вы писали:

SA>Меня однажды собеседовали в один небольшой немецкий банк. Собеседующих было 2, добрый и злой, как положено. Ну в общем на третий час они малость подустали( а я как раз тогда проштудировал от корки до корки Нэша по наисвежайшему C# 4.0 и прорешал все задачки из Сэджвика). И один из собеседующих, наморщив лоб, небрежно обронил — "а расскажите-ка нам, как в машинной памяти устроена ссылка на объект в .NET... ШТАААААА???? ВЫ ЭТОГО НЕ ЗНАЕТЕ И СМЕЛИ К НАМ ПРИЙТИ?!!!!...".

Ну не понравился ты им в первые 5 минут собеседования. Такие вещи надо чувствовать и не тратить свое время. Извините, у меня собеседование в Google через полчаса. Рад был поговорить, удачи в поиске кандидатов. Пожали руки и разошлись.
Re[10]: Только что с интервью...
От: Mystic Artifact  
Дата: 28.03.17 18:17
Оценка:
Здравствуйте, IT, Вы писали:

M>>Засомневался, глянул сейчас в https://msdn.microsoft.com/ru-ru/library/30k8f0kc.aspx

IT>Я бы глянул не в документацию, а декомпилированный код. По-моему там никто ссылки в стеке после выхода из блоков не зачищает.
Ссылки никто не зануливает, но в релизе — сборщик мусора соберёт как только переменная уже не будет нужна. Т.е. до выхода из метода.
GC же осведомлен о stack frame и знает на каких PC какие переменные в стэке / регистрах используются.
Re[3]: Только что с интервью...
От: bazis1 Канада  
Дата: 28.03.17 18:22
Оценка: +1 :))
Здравствуйте, StandAlone, Вы писали:

SA>Человеку, способному это сделать, тупых вопросов про using и Mutex задавать не будут.

Человек, способный это сделать, будет проводить презентации прототипа инвесторам и считать поднятые миллионы, а не устраиваться работать рядовым программистом. Извините.
Re[11]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 18:28
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

MA> Ссылки никто не зануливает, но в релизе — сборщик мусора соберёт как только переменная уже не будет нужна. Т.е. до выхода из метода.


В том то и дело, что в нашем случае "уже не будет нужна" и "до выхода из метода" совсем разные вещи.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[12]: Только что с интервью...
От: Mystic Artifact  
Дата: 28.03.17 18:38
Оценка:
Здравствуйте, IT, Вы писали:

MA>> Ссылки никто не зануливает, но в релизе — сборщик мусора соберёт как только переменная уже не будет нужна. Т.е. до выхода из метода.

IT>В том то и дело, что в нашем случае "уже не будет нужна" и "до выхода из метода" совсем разные вещи.
Блин. Ничего подобного scope-ам C++ в C#/.NET нет. Любые ссылки попавшие в локальные переменные — если далее не используются по методу — уже не считаются корнями и соответственно не препятствуют сборке. Поэтому зануливание ссылки и приведёт к тому же эффекту. Для случаев когда "уже не будет нужна" и "до выхода из метода" совсем разные вещи — придуман GC.KeepAlive.
Re[3]: Только что с интервью...
От: Слава  
Дата: 28.03.17 18:48
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>Щас, правда, ситуация не особо улучшилась, зато я стал намного наглее.


Вот да. Основное и реально полезное качество, которое приобретается с опытом — это способность выставлять наглую морду и переть вперёд.
Re[13]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 19:03
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

IT>>В том то и дело, что в нашем случае "уже не будет нужна" и "до выхода из метода" совсем разные вещи.

MA> Блин. Ничего подобного scope-ам C++ в C#/.NET нет.

С этим никто не спорит.

MA>Любые ссылки попавшие в локальные переменные — если далее не используются по методу — уже не считаются корнями и соответственно не препятствуют сборке.


Кем считается?

Будет ли разным генерируемый код для следующего?

void Foo()
{
    {
        object o = new object();
    }
}

void Foo()
{
    object o = new object();

    {
    }
}

void Foo()
{
    object o;

    {
        o = new object();
    }
}


Я не уверен.

MA>Поэтому зануливание ссылки и приведёт к тому же эффекту. Для случаев когда "уже не будет нужна" и "до выхода из метода" совсем разные вещи — придуман GC.KeepAlive.


Мы сейчас не обсуждаем выход из метода. Мы обсуждаем выход за пределы видимости переменной в коде. Насколько я припоминаю, стек выделяется под все ссылки вначале метода. При выходе из блока стек не корректируется, т.е. если переменную явно не обнулить, то она будет болтаться в стеке до выхода из метода.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Только что с интервью...
От: StandAlone  
Дата: 28.03.17 19:06
Оценка:
Здравствуйте, bazis1, Вы писали:

B>Ну не понравился ты им в первые 5 минут собеседования.


И слава космойайцам! Это было первое и единственное место, где я видел весь(ну, кроме переговорок) этаж здания, превращенный в опенспейс!!!
Длинные ряды столов, разделенные перегородками, за каждым сидит несколько десятков человек локтем к локтю, общее количество народу несколько сотен... сильно напоминало коровник, только без системы автоматизированной уборки говна и выдойки молока.

B>Такие вещи надо чувствовать и не тратить свое время. Извините, у меня собеседование в Google через полчаса. Рад был поговорить, удачи в поиске кандидатов. Пожали руки и разошлись.


Хамство("Нихрена себе чего тут только в резюме не понаписано!...Как думаешь,<имя второго собеседующего>, зачем мы вообще сюда пришли?...") встречается через раз.
Но приходится реагировать нейтрально, потому что там же сидит хрюша и хрен она тебя выпустит до завершения стандартного процесса обработки.
Re[4]: Только что с интервью...
От: StandAlone  
Дата: 28.03.17 19:11
Оценка:
Здравствуйте, Слава, Вы писали:

С>Вот да. Основное и реально полезное качество, которое приобретается с опытом — это способность выставлять наглую морду и переть вперёд.


Не. У меня глубина резкости как-то добавилась. Ясность мозгов, способность видеть сложные процессы и системы в целом. Это кстати иногда мешает — общаешься, например, с другим разработчиком и тот неумело и путано минут пять пытается объяснить, а ты все схватил за первые 30 сек и ждешь когда он закончит, чтобы четко и кратко сформулировать решение.
Многие программисты страдают неумением объяснять.
Re: Только что с интервью...
От: Rikomer Россия  
Дата: 28.03.17 19:16
Оценка: :))
Здравствуйте, Mishka, Вы писали:

M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.

M>Вопрос: using в С# где и зачем
M>Ответ:
M>
M>using 
M>{
M>  var o = new Object();
M>}
M>// здесь GC будет знать что объект свободен и его можно убрать
M>


M>



Это ладно.
Один раз пришел человек с большим списком знаний и опыта.
На вопрос "Знаете ли вы что-то про уровни изоляций транзакций?" ответил уверенно "Да"
После этого человека попросили рассказать что это и зачем они нужны, на что человек думал секунд 10,
а потом сказал "Вы знаете я забыл"
Re[14]: Только что с интервью...
От: Mystic Artifact  
Дата: 28.03.17 19:16
Оценка:
Здравствуйте, IT, Вы писали:

IT>Мы сейчас не обсуждаем выход из метода. Мы обсуждаем выход за пределы видимости переменной в коде. Насколько я припоминаю, стек выделяется под все ссылки вначале метода. При выходе из блока стек не корректируется, т.е. если переменную явно не обнулить, то она будет болтаться в стеке до выхода из метода.

Всё правильно. При этом GC умеет сопостовлять IP (instruction pointer, полагаю offset внутри метода) с тем, что считать живым на стэке. Поэтому зануливаний ему и не нужно.
Re[5]: Только что с интервью...
От: bazis1 Канада  
Дата: 28.03.17 19:26
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>Хамство("Нихрена себе чего тут только в резюме не понаписано!...Как думаешь,<имя второго собеседующего>, зачем мы вообще сюда пришли?...") встречается через раз.

SA>Но приходится реагировать нейтрально, потому что там же сидит хрюша и хрен она тебя выпустит до завершения стандартного процесса обработки.
В смысле? У вас там забор с колючей проволокой, что ли? Вот вся американская показная вежливость именно для того и придумана. Без хамства, без наглости, ой, извините, очень рад был пообщаться, но, увы, расписание сегодня тяжелое. Давайте как-нибудь в другой раз, ладно. Силой удерживать вас там никто не будет.
Re[3]: Только что с интервью...
От: fmiracle  
Дата: 28.03.17 19:37
Оценка: +2
Здравствуйте, StandAlone, Вы писали:

F>>При этом человек может работать с C# уже несколько лет, в т.ч. с базами данных.

SA>P.S. Да, самое смешное. Несмотря на знания Нэша и Сэджвика, кодил я тогда откровенно говенно. Опыта не хватало, умения сосредоточиться на нужном или запомнить все важное из структуры проектов в несколько сотен kloc.

Я не знаю на какую позицию ты собеседовался и что там стоило или не стоило знать. Но я не искал человека который сможет на доске нарисовать нейронную сеть для расчета всего. Нужен человек который может всего-навсего сделать простое веб-приложение работающее с БД. Данные взяли, данные показали, данные приняли, данные в БД обновили. Не ракетные технологии, как говорится. И человек говорит что да, это все он знает, проблем нет, сделает.

И делает. Только не считает нужным закрывать отпускать в пул соединения после запроса. И оно ведь у него же на машине работает ведь. А то, что при активной работе сотен пользователей у него моментально исчерпается пул соединений — он даже и не догадывается.
Или работает с файлами и не считает нужным закрывать их после использования, а потом иногда вдруг напарывается на ошибку доступа и удивляется "странным глюкам".
Это все из реального опыта виденного в работе. На удивление часто люди не знают не очень-то понимают для чего нужен Dispose или Close у файлов, соединений с БД и подобного.

Это все не требует держать в голове сотни kloc кода. Это тупо вопрос понимая того — знает ли вообще человек что бывает такая вещь как разделяемые ресурсы, о совместном использовании которых стоит хотя бы задуматься, или такого знания у него просто нет. Причем если знания нет — это не значит, что человек ущербный или что-то еще, просто значит у человека знаний таких нет.

Еще хорошо, если человек не знает — и не знает. Всегда можно выучить. Хуже, если "знает", но совершенно неправильно. Например, что вызов Dispose удалит объект из памяти (да, слышал и такое мнение что "это как delete в С"). Как он потом код читает и понимает что в нем происходит?
Re[3]: Только что с интервью...
От: StandAlone  
Дата: 28.03.17 20:00
Оценка: -1 :)))
Здравствуйте, ylp, Вы писали:

ylp>Если да, то начиная со скольки лет опыта необязательно знать, зачем нужен цикл while?


А Вы помните семантику оператора JNZ?
В каком регистре должен быть операнд условной адресации в модели памяти small?
Re[4]: Только что с интервью...
От: StandAlone  
Дата: 28.03.17 20:02
Оценка:
Здравствуйте, bazis1, Вы писали:

B>Человек, способный это сделать, будет проводить презентации прототипа инвесторам и считать поднятые миллионы, а не устраиваться работать рядовым программистом. Извините.


Вронг.
"Сделать" и "продать" это вещи совершенно разные. Прошу прощения за напоминание общеизвестного.
Поэтому частенько способные что-то сделать идут устраиваться на работу к тем, кто способен продавать(лицо).
Такова салями.
Re[6]: Только что с интервью...
От: StandAlone  
Дата: 28.03.17 20:07
Оценка:
Здравствуйте, bazis1, Вы писали:

B>В смысле? У вас там забор с колючей проволокой, что ли? Вот вся американская показная вежливость именно для того и придумана. Без хамства, без наглости, ой, извините, очень рад был пообщаться, но, увы, расписание сегодня тяжелое. Давайте как-нибудь в другой раз, ладно. Силой удерживать вас там никто не будет.


Заборов нет, но у hr есть техпроцесс обработки кандидата, за исполнение которого ей платят. И она сделает все от нее зависящее, чтобы прогнать единицу хьюмен ресурс по всем этапам.

Силой нет, а в единую базу неблагополучных кандидатов добавить как за здрасте. Информация, если что, от первой, так сказать, морды.
Re[15]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 20:08
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

MA> Всё правильно. При этом GC умеет сопостовлять IP (instruction pointer, полагаю offset внутри метода) с тем, что считать живым на стэке. Поэтому зануливаний ему и не нужно.


Это элементарно проверить.

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Foo();

            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();

            Console.WriteLine("End Main");
        }

        class A
        {
            ~A()
            {
                Console.WriteLine("~A");
            }
        }

        static void Foo()
        {
            {
                var a = new A();
                //a = null; // Здесь раскоментировать для получения другого результата
            }

            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();

            Console.WriteLine("End Foo");
        }
    }
}


Никто ничего не сопоставляет. Я бы сильно удивился если бы это было так.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Только что с интервью...
От: bazis1 Канада  
Дата: 28.03.17 20:46
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>Вронг.

SA>"Сделать" и "продать" это вещи совершенно разные. Прошу прощения за напоминание общеизвестного.
SA>Поэтому частенько способные что-то сделать идут устраиваться на работу к тем, кто способен продавать(лицо).
SA>Такова салями.
Хе-хе, все глубже. Человек, способный сделать, но неспособный продать, после 3х лет работы в индустрии или научится продавать, или забудет, как делать. Потому что на работу "по способностям" он не сможет переболтать умеющих себя продать, а от работы средней у него быстро завянут мозги.
Re[16]: Только что с интервью...
От: Mystic Artifact  
Дата: 28.03.17 20:58
Оценка:
Здравствуйте, IT, Вы писали:

Ты точно в релизе проверяешь?
Потому что в дебаге все они живут до конца метода.
Отредактировано 28.03.2017 21:00 Mystic Artifact . Предыдущая версия .
Re[17]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 28.03.17 21:01
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

MA>Ты точно в релизе проверяешь?

MA>Потому что в дебаге все они живут до конца метода.

Т.е. есть ньюансы?
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[18]: Только что с интервью...
От: Mystic Artifact  
Дата: 28.03.17 21:08
Оценка:
Здравствуйте, IT, Вы писали:

MA>>Ты точно в релизе проверяешь?

MA>>Потому что в дебаге все они живут до конца метода.
IT>Т.е. есть ньюансы?
Я про релиз написал сразу. И вообще харош прикалываться, ты ж сам всё отлично знаешь как это работает.
Re[7]: Только что с интервью...
От: bazis1 Канада  
Дата: 28.03.17 21:17
Оценка:
Здравствуйте, StandAlone, Вы писали:
SA>Заборов нет, но у hr есть техпроцесс обработки кандидата, за исполнение которого ей платят. И она сделает все от нее зависящее, чтобы прогнать единицу хьюмен ресурс по всем этапам.
SA>Силой нет, а в единую базу неблагополучных кандидатов добавить как за здрасте. Информация, если что, от первой, так сказать, морды.
Ох, ну я не знаю, сделайте грустное лицо, скажите "что-то я подзабыл, давайте я лучше подготовлюсь и как-нибудь в другой раз приду". Если явно не конфронтировать, какой смысл им заносить Вас в какие-то базы?
Re[4]: Только что с интервью...
От: ylp  
Дата: 28.03.17 23:27
Оценка: +1
Здравствуйте, StandAlone, Вы писали:

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


ylp>>Если да, то начиная со скольки лет опыта необязательно знать, зачем нужен цикл while?


SA>А Вы помните семантику оператора JNZ?

(телепат mode on)
Если вы про x86 ассемблер
jump if not zero, делать jump если zero bit flag is not set. И это при том, что на ассемблере я писал последний раз 10 лет назад.

SA>В каком регистре должен быть операнд условной адресации в модели памяти small?

Вопрос сформулирован недостаточно точно, требуется больше контекста, даже моих телепатских способностей не хватает
Re[4]: Только что с интервью...
От: ylp  
Дата: 28.03.17 23:28
Оценка:
Здравствуйте, sharpman, Вы писали:

\S>С того момента, как получаешь уровень "good team player"
имхо, человек все-таки имел в виду что-то другое. Хотелось бы услышать начальника транспортного цеха
Re: Только что с интервью...
От: aik Австралия  
Дата: 29.03.17 01:18
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.

M>Вопрос: using в С# где и зачем
M>Ответ:

Шарпа не знаю, для общего развития погуглил — это оно? Насколько вообще принято на шарпе писать без исключений, или это как ява где без них никуда?
Re[2]: Только что с интервью...
От: Evgeny.Panasyuk Россия  
Дата: 29.03.17 01:57
Оценка: +1
Здравствуйте, aik, Вы писали:

M>>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.

M>>Вопрос: using в С# где и зачем
M>>Ответ:
aik>Шарпа не знаю, для общего развития погуглил — это оно?

Да. На Java аналогом является try-with-resources. На Python — with. Всё это обрезанные аналоги "RAII" из C++.
Re: Только что с интервью...
От: Тёмчик жж
Дата: 29.03.17 03:06
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.

M>Вопрос: using в С# где и зачем
M>Ответ:
M>
M>using 
M>{
M>  var o = new Object();
M>}
M>// здесь GC будет знать что объект свободен и его можно убрать
M>


M>


Посылайте на хакерранк. Вопрос про синтаксис- ну, какой-то на дебилоидов рассчитанный. Может тетя писала под началом архитекта-самодура, и using не использовался, писали по "coding guidelines" 20 летней давности. Тетя сымпровизировпла неудачно.
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re[4]: Только что с интервью...
От: elmal  
Дата: 29.03.17 05:06
Оценка: 12 (1) +4
Здравствуйте, fmiracle, Вы писали:

F>Это все из реального опыта виденного в работе. На удивление часто люди не знают не очень-то понимают для чего нужен Dispose или Close у файлов, соединений с БД и подобного.

Вся работа с коннекшенами, close и т.д у вменяемых людей сосредоточена в либах. Когда ты работаешь с файлом, ты используешь библиотечную функцию readFile, которое возвращает тебе содержимое. Или итератор. То есть ты обратился у либе, получил итератор, и ни о каких пулах не думаешь. Если ты в состоянии так написать код — ты сеньер. Если для того, чтобы прочитать контент ты каждый раз копипастишь код открытия файла, чтения, внутрь добавляешь логику, оборачиваешь это в try catch и потом обязательно закрываешь, и так 1000 раз в проекте — ты очень фиговый джуниор.
Как ты сделаешь в либах, чтобы не копипастить — дело десятое. Хоть поток стартуй отдельный, который отслеживает обращения по итератору и если обращений не было давно — закрывает соединение. А если потом снова начали у итератора данные запрашивать через длительный промежуток времени — переоткрывает. Или просто передаешь лямбду, которая для каждой строчки файла выполняет определенную логику. В результате у тебя во всех проектах твоей компании будет одна либа, где есть вот такое явное открытие и закрытие. А в высокоуровневом коде, который чаще всего и пишется — никакого явного управления ресурсами, минимум строчек кода и все по делу. Если смогли так сделать — значит у вас культура кодирования на высоком уровне. Если же у вас весь проект сплошной try catch using и т.д, включая бизнес логику, и те места, где можно забыть что то и допустить ошибку — извиняйте, но у вас крайне низкая культура кодирования.
Re[4]: Только что с интервью...
От: Privalov  
Дата: 29.03.17 06:41
Оценка: +2
Здравствуйте, StandAlone, Вы писали:

SA>В каком регистре должен быть операнд условной адресации в модели памяти small?


Что такое условная адресация? Адресация бывает прямая, непосредственная, косвенная нескольких типов. Условной среди них нет.
Re[11]: Только что с интервью...
От: AlexGin Беларусь  
Дата: 29.03.17 07:52
Оценка: 2 (1)
Здравствуйте, Michael7, Вы писали:

M>Тут я пас, MSIL еще не изучал. В принципе, логично просто счетчик ссылок уменьшить до нуля после выхода из блока, а зачищать лишь при необходимости или по расписанию.


Счетчик ссылок актуален для C++ smart-pointers и для COM объектов.
Сборка мусора в .NET — работает по совсем другому принцыпу:

https://msdn.microsoft.com/en-us/library/ee787088(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/0xy59wtx(v=vs.110).aspx
Отредактировано 29.03.2017 7:53 AlexGin . Предыдущая версия .
Re[14]: Только что с интервью...
От: fmiracle  
Дата: 29.03.17 07:58
Оценка: 15 (2) +1
Здравствуйте, IT, Вы писали:

IT>Будет ли разным генерируемый код для следующего?

IT>
IT>void Foo()
IT>{
IT>    {
IT>        object o = new object();
IT>    }
IT>}

IT>void Foo()
IT>{
IT>    object o = new object();

IT>    {
IT>    }
IT>}

IT>void Foo()
IT>{
IT>    object o;

IT>    {
IT>        o = new object();
IT>    }
IT>}
IT>

IT>Я не уверен.

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

  вот такой пример на коленке
class Tst
        {
            public string Name { get; set; }
            public Tst(string name)
            {
                Name = name;
            }

            ~Tst()
            {
                Console.WriteLine( $"finalizer called for {Name}" );
            }

            public override string ToString()
            {
                return Name;
            }
        }

        static void Main( string[] args )
        {
            object o1;
            var o2 = new Tst("o2");
            var o4 = new Tst( "o4" );
            {
                var o3 = new Tst("o3");
                o1 = new Tst("o1");
            }
            Console.WriteLine( "init done" );
            GC.Collect();
            GC.WaitForPendingFinalizers();
            Console.WriteLine( "method almost complete" );
            Console.WriteLine( "last use of {0}", o4 );
            GC.Collect();
            GC.WaitForPendingFinalizers();
            Console.WriteLine( "method complete" );
        }

вывод в Релизе:

init done
finalizer called for o1
finalizer called for o3
finalizer called for o2
method almost complete
last use of o4
finalizer called for o4
method complete

Т.е. первые 3 объекта успешно собираются сборщиком мусора еще до окончания метода. И при этом неважно, как они объявлены — значение имеет лишь, что на момент сборки мусора CLR видит, что далее эти переменные не используются.

В дебаге, кстати, вывод другой, там никакие локальные объекты не собираются до окончания метода:

init done
method almost complete
last use of o4
method complete
finalizer called for o1
finalizer called for o3
finalizer called for o4
finalizer called for o2

Отредактировано 29.03.2017 9:20 fmiracle . Предыдущая версия . Еще …
Отредактировано 29.03.2017 9:18 fmiracle (формулировка) . Предыдущая версия .
Re[2]: Только что с интервью...
От: Mishka Великобритания  
Дата: 29.03.17 08:18
Оценка:
Здравствуйте, aik, Вы писали:

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


M>>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.

M>>Вопрос: using в С# где и зачем
M>>Ответ:

aik>Шарпа не знаю, для общего развития погуглил — это оно? Насколько вообще принято на шарпе писать без исключений, или это как ява где без них никуда?


using в С# используется в 3-ёх различных ситуациях. Dispose популярен поскольку на всех интервью его спрашивают. 2-ой — using System тот же Java import (daaah!), а вот 3-ий — это для тех кто реально клювом не щёлкает.
Re: Только что с интервью...
От: Tom Россия http://www.RSDN.ru
Дата: 29.03.17 08:26
Оценка: 4 (2) +1 :))
M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.
M>Вопрос: using в С# где и зачем
M>Ответ:
M>
M>using 
M>{
M>  var o = new Object();
M>}
M>// здесь GC будет знать что объект свободен и его можно убрать

M>


M>


Я тут один такой идиот который НЕ понимает зачем задавать на собеседовании вопрос указывая не корректный, не компилирующийся код?
Народная мудрось
всем все никому ничего(с).
Re[6]: Только что с интервью...
От: fedor.reznik  
Дата: 29.03.17 08:37
Оценка:
Здравствуйте, IT, Вы писали:

IT>Если указатель в стеке не обнулить или не переиспользовать, то висящий на нём объект будет болтаться в GC до выхода из метода. Вот я и спрашиваю, что там происходит.


Зависит от:
а) режима компиляции Debug/Release. В Debug гарантированно будет.
б) В Release чаще нет, то есть даже так — я не встречал ситуаций когда указатель на объект живет дольше, чем его последнее использование, но допускаю, что возможны случаи, что GC будет считать его достяжимым до конца метода.

В простейшем случае не зависит от скобок никак, тесты:

    [TestFixture]
    public class VisibilityTests
    {
        [Test]
        public void InBracketsTest()
        {
            {
                var foo = new Foo();
                foo.Baz();
            }

            dotMemory.Check(m => { Assert.AreEqual(0, m.GetObjects(set => set.Type.Is<Foo>()).ObjectsCount); });
        }

        [Test]
        public void NoBracketsTest()
        {
            var foo = new Foo();
            foo.Baz();

            dotMemory.Check(m => { Assert.AreEqual(0, m.GetObjects(set => set.Type.Is<Foo>()).ObjectsCount); });
        }
    }


Вообще говоря правильный вопрос — будет ли GC считать объект достяжимым? В рассматриваемом случае ответ — нет.
Re[16]: Только что с интервью...
От: Mystic Artifact  
Дата: 29.03.17 09:11
Оценка: 5 (1)
Здравствуйте, IT, Вы писали:

MA>> Всё правильно. При этом GC умеет сопостовлять IP (instruction pointer, полагаю offset внутри метода) с тем, что считать живым на стэке. Поэтому зануливаний ему и не нужно.

IT>Это элементарно проверить.
IT>Никто ничего не сопоставляет. Я бы сильно удивился если бы это было так.
Ещё раз что бы развеять этот вопрос.
  source
    class MyClass
    {
        ~MyClass()
        {
            Console.WriteLine("~MyClass");
        }

        public void Hello(int a, int b)
        {
            Console.WriteLine("Hello!");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // Debugger.Launch();
            var o = new MyClass();

            // Этот тупой способ для того что бы переменная o оказалась на стэке
            // Иначе она останется только в регистре
            for (var i = 0; i < 100; i++)
            {
                var a = i * 3;
                var b = i + a * 4;
                Console.WriteLine("Hello: {0} {1}", a, b, i * 2, a + i);
            }
            o.Hello(1, 2);

            Console.WriteLine("---- GC #1");
            GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);
            GC.WaitForPendingFinalizers();
            Console.WriteLine("---- GC #2");
            GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);
            GC.WaitForPendingFinalizers();
            Console.WriteLine("---- About exit");
        }


Результат будет различаться в зависимости от:

— Скомпилировав в Release (и запускаем без отладчика, CTRL+F5 в студии). Можно и под отладчиком, но тогда нужно включить Suppress JIT optimizations on module load.
---- GC #1
~MyClass
---- GC #2
---- About exit


— Скомпилировав в Debug (и запускаем без отладчика, CTRL+F5 в студии)
---- GC #1
---- GC #2
---- About exit
~MyClass


  asm (x86)
--- H:\!temp\ConsoleApplication18\ConsoleApplication18\Program.cs --------------
    27:             Debugger.Launch();
009F044A EC                   in          al,dx  
009F044B 57                   push        edi  
009F044C 56                   push        esi  
009F044D 53                   push        ebx  
009F044E 83 EC 08             sub         esp,8
009F0451 E8 AA 05 B7 71       call        72560A00  
    28:             var o = new MyClass();
009F0456 B9 A0 4D 70 00       mov         ecx,704DA0h  
    28:             var o = new MyClass();
009F045B E8 F0 76 6A 72       call        73097B50  
009F0460 89 45 EC             mov         dword ptr [ebp-14h],eax     ; сохранили в стэке o.
                                                                      ; Далее по листингу в этом методе никто [ebp-14h] зануливать не будет
                                                                      ; Однако он будет собран уже на первом вызове GC.
                                                                      ; Аналогично для случая с регистрами.
    29: 
    30:             for (var i = 0; i < 100; i++)
009F0463 33 FF                xor         edi,edi  
    31:             {
    32:                 var a = i * 3;
009F0465 8D 1C 7F             lea         ebx,[edi+edi*2]  
    33:                 var b = i + a * 4;
009F0468 8D 04 9F             lea         eax,[edi+ebx*4]  
009F046B 89 45 F0             mov         dword ptr [ebp-10h],eax  
    34:                 Console.WriteLine("Hello: {0} {1}", a, b, i * 2, a + i);
009F046E B9 B6 41 A2 71       mov         ecx,71A241B6h  
009F0473 BA 04 00 00 00       mov         edx,4  
009F0478 E8 33 2D D0 FF       call        006F31B0  
009F047D 8B F0                mov         esi,eax  
009F047F B9 80 8D F1 71       mov         ecx,71F18D80h  
009F0484 E8 3F 2C D0 FF       call        006F30C8  
009F0489 89 58 04             mov         dword ptr [eax+4],ebx  
009F048C 50                   push        eax  
009F048D 8B CE                mov         ecx,esi  
009F048F 33 D2                xor         edx,edx  
009F0491 E8 DA 74 6A 72       call        73097970  
009F0496 B9 80 8D F1 71       mov         ecx,71F18D80h  
009F049B E8 28 2C D0 FF       call        006F30C8  
009F04A0 8B D0                mov         edx,eax  
009F04A2 8B 45 F0             mov         eax,dword ptr [ebp-10h]  
009F04A5 89 42 04             mov         dword ptr [edx+4],eax  
009F04A8 52                   push        edx  
009F04A9 8B CE                mov         ecx,esi  
009F04AB BA 01 00 00 00       mov         edx,1  
009F04B0 E8 BB 74 6A 72       call        73097970  
009F04B5 B9 80 8D F1 71       mov         ecx,71F18D80h  
009F04BA E8 09 2C D0 FF       call        006F30C8  
009F04BF 8B D0                mov         edx,eax  
    34:                 Console.WriteLine("Hello: {0} {1}", a, b, i * 2, a + i);
009F04C1 8B C7                mov         eax,edi  
009F04C3 03 C0                add         eax,eax  
009F04C5 89 42 04             mov         dword ptr [edx+4],eax  
009F04C8 52                   push        edx  
009F04C9 8B CE                mov         ecx,esi  
009F04CB BA 02 00 00 00       mov         edx,2  
009F04D0 E8 9B 74 6A 72       call        73097970  
009F04D5 B9 80 8D F1 71       mov         ecx,71F18D80h  
009F04DA E8 E9 2B D0 FF       call        006F30C8  
009F04DF 03 DF                add         ebx,edi  
009F04E1 89 58 04             mov         dword ptr [eax+4],ebx  
009F04E4 50                   push        eax  
009F04E5 8B CE                mov         ecx,esi  
009F04E7 BA 03 00 00 00       mov         edx,3  
009F04EC E8 7F 74 6A 72       call        73097970  
009F04F1 8B 0D BC 22 53 03    mov         ecx,dword ptr ds:[35322BCh]  
009F04F7 8B D6                mov         edx,esi  
009F04F9 E8 12 2A B7 71       call        72562F10  
    30:             for (var i = 0; i < 100; i++)
009F04FE 47                   inc         edi  
009F04FF 83 FF 64             cmp         edi,64h  
009F0502 0F 8C 5D FF FF FF    jl          009F0465  
    35:             }
    36:             o.Hello(1, 2);
009F0508 6A 02                push        2  
009F050A 8B 4D EC             mov         ecx,dword ptr [ebp-14h]  
009F050D BA 01 00 00 00       mov         edx,1  
009F0512 FF 15 88 4D 70 00    call        dword ptr ds:[704D88h]  
    37: 
    38:             Console.WriteLine("---- GC #1");
009F0518 8B 0D C0 22 53 03    mov         ecx,dword ptr ds:[35322C0h]  
009F051E E8 E1 4C 3D 71       call        71DC5204  
009F0523 E8 18 47 6D 72       call        730C4C40  
009F0528 8B C8                mov         ecx,eax  
009F052A 6A 01                push        1  
009F052C 6A 00                push        0  
009F052E BA 01 00 00 00       mov         edx,1  
009F0533 E8 E0 16 AC 71       call        724B1C18  
    40:             GC.WaitForPendingFinalizers();
009F0538 E8 DF 78 34 71       call        71D37E1C  
    41:             Console.WriteLine("---- GC #2");
009F053D 8B 0D C4 22 53 03    mov         ecx,dword ptr ds:[35322C4h]  
009F0543 E8 BC 4C 3D 71       call        71DC5204  
009F0548 E8 F3 46 6D 72       call        730C4C40  
009F054D 8B C8                mov         ecx,eax  
009F054F 6A 01                push        1  
009F0551 6A 00                push        0  
009F0553 BA 01 00 00 00       mov         edx,1  
009F0558 E8 BB 16 AC 71       call        724B1C18  
    43:             GC.WaitForPendingFinalizers();
009F055D E8 BA 78 34 71       call        71D37E1C  
    44:             Console.WriteLine("---- About exit");
009F0562 8B 0D C8 22 53 03    mov         ecx,dword ptr ds:[35322C8h]  
009F0568 E8 97 4C 3D 71       call        71DC5204  
009F056D 8D 65 F4             lea         esp,[ebp-0Ch]  
009F0570 5B                   pop         ebx  
009F0571 5E                   pop         esi  
009F0572 5F                   pop         edi  
009F0573 5D                   pop         ebp  
009F0574 C3                   ret
Re[2]: Только что с интервью...
От: MxMsk Россия  
Дата: 29.03.17 09:52
Оценка: :)))
Здравствуйте, fmiracle, Вы писали:

F>Я не собеседую в Лондоне в большой банк, а только в РФ в небольшую компанию. И я часто спрашиваю что такое метод Dispose, для чего применяется, и уже не раз получал ответ, что он нужен для того, чтобы сборщик мусора теперь мог собрать этот объект

F>При этом человек может работать с C# уже несколько лет, в т.ч. с базами данных.
У меня был такой случай. Чел с очень приличным по годам опытом.

Вопрос: "Расскажите, что такое финализатор".
Ответ: "Знаю только, что его лучше не вызывать".

Наверное, дальше мне стоило спросить, как его вызвать.
Re[2]: Только что с интервью...
От: Max Mustermann  
Дата: 29.03.17 11:06
Оценка: +5 :)))
Здравствуйте, Tom, Вы писали:

M>>Ответ:

M>>
M>>using 
M>>{
M>>  var o = new Object();
M>>}
M>>// здесь GC будет знать что объект свободен и его можно убрать
M>>


Tom>Я тут один такой идиот который НЕ понимает зачем задавать на собеседовании вопрос указывая не корректный, не компилирующийся код?


Я бы переформулировал: вы один тут такой, кто принял код, приведённый в ответ, за вопрос?
Отредактировано 30.03.2017 6:55 Max Mustermann . Предыдущая версия . Еще …
Отредактировано 30.03.2017 6:55 Max Mustermann . Предыдущая версия .
Re[3]: Только что с интервью...
От: sharpcoder Россия  
Дата: 29.03.17 11:13
Оценка:
Здравствуйте, Mishka, Вы писали:

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


S>>Прикинь, она идеально знает алгоритмы, структуры данных, паттерны, машинленинг и т.п.

S>>и при этом сама unig не использует, предпочитая вручную вызывать Dispose()?

M>Это единственное где using используется?


Ну удиви меня, скажи что делает еще using() кроме гарантированного вызова Dispose()?
А то я 10 лет не кодирую, может он научился еще что-то делать?
Re[3]: Только что с интервью...
От: Max Mustermann  
Дата: 29.03.17 11:18
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Вопрос: "Расскажите, что такое финализатор".

MM>Ответ: "Знаю только, что его лучше не вызывать".
MM>Наверное, дальше мне стоило спросить, как его вызвать.

Ну как-как...
GC.Collect();
GC.WaitForPendingFinalizers();


Так что всё верно сказал, обычно его лучше не вызывать.

А если серьёзно, то это довольно глупый вопрос, чисто "на широту взглядов". Знает — хорошо, не знает... тоже ничего страшного, штука ведь довольно редкая.
Re[5]: Только что с интервью...
От: namespace  
Дата: 29.03.17 11:44
Оценка:
E>Вся работа с коннекшенами, close и т.д у вменяемых людей сосредоточена в либах.
Я заметил, когда приходишь в новую команду, где устоялись за многие годы свои правила, видишь велосипед на велосипеде и костылями повязаны, и начинаешь писать в обход ровный код, то у местных разработчиков чуть ли не инфаркт случается.
Можете назвать меня джуниором, невменяемым — да кем угодно!, но мой код легко читается(по мнению других) и быстро работает.
А вынесение подобных примитивов я стараюсь избегать, если оно используется всего в паре-тройке мест.
KISS!
Re[4]: Только что с интервью...
От: Mishka Великобритания  
Дата: 29.03.17 11:58
Оценка: :)
Здравствуйте, sharpcoder, Вы писали:

S>Ну удиви меня, скажи что делает еще using() кроме гарантированного вызова Dispose()?

S>А то я 10 лет не кодирую, может он научился еще что-то делать?

слышал о using System?
Re[4]: Только что с интервью...
От: MxMsk Россия  
Дата: 29.03.17 11:59
Оценка:
Здравствуйте, Max Mustermann, Вы писали:

MM>Так что всё верно сказал, обычно его лучше не вызывать.

Кто сказал, что к моменту GC.Collect() на объект нет ссылок? Единственный вариант, возможно, рефлексия, но я не интересовался.

MM>А если серьёзно, то это довольно глупый вопрос, чисто "на широту взглядов". Знает — хорошо, не знает... тоже ничего страшного, штука ведь довольно редкая.

Вопрос как вопрос. Ответ "не сталкивался" принять можно. Ответ "его лучше не вызывать" от человека с 10 годами опыта звучит стрёмно.
Re[5]: Только что с интервью...
От: sharpcoder Россия  
Дата: 29.03.17 12:06
Оценка:
Здравствуйте, Mishka, Вы писали:

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


S>>Ну удиви меня, скажи что делает еще using() кроме гарантированного вызова Dispose()?

S>>А то я 10 лет не кодирую, может он научился еще что-то делать?

M>слышал о using System?


Учитывая что везде в ветке говорится о using() твой вопрос некорректен. Тебе нельзя людей собеседовать
Re[6]: Только что с интервью...
От: Mishka Великобритания  
Дата: 29.03.17 13:16
Оценка:
Здравствуйте, sharpcoder, Вы писали:

S>Учитывая что везде в ветке говорится о using() твой вопрос некорректен. Тебе нельзя людей собеседовать


Я ветку создал, зри в корень!
Re[4]: Только что с интервью...
От: Evgeniy Skvortsov Россия  
Дата: 29.03.17 15:09
Оценка: +1
Здравствуйте, StandAlone, Вы писали:

SA>А Вы помните семантику оператора JNZ?

Если речь идет об ассемблере x86, то это оператор условного перехода "jnz label"

SA>В каком регистре должен быть операнд условной адресации в модели памяти small?


не распарсил
Re[2]: Только что с интервью...
От: scf  
Дата: 29.03.17 15:24
Оценка: +1 -2
Здравствуйте, antropolog, Вы писали:

A>серъёзно в банках это да ( читай — пускание пыли в глаза ), но вот то что на интервью у кандидата с 9 годами опыта спрашивают про using говорит лишь о том что собеседующий вчерашний студент, понятия не имеющий что такое разработка ПО, даже если ему под сраку лет.


Сложные вопросы часто не имеет смысла задавать, т.к. ответы на них занимают много времени. Мой вариант собеседования для сеньоров:
— пройтись галопом по основам
— "расскажите о вашем последнем проекте"
— "как бы вы решали такую-то проблему"

К сожалению, первый пункт необходим. Я собеседовал людей с 5+ годами опыта, плавающих в базовых структурах данных и алгоритмах, системах счисления, алгоритмической сложности, неспособных рекурсивно обойти дерево...

Всё из-за кандидатов, писавших n лет код квадратно-гнездовым способом под какой-нибудь фреймворк.
Re: Только что с интервью...
От: prog123 Россия  
Дата: 29.03.17 18:35
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.

M>Вопрос: using в С# где и зачем
...
С учетом того, что топик уже занимает не меньше 3 страниц, ты был жесток с ней))
Re[4]: Только что с интервью...
От: IID Россия  
Дата: 29.03.17 18:43
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>А Вы помните семантику оператора JNZ?

SA>В каком регистре должен быть операнд условной адресации в модели памяти small?

Какая нафиг модель памяти Мы ещё о дотнете или уже в нейтив скатились ?
kalsarikännit
Re: Только что с интервью...
От: Abalak США  
Дата: 29.03.17 21:38
Оценка: :)))
Здравствуйте, Mishka, Вы писали:

M>Вопрос: using в С# где и зачем

M>Ответ:
M>
M>using 
M>


Банк, НЙ, точнее Монреаль. Один индус или китаец со сколькими-то там годами опыта мне выдал ровно такой же ответ, на словах. Прощупав dispose я понял, что он если и слышал про него, то не помнит когда и где. Обычно я после этого вопроса переходил плавно к GC, что б хоть примерно представлять глубину понимания человека. Самый фееричный рассказ был про то, что когда на объект больше никто не ссылается, GC поднимает его в более высокое поколение. Ну думаю — перепутал человек. Спрашиваю — зачем? Ответ — ну может он нам еще понадобится. На свой вопрос, а как мы его от туда доставать будем ответа так и не получил.
Re[3]: Только что с интервью...
От: turbocode  
Дата: 29.03.17 21:52
Оценка: -1
scf>Всё из-за кандидатов, писавших n лет код квадратно-гнездовым способом под какой-нибудь фреймворк.

У вас в компании нету своей кодобазы или фреймворка? Каждый раз всё делаете с полного нуля?
Re[6]: Только что с интервью...
От: mgu  
Дата: 29.03.17 21:52
Оценка:
Здравствуйте, namespace, Вы писали:

N>А вынесение подобных примитивов я стараюсь избегать, если оно используется всего в паре-тройке мест.

N>KISS!

DRY!
Re: Только что с интервью...
От: mgu  
Дата: 29.03.17 23:04
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.

M>Вопрос: using в С# где и зачем

Очередное сообщение из цикла ЭТОЖЕОСНОВЫ!!111.

"Основы": курс введения в программирование, написанный якобы профессором, а на самом деле аспирантом на основе кривого перевода с английского. Т. к. в программировании с 1975 года не появилось ничего нового, а кушать хочется сейчас, то старые идеи выдаются за новые, ниспровергаются "лучшие практики" и вуаля -- новый гроссбух, по 600 рублей за килограмм. В силу ограниченного времени семестра, преподаются только малые части Программирования, надёрганные случайным образом. В нынешнем сезоне в моде алгоритмы сортировок, сборщик мусора, "паттерны". То есть та лабуда, без знания которой вполне можно прожить, если вы не разрабатываете собственно языки программирования.

Среднее образование к "основам"(тм) не относится, поэтому правописание хромает, а представления о приоритете математических операций напрочь отсутствуют. Явление основано на ограниченности кругозора и желании самоутвердиться. Терапия: обычно само проходит с возрастом. Для полного исчезновения симптомов достаточно одной процедуры собеседования пациента представителями следующего поколения программистов, учившимися по другому учебнику. Если личинка разработчика не превращается в бабочку, порхающую по различным конторам и странам, то происходит окукливание в иммудабельного начальника отдела.
Re: Только что с интервью...
От: turbocode  
Дата: 30.03.17 00:03
Оценка: +1 -4 :)
M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.
M>Вопрос: using в С# где и зачем

Для 9-ти лет опыта ваш вопрос звучит как оскорбление, радуйтесь что не получили по щам.
Тупые вопросы можно было задать удаленно. Предупредить соискателя что у вас практикуется экзамен по С#, а не разговор по душам.
Re[2]: Только что с интервью...
От: · Великобритания  
Дата: 30.03.17 08:43
Оценка: +5
Здравствуйте, turbocode, Вы писали:

M>>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.

M>>Вопрос: using в С# где и зачем
T>Для 9-ти лет опыта ваш вопрос звучит как оскорбление, радуйтесь что не получили по щам.
T>Тупые вопросы можно было задать удаленно. Предупредить соискателя что у вас практикуется экзамен по С#, а не разговор по душам.
Я полагаю, что это же не единственный вопрос. Как conversation starter — по-моему хорошой вопрос. Дальше можно повести разговор в сторону gc, об управлении ресурсами, пулы, етс.
В общем я не понимаю почему на вопросы о основных возможностях основного инструмента западло отвечать?
Отвратительно только когда такое интервью проходит в виде анкетного теста и после вопроса "что такое using" последует вопрос "что такое volatile".
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[3]: Только что с интервью...
От: turbocode  
Дата: 30.03.17 09:38
Оценка: -2
·>Дальше можно повести разговор в сторону gc, об управлении ресурсами, пулы, етс.
Чтобы красиво рассказывать о работе GC нужно готовится к экзамену по C# иначе без подготовки о GC остается только инфа что он вообще есть и обрывочная инфа о поколения, SOH, LOH. при условии конечно что соискатель не пишет на работе GC мониторы.

·>В общем я не понимаю почему на вопросы о основных возможностях основного инструмента западло отвечать?

Потому что ты таким образом неявно множишь опыт соискателя на ноль, а это неуважение.
Студентам без опыта нормально такие вопросы задавать.
Re[5]: Только что с интервью...
От: Max Mustermann  
Дата: 30.03.17 10:48
Оценка: 6 (1) +2 :)
Здравствуйте, MxMsk, Вы писали:

MM>>Так что всё верно сказал, обычно его лучше не вызывать.

MM>Кто сказал, что к моменту GC.Collect() на объект нет ссылок?

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

MM>Единственный вариант,


Вы правда не знаете как создать объект без ссылок на него?

MM>возможно, рефлексия, но я не интересовался.


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

Честно говоря фраза "единственный вариант, возможно, рефлексия, но я не интересовался" звучит не менее стрёмно.
Re[4]: Только что с интервью...
От: · Великобритания  
Дата: 30.03.17 11:02
Оценка: +4
Здравствуйте, turbocode, Вы писали:

T>·>Дальше можно повести разговор в сторону gc, об управлении ресурсами, пулы, етс.

T>Чтобы красиво рассказывать о работе GC нужно готовится к экзамену по C# иначе без подготовки о GC остается только инфа что он вообще есть и обрывочная инфа о поколения, SOH, LOH. при условии конечно что соискатель не пишет на работе GC мониторы.
Ну хотя бы и так. А то тут выше
Автор: Michael7
Дата: 28.03.17
кто-то начал про счётчики ссылок рассказывать, сразу стало очевидно что 9 лет опыта в C# у него нет, и если бы это было написано в его резюме, то выводы можно делать однозначные.

T>·>В общем я не понимаю почему на вопросы о основных возможностях основного инструмента западло отвечать?

T>Потому что ты таким образом неявно множишь опыт соискателя на ноль, а это неуважение.
А если у тебя имя спросить? Ты посчитаешь, что тебя детсадовским посчитали?

T>Студентам без опыта нормально такие вопросы задавать.

А если тебя джуниор-коллега, студент-без-опыта такое спросит?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[5]: Только что с интервью...
От: turbocode  
Дата: 30.03.17 15:12
Оценка:
T>>·>В общем я не понимаю почему на вопросы о основных возможностях основного инструмента западло отвечать?
T>>Потому что ты таким образом неявно множишь опыт соискателя на ноль, а это неуважение.
·>А если у тебя имя спросить? Ты посчитаешь, что тебя детсадовским посчитали?

Я думаю что студентов без опыта нужно спрашивать вопросы по уровню сложности от легких к сложным, а опытных нужно спрашивать наоборот от сложных к легким на примере практической реально сложной задачи которая решалась или будет решаться в компании.
Тогда при спускании сверху-вниз легкие вопросы не будут рассматриваться как наезд на собеседника, а будут выглядеть как практическая необходимость для решения задачи.
P.S. Если же вы боитесь потерять время то удаленный телефонный 15-минутный скрининг по тупым вопросам это нормально.

T>>Студентам без опыта нормально такие вопросы задавать.

·>А если тебя джуниор-коллега, студент-без-опыта такое спросит?

Для меня джуниор это теоретик-справочник, поэтому тупой вопрос что такое using от джуниора я считаю невозможен.
Другое дело если джуниор спросит: "вот у меня такая проблема в задаче могу я в этом случае использовать using" то это нормальный вопрос потому что у джуниора опыта мало и ему нужна подсказка.
P.S. Для джуниоров CodeReview обязателен.
Отредактировано 30.03.2017 15:19 turbocode . Предыдущая версия .
Re[6]: Только что с интервью...
От: · Великобритания  
Дата: 30.03.17 16:59
Оценка:
Здравствуйте, turbocode, Вы писали:

T>·>А если у тебя имя спросить? Ты посчитаешь, что тебя детсадовским посчитали?

T>Я думаю что студентов без опыта нужно спрашивать вопросы по уровню сложности от легких к сложным, а опытных нужно спрашивать наоборот от сложных к легким на примере практической реально сложной задачи которая решалась или будет решаться в компании.
Ок, давай вернёмся к нашему примеру. Цель — выяснить как хорошо интервьюверуемый знает C# (нам не нужен бороздитель просторов вселенной, строящий архитектуры систем, нам нужен человек, который умеет писать код) и что "9 лет опыта C#" это не выдумки. С чего нужно начать, чтобы узнать, что человек имеет представление о работе gc и понимает смысл IDisposable/using?

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

Одну и ту же задачу можно решать миллионом способов. Может выйти ещё хуже: "угадай, какой ответ ждёт интервьювер".

T>P.S. Если же вы боитесь потерять время то удаленный телефонный 15-минутный скрининг по тупым вопросам это нормально.

За 15 мин using можно и не успеть.

T>>>Студентам без опыта нормально такие вопросы задавать.

T>·>А если тебя джуниор-коллега, студент-без-опыта такое спросит?
T>Для меня джуниор это теоретик-справочник, поэтому тупой вопрос что такое using от джуниора я считаю невозможен.
Джуниор может быть джуниором в C# и при этом сеньёром в C++. И кстати, как интервьюверуемый отвечает на простые вопросы ещё демонстрирует то как он умеет объяснять "очевидные" вещи.

T>Другое дело если джуниор спросит: "вот у меня такая проблема в задаче могу я в этом случае использовать using" то это нормальный вопрос потому что у джуниора опыта мало и ему нужна подсказка.

Он может просто увидеть код с using, подойти к тебе и спросить зачем он тут и что это всё значит.
Чаще, конечно, такое случается не с языковыми конструкциями, а с кодом проекта. Ты с этим кодом разботал кучу лет, тебе всё понятно и очевидно, а для новичка некоторые моменты могут быть совсем неизвестны и непонятны. Придётся рассказывать простые и банальные вещи. На интервью способность рассказывать такие вещи просто и понятно легче всего проверить задав простой вопрос о том, что ты заявил ты знаешь 9 лет.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[7]: Только что с интервью...
От: turbocode  
Дата: 30.03.17 18:45
Оценка: -1
T>>·>А если у тебя имя спросить? Ты посчитаешь, что тебя детсадовским посчитали?
T>>Я думаю что студентов без опыта нужно спрашивать вопросы по уровню сложности от легких к сложным, а опытных нужно спрашивать наоборот от сложных к легким на примере практической реально сложной задачи которая решалась или будет решаться в компании.
·>Ок, давай вернёмся к нашему примеру. Цель — выяснить как хорошо интервьюверуемый знает C# (нам не нужен бороздитель просторов вселенной, строящий архитектуры систем, нам нужен человек, который умеет писать код) и что "9 лет опыта C#" это не выдумки. С чего нужно начать, чтобы узнать, что человек имеет представление о работе gc и понимает смысл IDisposable/using?

Что значит знает С#? Теоретически можно знать все ключевые слова и даже знать для чего они используются но при этом писать говняный код на C#.
Умение хорошо архитектурить как раз и определяет будущее качество кода (не видел я паршивого кода с красивой архитектурой, а вот паршивого кода с кривой архитектурой или без архитектуры очень много видел)

T>>>>Студентам без опыта нормально такие вопросы задавать.

T>>·>А если тебя джуниор-коллега, студент-без-опыта такое спросит?
T>>Для меня джуниор это теоретик-справочник, поэтому тупой вопрос что такое using от джуниора я считаю невозможен.
·>Джуниор может быть джуниором в C# и при этом сеньёром в C++. И кстати, как интервьюверуемый отвечает на простые вопросы ещё демонстрирует то как он умеет объяснять "очевидные" вещи.
Синьер в С++ не может прочитать справочник по С#?

·>Он может просто увидеть код с using, подойти к тебе и спросить зачем он тут и что это всё значит.

·>Чаще, конечно, такое случается не с языковыми конструкциями, а с кодом проекта. Ты с этим кодом разботал кучу лет, тебе всё понятно и очевидно, а для новичка некоторые моменты могут быть совсем неизвестны и непонятны. Придётся рассказывать простые и банальные вещи. На интервью способность рассказывать такие вещи просто и понятно легче всего проверить задав простой вопрос о том, что ты заявил ты знаешь 9 лет.

Умение быстро реверсить и понимать гигабайты существующего кода это даже не обсуждается — must have 100% иначе ты уволен.
P.S. Понятно что на проектах без архитектуры, где все свалено в одну большую индусо-копипасте-глобально-мусорную кучу — реверсинг кода может занять значительное время, но здесь уже вам решать оставаться или уходить.
Re[3]: Только что с интервью...
От: alzt  
Дата: 31.03.17 07:04
Оценка: 9 (1)
Здравствуйте, scf, Вы писали:

scf>К сожалению, первый пункт необходим. Я собеседовал людей с 5+ годами опыта, плавающих в базовых структурах данных и алгоритмах, системах счисления, алгоритмической сложности, неспособных рекурсивно обойти дерево...


scf>Всё из-за кандидатов, писавших n лет код квадратно-гнездовым способом под какой-нибудь фреймворк.


А я видел людей блестяще знающих алгоритмы, в том числе те, о которых большинство программистов не слышали. При этом они умудряются на ровном месте написать алгоритм с квадратической зависимостью, хотя знания чтобы так не делать у них есть.
Re[3]: Только что с интервью...
От: alzt  
Дата: 31.03.17 07:07
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>У меня был такой случай. Чел с очень приличным по годам опытом.


MM>Вопрос: "Расскажите, что такое финализатор".

MM>Ответ: "Знаю только, что его лучше не вызывать".

MM>Наверное, дальше мне стоило спросить, как его вызвать.


Я бы также ответил. Опыт тоже приличный.
Re[3]: Только что с интервью...
От: hrensgory Россия  
Дата: 31.03.17 07:48
Оценка: +3
29.03.2017 12:52, MxMsk пишет:

> У меня был такой случай. Чел с очень приличным по годам опытом.

>
> Вопрос: "Расскажите, что такое финализатор".
> Ответ: "Знаю только, что его лучше не вызывать".

Если финализатор в дотнете это примерно то же самое, что финализатор в
яве, то я бы скорректировал ответ так "лучше вообще не знать, что такое
есть".

В яве, кстати, ничего не мешает сделать его public и вызвать вручную

--
WBR,
Serge.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Только что с интервью...
От: MxMsk Россия  
Дата: 31.03.17 08:22
Оценка: +1
Здравствуйте, hrensgory, Вы писали:

H>Если финализатор в дотнете это примерно то же самое, что финализатор в

H>яве, то я бы скорректировал ответ так "лучше вообще не знать, что такое
H>есть".
Лучше все-таки знать, когда выставляешь солидный опыт как главное достоинство. Топикстартовый using связан с IDisposable. Чтобы правильно реализовать IDisposable желательно понимать финализатор: то, как он вызывается, и какое влияние оказывает на сборщик мусора. И всё же, я уточню, что это — тема для разговора. Меня удивил ответ, я этим поделился. Не пойму, чего у некоторых бомбануло (не про тебя). Всегда казалось, что отсутствие знаний — не повод для гордости, а подтянуть навыки всегда полезно.

H>В яве, кстати, ничего не мешает сделать его public и вызвать вручную

В C# он реализуется а-ля деструктор, без области видимости и без имени. Его GC дергает при определенных обстоятельствах.
Re[5]: Только что с интервью...
От: Max Mustermann  
Дата: 31.03.17 08:43
Оценка: +1
Здравствуйте, MxMsk, Вы писали:

MM>Лучше все-таки знать, когда выставляешь солидный опыт как главное достоинство. Топикстартовый using связан с IDisposable. Чтобы правильно реализовать IDisposable желательно понимать финализатор


А какая между ними связь?

MM>В C# он реализуется а-ля деструктор, без области видимости и без имени. Его GC дергает при определенных обстоятельствах.


В С# он реализуется как метод Finalize, его можно найти и вызвать рефлекшном через GetMethod("Finalize",...) например.

Я вынужден поправить себя: ваши ответы "тобы правильно реализовать IDisposable желательно понимать финализатор" который "реализуется без области видимости и без имени" — они гораздо более стрёмные чем "я не знаю, но это лучше не трогать".
Ну а для человека, который задаёт вопросы на эту тему на собеседовании это просто ахтунг.
Re[4]: Только что с интервью...
От: scf  
Дата: 31.03.17 09:14
Оценка:
Здравствуйте, alzt, Вы писали:

A>А я видел людей блестяще знающих алгоритмы, в том числе те, о которых большинство программистов не слышали. При этом они умудряются на ровном месте написать алгоритм с квадратической зависимостью, хотя знания чтобы так не делать у них есть.


Зачем путать необходимое с достаточным?
Re[8]: Только что с интервью...
От: · Великобритания  
Дата: 31.03.17 09:22
Оценка:
Здравствуйте, turbocode, Вы писали:

T>·>Ок, давай вернёмся к нашему примеру. Цель — выяснить как хорошо интервьюверуемый знает C# (нам не нужен бороздитель просторов вселенной, строящий архитектуры систем, нам нужен человек, который умеет писать код) и что "9 лет опыта C#" это не выдумки. С чего нужно начать, чтобы узнать, что человек имеет представление о работе gc и понимает смысл IDisposable/using?


T>Что значит знает С#? Теоретически можно знать все ключевые слова и даже знать для чего они используются но при этом писать говняный код на C#.

T>Умение хорошо архитектурить как раз и определяет будущее качество кода (не видел я паршивого кода с красивой архитектурой, а вот паршивого кода с кривой архитектурой или без архитектуры очень много видел)
У тебя с логикой проблемы. "необходимое условие, достаточное условие"? Помнишь такое в школе проходили недавно? Или вы ещё не проходили?
Да, знание ключевых слов не гарантирует знание языка и умение писать код. Но мне не приходилось видеть людей, которые имели опыт более 5 лет, писали хороший код, но не понимали смысл основных ключевых слов языка. Приведи мне пример правдоподобной ситуации, что человеку за 9 лет написания хорошего кода ни разу не пришлось использовать using и он ни разу не видел эту конструкцию в коде?

T>>>Для меня джуниор это теоретик-справочник, поэтому тупой вопрос что такое using от джуниора я считаю невозможен.

T>·>Джуниор может быть джуниором в C# и при этом сеньёром в C++. И кстати, как интервьюверуемый отвечает на простые вопросы ещё демонстрирует то как он умеет объяснять "очевидные" вещи.
T>Синьер в С++ не может прочитать справочник по С#?
Может, но это займёт больше времени, чем ответ на вопрос, тем более в контексте кода проекта, над которым вы работаете. Назначение using можно объяснить за 10-30 секунд, особенно синьёру. Это дольше чем гуглить и читать.

T>Умение быстро реверсить и понимать гигабайты существующего кода это даже не обсуждается — must have 100% иначе ты уволен.

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

Ну вот видишь, радуйся. Ты не пройдёшь такое интервью и не попадёшь в команду, где принято друг-другу помогать, рассказывая "очевидные", попадёшь в предпочитаемые тобой условия волков-одиночек, любителей жоп-секьюрити.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[6]: Только что с интервью...
От: MxMsk Россия  
Дата: 31.03.17 10:04
Оценка:
Здравствуйте, Max Mustermann, Вы писали:

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

Покормлю, но в последний раз.

MM>А какая между ними связь?

MSDN:
class BaseClass : IDisposable
{
   public void Dispose()
   { 
      Dispose(true);
      GC.SuppressFinalize(this);           
   }
   
   // Protected implementation of Dispose pattern.
   protected virtual void Dispose(bool disposing)
   {
    ...
   }

   ~BaseClass()
   {
      Dispose(false);
   }
}


MM>>В C# он реализуется а-ля деструктор, без области видимости и без имени. Его GC дергает при определенных обстоятельствах.

MM>В С# он реализуется как метод Finalize, его можно найти и вызвать рефлекшном через GetMethod("Finalize",...) например.
Видимо на "а-ля" решил не обращать внимание. Ок, снова MSDN:

The C# compiler does not allow you to override the Finalize method. Instead, you provide a finalizer by implementing a destructor for your class.

Re[9]: Только что с интервью...
От: turbocode  
Дата: 31.03.17 10:08
Оценка:
T>>Что значит знает С#? Теоретически можно знать все ключевые слова и даже знать для чего они используются но при этом писать говняный код на C#.
T>>Умение хорошо архитектурить как раз и определяет будущее качество кода (не видел я паршивого кода с красивой архитектурой, а вот паршивого кода с кривой архитектурой или без архитектуры очень много видел)
·>У тебя с логикой проблемы. "необходимое условие, достаточное условие"? Помнишь такое в школе проходили недавно? Или вы ещё не проходили?
·>Да, знание ключевых слов не гарантирует знание языка и умение писать код. Но мне не приходилось видеть людей, которые имели опыт более 5 лет, писали хороший код, но не понимали смысл основных ключевых слов языка. Приведи мне пример правдоподобной ситуации, что человеку за 9 лет написания хорошего кода ни разу не пришлось использовать using и он ни разу не видел эту конструкцию в коде?

У тебя какой то хороший код в вакууме всегда выходит. Понимать и умение об этом хорошо рассказать — это разные скилы. Можно понимать но ничего не рассказать — но для тебя это будет выглядеть как чел ничего не понимает. Это как уметь плавать — попробуй объясни почему ты плаваешь, а другой не может хотя с виду делает тоже самое что и ты.

T>>Синьер в С++ не может прочитать справочник по С#?

·>Может, но это займёт больше времени, чем ответ на вопрос, тем более в контексте кода проекта, над которым вы работаете. Назначение using можно объяснить за 10-30 секунд, особенно синьёру. Это дольше чем гуглить и читать.

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

·>Ну вот видишь, радуйся. Ты не пройдёшь такое интервью и не попадёшь в команду, где принято друг-другу помогать, рассказывая "очевидные", попадёшь в предпочитаемые тобой условия волков-одиночек, любителей жоп-секьюрити.


Если тебе всё время нужно разжевывать что понаписали десятки человек за десятки лет то боюсь что до решения поставленной тебе задачи ты так никогда и не дойдешь потому что всегда тебе будет что то не понятно и проще тебя уволить.
Re[4]: Только что с интервью...
От: StandAlone  
Дата: 31.03.17 11:45
Оценка: -2
Здравствуйте, alzt, Вы писали:

A>А я видел людей блестяще знающих алгоритмы, в том числе те, о которых большинство программистов не слышали. При этом они умудряются на ровном месте написать алгоритм с квадратической зависимостью, хотя знания чтобы так не делать у них есть.


Основная проблема собеседований (только в России?) в узколобых кодерах, которые почему-то думают, что им платят за знание семантики using, while или jnz.
То, что им платят за решение проблем, и большинство опытных людей для решения проблем используют не while, а list comprehensions, в узенькую кодерскую головенку, отягощенную роговыми наростами, не помещается.
Re[4]: Только что с интервью...
От: StandAlone  
Дата: 31.03.17 11:48
Оценка: 1 (1) +1
Здравствуйте, alzt, Вы писали:

A>Я бы также ответил. Опыт тоже приличный.


Пару раз использовал Finalize, когда работал с COM и плагинами. Изучил детали в MSDN, использовал, затем благополучно выкинул эти знания подальше.
Самое смешное, что вышеупомянутые узколобые собеседователи, чего ни коснись вне пределов их узенькой кочки зрения, используют ровно тот же подход.
А кочку зрения с using используют строго ради почесывания ЧСВ и удовлетворения чувства собственной неполноценности, возниающего от вида бухгалтерш и продажников, получающих значительно больше кодера без всяких десятилетий заучиваний этюдов C#.
Re[7]: Только что с интервью...
От: Max Mustermann  
Дата: 31.03.17 11:59
Оценка: 6 (1) -1
Здравствуйте, MxMsk, Вы писали:

MM>>А какая между ними связь?

MM>MSDN:

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

MM>Видимо на "а-ля" решил не обращать внимание.


Да, на предложения, не несущие смысловой нагрузки я внимания не обращаю

MM>>>В C# он реализуется а-ля деструктор, без области видимости и без имени.

MM>>В С# он реализуется как метод Finalize, его можно найти и вызвать рефлекшном через GetMethod("Finalize",...) например.
MM>

MM>The C# compiler does not allow you to override the Finalize method. Instead, you provide a finalizer by implementing a destructor for your class.


И к чему вы это тут написали? Какое это вообще имеет отношение к "без области видимости и без имени"?

"Деструктор" в С# реализуется в виде автогенерённого метода Finalize, который вполне имеет и имя и видимость(protected). Это говорится в любом букваре по C#, сразу после "не трогайте эту дрянь".
Зная эту нехитрую информацию можно даже не предпологать(интересоваться), а просто быть увереным в том, что его, этот метод, можно найти и вызвать.

Вместо тысячи слов:

    static void Main(string[] args)
        {
        var mfo = new MyFinalizeObject();
        mfo.GetType().GetMethod("Finalize", BindingFlags.NonPublic |BindingFlags.Instance |BindingFlags.DeclaredOnly).Invoke(mfo, null);
            Console.ReadLine();

    }

    class MyFinalizeObject
        {
            ~MyFinalizeObject()
            {
                Console.WriteLine("Hello, MxMsk, I'm finalizer");
            }
        }


В сухом остатке в вашем утверждении "единственный вариант(вызвать деструктор — ММ), возможно, рефлексия, но я не интересовался" неверно вообще всё: не единственный и не "возможно" а точно, и тут не надо ничем интересоваться, достаточно самых базовых знаний.
На самом деле совершенно не страшно если кто-то этого не знает: штука редкая, мало исспользуемая... Но вот то, что этот "кто-то" при этом же еще и задаёт на эту тему вопросы на собеседовании — это уже "ой!". Ну а вишенка на торте — что всё это происходит в теме "ну они тупыыыые ололо" и при этом с редким упрямством упорствуете в отрицании элементарных вполне самоочевидных вещей.

MM>Покормлю, но в последний раз.

Ага, честно говоря, как троль вы так себе.
Re[10]: Только что с интервью...
От: · Великобритания  
Дата: 31.03.17 12:03
Оценка: 5 (1)
Здравствуйте, turbocode, Вы писали:

T>·>У тебя с логикой проблемы. "необходимое условие, достаточное условие"? Помнишь такое в школе проходили недавно? Или вы ещё не проходили?

T>·>Да, знание ключевых слов не гарантирует знание языка и умение писать код. Но мне не приходилось видеть людей, которые имели опыт более 5 лет, писали хороший код, но не понимали смысл основных ключевых слов языка. Приведи мне пример правдоподобной ситуации, что человеку за 9 лет написания хорошего кода ни разу не пришлось использовать using и он ни разу не видел эту конструкцию в коде?
T>У тебя какой то хороший код в вакууме всегда выходит. Понимать и умение об этом хорошо рассказать — это разные скилы. Можно понимать но ничего не рассказать — но для тебя это будет выглядеть как чел ничего не понимает. Это как уметь плавать — попробуй объясни почему ты плаваешь, а другой не может хотя с виду делает тоже самое что и ты.
Совершенно верно. Обычно в серьёзных компаниях, находящиеся в дорогих городах типа Лондона (как у топикстартера) синьёрские позиции требуют не только умение понимать, но и хорошо уметь общаться, притом не только с коллегами-программерами, но и с бизнесом, саппортом, клиентами, етс, когда надо простыми словами объяснять простые вещи людям которые не в теме.
Тупо-кодеров проще нанимать в бангладешах за копейки.

T>>>Синьер в С++ не может прочитать справочник по С#?

T>·>Может, но это займёт больше времени, чем ответ на вопрос, тем более в контексте кода проекта, над которым вы работаете. Назначение using можно объяснить за 10-30 секунд, особенно синьёру. Это дольше чем гуглить и читать.
T>Это медвежья услуга.
Как повоспитывать, так всегда пожалуйста, а вот как что-то объяснить — внезапно нет скиллов учителя.

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

Так учись объяснять — это чрезвычайно полезный скилл, который повысит твою стоимость на рынке труда.

T>·>Ну вот видишь, радуйся. Ты не пройдёшь такое интервью и не попадёшь в команду, где принято друг-другу помогать, рассказывая "очевидные", попадёшь в предпочитаемые тобой условия волков-одиночек, любителей жоп-секьюрити.

T>Если тебе всё время нужно разжевывать что понаписали десятки человек за десятки лет то боюсь что до решения поставленной тебе задачи ты так никогда и не дойдешь потому что всегда тебе будет что то не понятно и проще тебя уволить.
А если ты считаешь себя самым умным, тяжело и вообще западло делиться своими знаниями, то тебя вообще лучше не нанимать.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[5]: Только что с интервью...
От: · Великобритания  
Дата: 31.03.17 12:07
Оценка: +2
Здравствуйте, StandAlone, Вы писали:

A>>А я видел людей блестяще знающих алгоритмы, в том числе те, о которых большинство программистов не слышали. При этом они умудряются на ровном месте написать алгоритм с квадратической зависимостью, хотя знания чтобы так не делать у них есть.


SA>Основная проблема собеседований (только в России?) в узколобых кодерах, которые почему-то думают, что им платят за знание семантики using, while или jnz.

SA>То, что им платят за решение проблем, и большинство опытных людей для решения проблем используют не while, а list comprehensions, в узенькую кодерскую головенку, отягощенную роговыми наростами, не помещается.
Скажи честно, ты много видел программеров с опытом c# 9 лет, которые используют list comprehensions (в c#? linq что-ли?), но не знают как пользоваться while и что делает using?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[11]: Только что с интервью...
От: turbocode  
Дата: 31.03.17 12:35
Оценка:
·>Совершенно верно. Обычно в серьёзных компаниях, находящиеся в дорогих городах типа Лондона (как у топикстартера) синьёрские позиции требуют не только умение понимать, но и хорошо уметь общаться, притом не только с коллегами-программерами, но и с бизнесом, саппортом, клиентами, етс, когда надо простыми словами объяснять простые вещи людям которые не в теме.
Такие люди очень плохо программируют поэтому они уходят (я бы сказал сами бегут) поскорее в менеджмент чтобы не видеть код.

T>>>>Синьер в С++ не может прочитать справочник по С#?

T>>·>Может, но это займёт больше времени, чем ответ на вопрос, тем более в контексте кода проекта, над которым вы работаете. Назначение using можно объяснить за 10-30 секунд, особенно синьёру. Это дольше чем гуглить и читать.
T>>Это медвежья услуга.
·>Как повоспитывать, так всегда пожалуйста, а вот как что-то объяснить — внезапно нет скиллов учителя.
Ты какой то обиженный, видимо ты один из тех кто еще не успел полностью убежать от программирования в менеджмент и тебе коллеги все время указывают на твой плохой код.

·>Так учись объяснять — это чрезвычайно полезный скилл, который повысит твою стоимость на рынке труда.

Повысит если пройдешь в менеджмент, а если нет то понизит.

T>>Если тебе всё время нужно разжевывать что понаписали десятки человек за десятки лет то боюсь что до решения поставленной тебе задачи ты так никогда и не дойдешь потому что всегда тебе будет что то не понятно и проще тебя уволить.

·>А если ты считаешь себя самым умным, тяжело и вообще западло делиться своими знаниями, то тебя вообще лучше не нанимать.

То что пишут в книгах я вообще за какие то особые знания не считаю потому что любой может взять книгу и прочитать, а вот то чего не пишут в книгах здесь действительно делиться информацией от меня зависит: хочу я это делать или нет, нужно мне это или нет.
Re[6]: Только что с интервью...
От: StandAlone  
Дата: 31.03.17 13:05
Оценка: -1
Здравствуйте, ·, Вы писали:

·>Скажи честно, ты много видел программеров с опытом c# 9 лет, которые используют list comprehensions (в c#? linq что-ли?)


А ты кроме LINQ других применений не знаешь, что ли?
Я видел херову гору программеров, особенно часто на собеседованиях, которые прекрасно знают все про while, но даже краем уха не слышали ни про LC, ни про инварианты, ни про верифицируемость кода.
Не умеют ни декомпозицию толком делать, ни про масштабируемость и поддерживаемость думать.
Им это просто не надо, они шлепают в своем императивном стиле процедуры на пять окон с десятью вложенными циклами и в ус не дуют. И убеждены, что этот подход единственно правильный. Вот прямо как ты или автор темы.


·>но не знают как пользоваться while


Конечно! Прямо сейчас в зеркале вижу. Что я знаю о бриллиантах while?

do
do while
do while break

do while break return
do while break return
do while break return
for if switch case default

За множество лет не припомню, когда бы я в сознательном состоянии написал while. Всегда хватало фора, форича или иных, более высокоуровневых конструкций.
А вот в первый год работы я этот while знал назубок! Был ли я тогда нравственным персонажем программистом способным эффективно решать задачи? Не особо.
Если же теперь когда-то и понадобится while, то естественно из подсознания всплывет что нужно. В случае же если что-то забыто, то упадет тест(см. выше про инварианты) или завалится компиляция, что будет поправлено за минуту и дальше, к станку.
Проверять знание while это как проверять знание таблицы умножения.

·>и что делает using?


Легко! Представь, что ты несколько лет писал бизнес-логику в слое WCF. Тебе этот using нужен? Да тебе терабайты надо помнить про эту бизнес-логику и соприлегающие области. Все ненужное, согласно правилу мистера Холмса, прочь с чердака.
Using-ами пусть себе головенку забивают низкооплачиваемые низкоквалифицированные кодеры, которые ни на что выше кодера и саппортера-багофиксера не тянут.
Отредактировано 31.03.2017 13:25 StandAlone . Предыдущая версия . Еще …
Отредактировано 31.03.2017 13:25 StandAlone . Предыдущая версия .
Отредактировано 31.03.2017 13:12 StandAlone . Предыдущая версия .
Отредактировано 31.03.2017 13:10 StandAlone . Предыдущая версия .
Отредактировано 31.03.2017 13:09 StandAlone . Предыдущая версия .
Re[12]: Только что с интервью...
От: · Великобритания  
Дата: 31.03.17 13:14
Оценка:
Здравствуйте, turbocode, Вы писали:

T>·>Совершенно верно. Обычно в серьёзных компаниях, находящиеся в дорогих городах типа Лондона (как у топикстартера) синьёрские позиции требуют не только умение понимать, но и хорошо уметь общаться, притом не только с коллегами-программерами, но и с бизнесом, саппортом, клиентами, етс, когда надо простыми словами объяснять простые вещи людям которые не в теме.

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

T>>>Это медвежья услуга.

T>·>Как повоспитывать, так всегда пожалуйста, а вот как что-то объяснить — внезапно нет скиллов учителя.
T>Ты какой то обиженный, видимо ты один из тех кто еще не успел полностью убежать от программирования в менеджмент и тебе коллеги все время указывают на твой плохой код.
Во-первых, не переходи на личности. Во-вторых, за код меня таки хвалят и о using прекрасно я знаю, хотя опыта c# у меня 9 дней, а то и меньше, в общей сложности. Но чую, если бы я умел объяснять получше, то я мог бы зарабатывать раза в 1.5 больше.

T>·>Так учись объяснять — это чрезвычайно полезный скилл, который повысит твою стоимость на рынке труда.

T>Повысит если пройдешь в менеджмент, а если нет то понизит.
Недотехнарь-менеджер зарабатывает меньше большинства хороших технарей, и уж точно меньше, чем технарь-менеджер.

T>>>Если тебе всё время нужно разжевывать что понаписали десятки человек за десятки лет то боюсь что до решения поставленной тебе задачи ты так никогда и не дойдешь потому что всегда тебе будет что то не понятно и проще тебя уволить.

T>·>А если ты считаешь себя самым умным, тяжело и вообще западло делиться своими знаниями, то тебя вообще лучше не нанимать.
T>То что пишут в книгах я вообще за какие то особые знания не считаю потому что любой может взять книгу и прочитать, а вот то чего не пишут в книгах здесь действительно делиться информацией от меня зависит: хочу я это делать или нет, нужно мне это или нет.
И зря. Уверен, что если ты поднаберёшься опыта, то изменишь своё мнение.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[11]: Только что с интервью...
От: StandAlone  
Дата: 31.03.17 13:20
Оценка:
Здравствуйте, ·, Вы писали:

·>А если ты считаешь себя самым умным, тяжело и вообще западло делиться своими знаниями, то тебя вообще лучше не нанимать.


А кем себя считают те, кому западло делиться знаниями про Finalize, using или while? И они это свое заподлятское отношение проявляют на собеседованиях?
Re[13]: Только что с интервью...
От: turbocode  
Дата: 31.03.17 13:31
Оценка:
·>И зря. Уверен, что если ты поднаберёшься опыта, то изменишь своё мнение.
Моё мнение пока такое: брать тех которых не нужно учить(они самообучаемые), которые умеют во всем сами разобраться имея на руках минимум информации и придерживаются техники самодокументированного кода с хорошими архитектурными скилами.
Отредактировано 31.03.2017 13:32 turbocode . Предыдущая версия .
Re[7]: Только что с интервью...
От: · Великобритания  
Дата: 31.03.17 13:31
Оценка: +3
Здравствуйте, StandAlone, Вы писали:

SA>·>Скажи честно, ты много видел программеров с опытом c# 9 лет, которые используют list comprehensions (в c#? linq что-ли?)

SA>А ты кроме LINQ других применений не знаешь, что ли?
Каких применений? Где ещё в c# есть LC?

SA>Я видел целую херову гору других, особенно часто на собеседованиях, которые прекрасно знаю все про while, но даже краем уха не слышали ни про LC, ни про инварианты, ни про верифицируемость кода.

SA>Не умеют ни декомпозицию толком делать, ни про масштабируемость и поддерживаемость думать.
SA>Им это просто не надо, они шлепают в своем императивном стиле процедуры на пять окон с десятью вложенными циклами и в ус не дуют. И убеждены, что этот подход единственно правильный. Вот прямо как ты или автор темы.
Тоже с логикой беда. Причину и следствие путаешь. Ты лучше расскажи, где ты видел людей, которые знают LC, инварианты и т.п. но не ничего не могут сказать о while или using?

SA>За множество лет не припомню, когда бы я в сознательном состоянии написал while. Всегда хватало фора, форича или иных, более высокоуровневых конструкций.

SA>А вот в первый год работы я этот while знал назубок! Был ли я тогда нравственным персонажем программистом способным эффективно решать задачи? Не особо.
SA>Если же теперь когда-то и понадобится while, то естественно из подсознания всплывет что нужно. В случае же если что-то забыто, то упадет тест(см. выше про инварианты) или завалится компиляция, что будет поправлено за минуту и дальше, к станку.
SA>Проверять знание while это как проверять знание таблицы умножения.
И что такого-то? Как будто таблицу умножения знать — зазорно.

SA>·>и что делает using?

SA>Легко! Представь, что ты несколько лет писал бизнес-логику в слое WCF. Тебе этот using нужен? Да тебе терабайты надо помнить про эту бизнес-логику и соприлегающие области. Все ненужное, согласно правилу мистера Холмса, прочь с чердака.
SA>Using-ами пусть себе головенку забивают низкооплачиваемые низкоквалифицированные кодеры, которые ни на что выше кодера и саппортера-багофиксера не тянут.
Понятно, т.е. знаний ЯП нет, а просто code-monkey конкретного фреймворка. Топикстартеру такие значит не нужны.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[14]: Только что с интервью...
От: · Великобритания  
Дата: 31.03.17 13:44
Оценка:
Здравствуйте, turbocode, Вы писали:

T>·>И зря. Уверен, что если ты поднаберёшься опыта, то изменишь своё мнение.

T>Моё мнение пока такое: брать тех которых не нужно учить(они самообучаемые), которые умеют во всем сами разобраться имея на руках минимум информации
Это требование для джуниоров.

T> и придерживаются техники самодокументированного кода с хорошими архитектурными скилами.

А если ещё и это, то для миддлов.

Сеньёры же ещё должны уметь разговаривать с теми же джуниорами/миддлами (а не тупо посылать в rtfm) и с заказчиками/не-технарями, чтобы уточнять задачи и разбираться в требованиях.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[8]: Только что с интервью...
От: zou  
Дата: 31.03.17 14:01
Оценка:
Здравствуйте, Mishka, Вы писали:


M>>>>GC вычистит ненужный более объект (ушедший из поля видимости). Только using для этого не обязателен, это уже я поспешил замечание сделать. using нужен был, если требовалась очистка, даже при словленном исключении, то есть, это фактически аналог try{}finally{}


IT>>>Давай без using. Нет его. Влияют ли скобки на время жизни объекта? С областью видимости переменной всё понятно. А как с объектом?


M>>По идее тоже заканчивается за блоком, если только не static.


M>На коленке :


M>
M>{
M>    var o = new MyClassWithFinilizer();
M>}
M>GC.Collect
M>GC.WaitForPendingFinilizers()
M>GC.Gollect
M>


M>Упадёт объект? Нет студии под рукой проверить


"objects aren’t guaranteed to live throughout a method’s lifetime"

(c) J. Richter

Объект может быть собран даже до закрывающей фигурной скобки метода, где объявлена локальная ссылка на него, если он перестает использоваться. Ищите по цитате у Рихтера.
Отредактировано 31.03.2017 14:06 zou . Предыдущая версия . Еще …
Отредактировано 31.03.2017 14:05 zou . Предыдущая версия .
Отредактировано 31.03.2017 14:04 zou . Предыдущая версия .
Re[15]: Только что с интервью...
От: turbocode  
Дата: 31.03.17 14:05
Оценка:
T>>·>И зря. Уверен, что если ты поднаберёшься опыта, то изменишь своё мнение.
T>>Моё мнение пока такое: брать тех которых не нужно учить(они самообучаемые), которые умеют во всем сами разобраться имея на руках минимум информации
·>Это требование для джуниоров.

T>> и придерживаются техники самодокументированного кода с хорошими архитектурными скилами.

·>А если ещё и это, то для миддлов.

·>Сеньёры же ещё должны уметь разговаривать с теми же джуниорами/миддлами (а не тупо посылать в rtfm) и с заказчиками/не-технарями, чтобы уточнять задачи и разбираться в требованиях.


Если синьор посылает в RTFM то значит первое и вторые условия не выполняются. С заказчиками работают саппорт, PM-ы и еще бывает аналитики если предметная область специфическая.
Re[2]: Только что с интервью...
От: Abalak США  
Дата: 31.03.17 19:00
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Для 9-ти лет опыта ваш вопрос звучит как оскорбление, радуйтесь что не получили по щам.

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

Ох, нельзя тебе людей нанимать давать. Разоришь контору после таких собеседований по душам. Про удаленно, в принципе, согласен. Обычно эти вопросы задаются на первом телефонном интервью. Второе телефонное или личное обычно происходит в 1-2 случаях из 10, независимо от количества лет опыта в резюме.
Re[3]: Только что с интервью...
От: turbocode  
Дата: 31.03.17 19:13
Оценка:
A>Ох, нельзя тебе людей нанимать давать. Разоришь контору после таких собеседований по душам. Про удаленно, в принципе, согласен. Обычно эти вопросы задаются на первом телефонном интервью. Второе телефонное или личное обычно происходит в 1-2 случаях из 10, независимо от количества лет опыта в резюме.

Не совсем по душам но и далеко не экзамен.
У других которые брали по результатам экзаменов был достаточно большой процент по увольнениям в итоге.
Re[4]: Только что с интервью...
От: Abalak США  
Дата: 31.03.17 19:22
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Не совсем по душам но и далеко не экзамен.


Я, честно говоря, у ТС экзамена особо не заметил. Я тоже задаю этот вопрос вторым по счеты, обычно минуте на пятой интервью, после краткого рассказа о нас и кандидате о себе. Потом плавно переезжаем в GC и т.п. Заканчиваю обычно задачками из реального проекта, где человек может продемонстрировать ход мыслей и предыдущий опыт. Если конечно до этого доходит. Про юзинг, кстати, отвечают процентов 70%.

T>У других которые брали по результатам экзаменов был достаточно большой процент по увольнениям в итоге.


Это тоже не дело. Любой индус пройдет такой экзамен очень быстро. У меня есть простенький вопрос про immutable типы. Кстати, редко когда, но бывает, что не отвечали. Один индусик бодро рассказал мне на примере стринга, что к чему. Но у меня закралось сомнение и я спросил, а как он реализует свой собственный immutable тип. Когда задавал, подумал про себя, что не дело такие элементарные вещи спрашивать. Но чел не ответил, даже после наводящих вопросов и подсказок. Все мямлил про переопределение оператора =.
Re[5]: Только что с интервью...
От: alzt  
Дата: 31.03.17 19:29
Оценка:
Здравствуйте, scf, Вы писали:

A>>А я видел людей блестяще знающих алгоритмы, в том числе те, о которых большинство программистов не слышали. При этом они умудряются на ровном месте написать алгоритм с квадратической зависимостью, хотя знания чтобы так не делать у них есть.


scf>Зачем путать необходимое с достаточным?


Я не путаю. Для написания и поддержки программ, знание популярных алгоритмов не является ни необходимым, ни достаточным.
Такие вопросы проверяют в лучшем случае эрудицию. Но если человек не знает, где находится Гватемала, то что он теперь и программу написать не сможет? Особенно забавно, когда проверяют алгоритмы сортировки.
Re[5]: Только что с интервью...
От: turbocode  
Дата: 31.03.17 19:43
Оценка:
A>Я, честно говоря, у ТС экзамена особо не заметил. Я тоже задаю этот вопрос вторым по счеты, обычно минуте на пятой интервью, после краткого рассказа о нас и кандидате о себе. Потом плавно переезжаем в GC и т.п. Заканчиваю обычно задачками из реального проекта, где человек может продемонстрировать ход мыслей и предыдущий опыт. Если конечно до этого доходит. Про юзинг, кстати, отвечают процентов 70%.

Это проверка прочел ли кандидат о работе GC перед собеседованием или нет?

A>У меня есть простенький вопрос про immutable типы. Кстати, редко когда, но бывает, что не отвечали. Один индусик бодро рассказал мне на примере стринга, что к чему. Но у меня закралось сомнение и я спросил, а как он реализует свой собственный immutable тип. Когда задавал, подумал про себя, что не дело такие элементарные вещи спрашивать. Но чел не ответил, даже после наводящих вопросов и подсказок. Все мямлил про переопределение оператора =.


Слишком большая зацикленость на мелочах. Такое впечатление что ваши индусики делать что нибудь сложнее одного класса не будут.
Re[6]: Только что с интервью...
От: Abalak США  
Дата: 31.03.17 21:03
Оценка: +2
Здравствуйте, turbocode, Вы писали:

T>Это проверка прочел ли кандидат о работе GC перед собеседованием или нет?


Ниже как раз пример про то как прочитал, но оказалось недостаточным. А если таки прочитал, то хорошо, и без разницы перед интервью или 5 лет назад. Значит внутренностями дотнета интересуется, что есть гут.

T>Слишком большая зацикленость на мелочах. Такое впечатление что ваши индусики делать что нибудь сложнее одного класса не будут.


Блин, это всего лишь малая часть обсуждаемого. Конкретно — 2 первых вопроса первого собеседования. Откуда такие выводы? И привел я их тут только для того, что бы показать, что и с 10-ю заявленными годами опыта люди не отвечают на элементарные вопросы. Из этого я делаю вывод, что такие вопросы задавать нужно. Я вообще, когда составлял список вопросов, глянул на него и подумал, что как-то совсем все элементарно. Ошибался — большинство и половины не осиливало. А с теми кто осиливал беседа выходила далеко за рамки списка и плавно переходила в разговор за жизнь и второе собеседование, где уже только за жизнь.
Re[5]: Только что с интервью...
От: StatujaLeha на правах ИМХО
Дата: 31.03.17 22:03
Оценка:
Здравствуйте, Abalak, Вы писали:

A>Это тоже не дело. Любой индус пройдет такой экзамен очень быстро. У меня есть простенький вопрос про immutable типы. Кстати, редко когда, но бывает, что не отвечали. Один индусик бодро рассказал мне на примере стринга, что к чему. Но у меня закралось сомнение и я спросил, а как он реализует свой собственный immutable тип. Когда задавал, подумал про себя, что не дело такие элементарные вещи спрашивать. Но чел не ответил, даже после наводящих вопросов и подсказок. Все мямлил про переопределение оператора =.


А что тут ожидается в качестве ответа?
Вот у нас есть immutable тип. Это значит, что после создания объект этого типа внутреннее состояние не меняет.
Если же у объекта есть операции, подразумевающие изменения(например, Add для immutable коллекции или Replace для string), то этот метод при вызове на основе текущего состояния создает новый объект с состоянием, соответствующим проведенной операции.
Учесть детали реализации: у пропертей убрать setter-ы, в геттерах пропертей mutable типов возвращать не хранимую ссылку, а копию.
Что-то еще ожидается?
Или же надо на каком-то конкретном примере? Спроектировать урезанный List/string?
Re[6]: Только что с интервью...
От: mgu  
Дата: 01.04.17 05:00
Оценка:
Здравствуйте, StatujaLeha, Вы писали:

SL>А что тут ожидается в качестве ответа?


"readonly"?
Re[7]: Только что с интервью...
От: StatujaLeha на правах ИМХО
Дата: 01.04.17 08:06
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>"readonly"?


?
Не уловил вопрос...
Re[8]: Только что с интервью...
От: turbocode  
Дата: 01.04.17 08:44
Оценка: :)
mgu>>"readonly"?
SL>?
SL>Не уловил вопрос...

No hire!
Re[7]: Только что с интервью...
От: turbocode  
Дата: 01.04.17 09:09
Оценка:
A>А с теми кто осиливал беседа выходила далеко за рамки списка и плавно переходила в разговор за жизнь и второе собеседование, где уже только за жизнь.

Я не ставил бы элементарные вопросы на первое место потому что могут неправильно вас понять и у кандидата всякое желание пропадет с вами продолжать разговор, а дальше кандидат либо скатится в тролинг либо сам уйдет. В индусов менталитет скорее другой и они по умолчанию рассчитывают что их будут пороть на собеседовании независимо от их опыта.
Re[8]: Только что с интервью...
От: kaa.python Сингапур http://sysdev.me/
Дата: 01.04.17 09:16
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Я не ставил бы элементарные вопросы на первое место потому что могут неправильно вас понять и у кандидата всякое желание пропадет с вами продолжать разговор, а дальше кандидат либо скатится в тролинг либо сам уйдет. В индусов менталитет скорее другой и они по умолчанию рассчитывают что их будут пороть на собеседовании независимо от их опыта.


Тут дело не в менталитете. Основной массе народу с Индии просто нет никакого доверия, они сами себя дискредитировали. Потому что они постоянно врут про реальные навыки и их "опыт" мало коррелирует с действительно полезными рабочими навыками. Ну, если не учитывать плетение корпоративных интриг и трындеж.
Re[9]: Только что с интервью...
От: turbocode  
Дата: 01.04.17 09:22
Оценка:
KP>Тут дело не в менталитете. Основной массе народу с Индии просто нет никакого доверия, они сами себя дискредитировали. Потому что они постоянно врут про реальные навыки и их "опыт" мало коррелирует с действительно полезными рабочими навыками. Ну, если не учитывать плетение корпоративных интриг и трындеж.

Если бы дискредитировали то их бы даже не приглашали.
Re[10]: Только что с интервью...
От: Klikujiskaaan КНДР  
Дата: 01.04.17 09:44
Оценка:
Здравствуйте, turbocode, Вы писали:

KP>>Тут дело не в менталитете. Основной массе народу с Индии просто нет никакого доверия, они сами себя дискредитировали. Потому что они постоянно врут про реальные навыки и их "опыт" мало коррелирует с действительно полезными рабочими навыками. Ну, если не учитывать плетение корпоративных интриг и трындеж.


T>Если бы дискредитировали то их бы даже не приглашали.


А их приглашают?
Если есть выбор между раджикумаром и белым человеком — у раджикумара шансов практически 0.
Re[11]: Только что с интервью...
От: turbocode  
Дата: 01.04.17 10:25
Оценка:
K>А их приглашают?
Он же Abalak приглашает.

K>Если есть выбор между раджикумаром и белым человеком — у раджикумара шансов практически 0.

А ты расист.
Re[10]: Только что с интервью...
От: kaa.python Сингапур http://sysdev.me/
Дата: 01.04.17 10:42
Оценка: +1
Здравствуйте, turbocode, Вы писали:

T>Если бы дискредитировали то их бы даже не приглашали.


Как ты это себе представляешь "не приглашали бы"? Ты работаешь в компании и тебе рекрутер присылает резюме Кумара которое формально подходит под все требования вакансии. Отказать на основании того, что это Кумар, а не Джон ты не можешь. В итоге ты должен провести с ним собеседование, даже если он не в зуб ногой вообще ни в чем. А вот если его резюме попадет в команду других кумаров, то тут уже будет важнее на сколько человек хороший и на сколько приятно с ним на обед ходить, нежели профессиональные качества. В результате в больших компаниях есть целые команды из кумаров, производящие просто редчайший треш, но зато люди там очень хорошие.
Отредактировано 01.04.2017 10:56 kaa.python . Предыдущая версия .
Re[11]: Только что с интервью...
От: turbocode  
Дата: 01.04.17 10:55
Оценка:
T>>Если бы дискредитировали то их бы даже не приглашали.

KP>Как ты это себе представляешь "не приглашали бы"? Ты работаешь в компании и тебе рекрутер присылает резюме Кумара которое формально подходит под все требования вакансии.

Тупо не отвечать в омериках нельзя?
Re[12]: Только что с интервью...
От: kaa.python Сингапур http://sysdev.me/
Дата: 01.04.17 11:02
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Тупо не отвечать в омериках нельзя?


Во-первых, рекрутер, обычно, внутренний и ему ты никак не скажешь "кумаров не рассматриваю" по вполне очевидным причинам. Во-вторых, лучший QA с которым я когда либо работал был из Индии. В итоге — доверия ноль ибо постоянно врут, но талантливые люди там есть и для их поиска приходится задавать кучу разных технических вопросов по всем направлениям и вообще не верить на слово.
Отредактировано 01.04.2017 11:03 kaa.python . Предыдущая версия .
Re[13]: Только что с интервью...
От: turbocode  
Дата: 01.04.17 11:13
Оценка:
T>>Тупо не отвечать в омериках нельзя?
KP>Во-первых, рекрутер, обычно, внутренний и ему ты никак не скажешь "кумаров не рассматриваю" по вполне очевидным причинам. Во-вторых, лучший QA с которым я когда либо работал был из Индии. В итоге — доверия ноль ибо постоянно врут, но талантливые люди там есть и для их поиска приходится задавать кучу разных технических вопросов по всем направлениям и вообще не верить на слово.

В омериках нужно хотя бы для виду держать парочку кумаров, негров и ЛГБТ иначе заподозрят что то неладное.
Re[3]: Только что с интервью...
От: IncremenTop  
Дата: 01.04.17 13:16
Оценка: +1
Здравствуйте, scf, Вы писали:

scf>К сожалению, первый пункт необходим. Я собеседовал людей с 5+ годами опыта, плавающих в базовых структурах данных и алгоритмах, системах счисления, алгоритмической сложности, неспособных рекурсивно обойти дерево...


В гугле тоже не берут людей, которые не могу обойти дерево.
Я за последние 5 лет опыта работы вообще ни разу не реализовывал сложный алгоритм сам, зачастую он был либо в либе, либо в интернете уже описан.

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

scf>Всё из-за кандидатов, писавших n лет код квадратно-гнездовым способом под какой-нибудь фреймворк.


А вам кто нужен?
Re[3]: Только что с интервью...
От: IncremenTop  
Дата: 01.04.17 13:23
Оценка:
Здравствуйте, v6, Вы писали:

v6>Если переволновалась — исправится на следующих вопросах. Но судя по всему, этого не произошло.


Судя по сообщению топикстартера — ему этого хватило.
Вообще, это очень плохая ловушка, когда оценивают исключительно по 1-2 вопросам или как понравился человек.
Re[2]: Только что с интервью...
От: IncremenTop  
Дата: 01.04.17 13:26
Оценка:
Здравствуйте, Rikomer, Вы писали:

R>а потом сказал "Вы знаете я забыл"


Сколько вы прошли собеседований?
Re[12]: Только что с интервью...
От: Klikujiskaaan КНДР  
Дата: 01.04.17 14:46
Оценка:
Здравствуйте, turbocode, Вы писали:

K>>А их приглашают?

T>Он же Abalak приглашает.

Думается мне, что приглашает их HR по базвордам в резюме.

K>>Если есть выбор между раджикумаром и белым человеком — у раджикумара шансов практически 0.

T>А ты расист.

Как что-то плохое.
Re[3]: Только что с интервью...
От: IncremenTop  
Дата: 01.04.17 16:35
Оценка:
Здравствуйте, ·, Вы писали:

·>В общем я не понимаю почему на вопросы о основных возможностях основного инструмента западло отвечать?


А я не понимаю по кой черт задавать вопросы, которые не касаются непосредственной работы. Если у человека не написано, что он занимался этим — то по кой черт интересоваться, насколько давно он прочитал классиков?
Тем более по кой черт исключительно по ним спрашивать.
Это о GC. Знает человек о сборке мусора в общих чертах — по кой черт начинается дрочка по деталям?

Не говоря уже о том, что кто-то зажрался и не понимает, что на собеседовании человек может переволноваться и забыть. Требовать деталей в стрессовой ситуации — это проверка памяти, если только человек не занимался этим последние 3 месяца.
Re: Только что с интервью...
От: Dym On Россия  
Дата: 01.04.17 19:23
Оценка: +2
M>Итак, Лондон, большой банк, всё серьёзно. Встречаю соискательницу с чётким CV, 9 лет опыта С#, WPF, сервер, в общем на бумаге всё что надо.
M>Вопрос: using в С# где и зачем
Подозреваю, что там был не только using. Бывает так, что приходит человек, по документам у него все хорошо, а потом задаешь вопрос и упс! Думаешь ну ладно, волнуется, спрашиваешь чего попроще, опять упс! Закрадываются подозрения, еще проще — а-а-а-а! И, наконец, думаешь: ну вот хоть про виртуальный деструктор using он знает — и-и-и-и, та-да-а-ам!

Ведь примерно так все было?
Счастье — это Glück!
Re[8]: Только что с интервью...
От: mgu  
Дата: 01.04.17 22:59
Оценка:
Здравствуйте, StatujaLeha, Вы писали:

mgu>>"readonly"?


SL>?

SL>Не уловил вопрос...

Ну, вместо геттеров-без-(общественных)сеттеров использовать readonly.

А если имеются ссылочные поля, то в геттерах возвращать клоны значений.
Re[8]: Только что с интервью...
От: mgu  
Дата: 01.04.17 23:00
Оценка:
Здравствуйте, turbocode, Вы писали:

T>В индусов менталитет скорее другой и они по умолчанию рассчитывают что их будут пороть на собеседовании независимо от их опыта.


Почему меня так часто в России принимают за индуса?
Re[9]: Только что с интервью...
От: Mystic Artifact  
Дата: 02.04.17 00:00
Оценка: +1
Здравствуйте, mgu, Вы писали:

mgu>>>"readonly"?

SL>>?
SL>>Не уловил вопрос...
mgu>Ну, вместо геттеров-без-(общественных)сеттеров использовать readonly.
mgu>А если имеются ссылочные поля, то в геттерах возвращать клоны значений.
readonly — это спецификатор доступа к полю. К типу это вообще не имеет отношения. Кроме того — прелесть immutable типов в том, что их можно шарить между кем угодно бесплатно — они неизменны. А вот возврат клонов — это уже не совсем то — т.к. наблюдаемое состояние (взвращаемые ссылки) — меняются.
Вообще по хорошему для работы с immutable типами нужен язык который их понимает — иначе куча писанины без явно определенных гарантий / удобств. Под удобствами — это "структурное" сравнение значений например. И т.п.
Re[18]: Только что с интервью...
От: Mystic Artifact  
Дата: 02.04.17 00:11
Оценка:
Здравствуйте, IT, Вы писали:

IT>Т.е. есть ньюансы?

Ответь честно — ты же в этой подветке просто троллил?
Или реально ты не знал ответа на то что спрашивал. Я то встрял сюда случайно, этот этот подраздел форума не читаю.
Re[4]: Только что с интервью...
От: kaa.python Сингапур http://sysdev.me/
Дата: 02.04.17 00:27
Оценка: +3
Здравствуйте, IncremenTop, Вы писали:

IT>А я не понимаю по кой черт задавать вопросы, которые не касаются непосредственной работы. Если у человека не написано, что он занимался этим — то по кой черт интересоваться, насколько давно он прочитал классиков?


А если у человека написано "я отлично знаю C#" (C++/Java/Python, подставить по вкусу), то детали про язык спрашивать можно или нет? А то ситуация когда знатоки C++ на 5+ (по его оценке) не знают как работают исключения или знатоки TCP/IP которые не в состоянии объяснить что такое TCP Handshake со всех сторон.

И вообще, я не понимаю как можно не знать своего основного рабочего инструмента. На мой взгляд это говорит о полной проф.непригодности, сродни жиголо-импотенту.
Отредактировано 02.04.2017 2:25 kaa.python . Предыдущая версия . Еще …
Отредактировано 02.04.2017 1:51 kaa.python . Предыдущая версия .
Re[5]: Только что с интервью...
От: IncremenTop  
Дата: 02.04.17 01:20
Оценка: +1
Здравствуйте, kaa.python, Вы писали:

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

KP>И вообще, я не понимаю как можно не знать своего основного рабочего инструмента. На мой взгляд это говорит о полной проф.непригодности, сродни жиголо-импотенту.


95% программистов не знают и/или не смогут объяснить(что, кстати, не синоним, особенно в условиях собеседования) в деталях.

Есть вакансия. Есть конкретные компетенции, которые нужны. Вот от них и плясать надо, решая задачу подбора нужного человека.
Re[7]: Только что с интервью...
От: IncremenTop  
Дата: 02.04.17 01:23
Оценка: +1 -1
Здравствуйте, Abalak, Вы писали:

A>Откуда такие выводы? И привел я их тут только для того, что бы показать, что и с 10-ю заявленными годами опыта люди не отвечают на элементарные вопросы.


На элементарные вопросы лучше всех отвечают студенты. Берите их, не прогадаете.
Re[6]: Только что с интервью...
От: kaa.python Сингапур http://sysdev.me/
Дата: 02.04.17 01:32
Оценка: +2
Здравствуйте, IncremenTop, Вы писали:

IT>95% программистов не знают и/или не смогут объяснить(что, кстати, не синоним, особенно в условиях собеседования) в деталях.


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

IT>Есть вакансия. Есть конкретные компетенции, которые нужны. Вот от них и плясать надо, решая задачу подбора нужного человека.


Именно. Базовая вещь — знание языка на котором ты работаешь. Нет ни малейшего желания тратить время на объяснения почему так писать нельзя, и как это делать правильно человеку претендующему на позицию отличную от позиции юнтора. Не знает инструмент — до свидания.
Отредактировано 02.04.2017 1:51 kaa.python . Предыдущая версия .
Re[6]: Только что с интервью...
От: Mystic Artifact  
Дата: 02.04.17 02:43
Оценка:
Здравствуйте, IncremenTop, Вы писали:

IT>95% программистов не знают и/или не смогут объяснить(что, кстати, не синоним, особенно в условиях собеседования)

Ты проводил сам лично интервью? Это же как устный экзамен: или знаешь или нет. Интервьюевер чётко это чувствует.

ТС тут имхо плохо объяснил — начал кичаться банками своими. Банки?! Тьфу! Там 99% работает самых низкооплачиваемых "спецов". Понятно что не всюду, но в целом. Гордиться банком как предприятием — это фе. Просто потому что банки нихера не платят в основном в массах.

Ну и ТС — нихера не объяснил что же такого произошло на самом деле. То что люди в стрессе и т.п. это ясно. Извините, у мну снаряды от арты недалеко рвутся и всё ок — теперь ок. Это... уже годы закалки. Так и тут. Кому-то на собеседование — стресс. А кому-то — родить — стресс.

В моём например случае второе. . А париться из-за пидарасов я бы и так и так бы не стал.

Не-не, я тут не про ТС. Просто он подаёт информацию неясно.

А нормально просить второ или третье курсника написать однопроходной ассемблер?
Отредактировано 02.04.2017 11:03 kaa.python . Предыдущая версия .
Re[9]: Только что с интервью...
От: turbocode  
Дата: 02.04.17 10:54
Оценка: +2 -2 :)
mgu>Почему меня так часто в России принимают за индуса?

Потому что в РФ любая компания это армия, на собеседование выпускают "деда" который должен укатать кандидата мордой в пол, попутно срезав ему все ништяки и если кандидат прошел все круги ада и сам не отказался тогда возьмут.
Re[5]: Только что с интервью...
От: StandAlone  
Дата: 02.04.17 15:14
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>И вообще, я не понимаю как можно не знать своего основного рабочего инструмента. На мой взгляд это говорит о полной проф.непригодности, сродни жиголо-импотенту.


Понимашь, знание using и while — это как знание собственной ладони. В определенном возрасте каждый знает ее в совершенстве...
А вот потом уже учится доставлять удовольствие клиенту, а не себе.
Re[6]: Только что с интервью...
От: kaa.python Сингапур http://sysdev.me/
Дата: 02.04.17 15:18
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>Понимашь, знание using и while — это как знание собственной ладони. В определенном возрасте каждый знает ее в совершенстве...

SA>А вот потом уже учится доставлять удовольствие клиенту, а не себе.

А так же коллегам, которые смотрят потом на творение человека, которому базовые знания не нужны и думают как очередной кумар-стайл шедевр поддерживать. Знаем таких, проходили и всеми силами стараемся не брать в команду.
Re[8]: Только что с интервью...
От: StandAlone  
Дата: 02.04.17 15:20
Оценка: +2
Здравствуйте, ·, Вы писали:

·>Каких применений? Где ещё в c# есть LC?


Вот, очень наглядное свидетельство широты лба кругозора специалиста по while.
Это печально.

·>Понятно, т.е. знаний ЯП нет, а просто code-monkey конкретного фреймворка. Топикстартеру такие значит не нужны.


Знаешь, кто такие code monkey? Это "низкооплачиваемые низкоквалифицированные кодеры"(с)я,

·> Во-вторых, за код меня таки хвалят и о using прекрасно я знаю, хотя опыта c# у меня 9 дней, а то и меньше, в общей сложности. Но чую, если бы я умел объяснять получше, то я мог бы зарабатывать раза в 1.5 больше.


Спасибо за пример!
Те самые низкооплачиваемые низкоквалифицированные кодеры, которые не могут понять, что любой ЯП это всего лишь инструмент. И деньги зарабатывают за применение инструмента, а не знание наизусть инструкции к перфоратору.
Именно поэтому бизнес-логика намного важнее знания деталей работы ThreadPool. Потому что через 3 года про тредпул все забудут,в моде будет TPL,... YouNameItL.
А ты так всю жизнь и будешь специалистом по перфоратору, "бетон ломай стена круши мусор вывози", который мог бы зарабатывать!, вроде не бездельники, и могли бы жить!.... но чет не получается.
Re[7]: Только что с интервью...
От: StandAlone  
Дата: 02.04.17 15:22
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


Ага. Расскажи, сколько раз тебе пригождалось базовое знание обходить деревья в ширину с применением стека при разработке веб-приложений или слоя доступа к данным.
Погладь, погладь свое ЧСВ.
Re[9]: Только что с интервью...
От: StatujaLeha на правах ИМХО
Дата: 02.04.17 19:35
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>Ну, вместо геттеров-без-(общественных)сеттеров использовать readonly.


Так можно, но прокатит только в двух случаях:
1. Поле value типа.
2. Поле immutable типа.

mgu>А если имеются ссылочные поля, то в геттерах возвращать клоны значений.


Вот. Этот финт нужен для пропертей mutable типов.
Если у нас ссылочное поле immutable типа, то ему тоже можно просто readonly поставить.
Re[3]: Только что с интервью...
От: Iso12  
Дата: 02.04.17 20:37
Оценка: 10 (1)
Здравствуйте, Mishka, Вы писали:


M>using в С# используется в 3-ёх различных ситуациях. Dispose популярен поскольку на всех интервью его спрашивают. 2-ой — using System тот же Java import (daaah!), а вот 3-ий — это для тех кто реально клювом не щёлкает.


Есть using derective и есть using statement.
Я бы не смешивал всё в одну кучу, это разные вещи. То что вы спрашивали это using statement и имеет только одну цель: вызов Dispose().
Вот как раз using derective используется в трёх различных ситуациях.
Re[8]: Только что с интервью...
От: kaa.python Сингапур http://sysdev.me/
Дата: 02.04.17 23:48
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>Ага. Расскажи, сколько раз тебе пригождалось базовое знание обходить деревья в ширину с применением стека при разработке веб-приложений или слоя доступа к данным.

SA>Погладь, погладь свое ЧСВ.

Зря ёрничаешь. На днях строил список зависимостей приложения на CMake для их последующей установки. Что по сути обход дерева, причем рекурсию использовать было нельзя в силу кривости самого CMake. Классика ж примитивных задач с собеседования, которые "никогда не встречаются в реальной жизни и никому не нужны". Ага, никому и никогда не нужны
Отредактировано 03.04.2017 0:48 kaa.python . Предыдущая версия .
Re[9]: Только что с интервью...
От: StandAlone  
Дата: 03.04.17 06:39
Оценка: :))
Здравствуйте, kaa.python, Вы писали:

KP>Зря ёрничаешь. На днях строил список зависимостей приложения на CMake для их последующей установки. Что по сути обход дерева, причем рекурсию использовать было нельзя в силу кривости самого CMake. Классика ж примитивных задач с собеседования, которые "никогда не встречаются в реальной жизни и никому не нужны". Ага, никому и никогда не нужны


так как обходил-то? постфиксно, инфиксно, префиксно? За 5 минут на бумажке без интернета? Примитивно с собеседования, да?
Я не ёрничаю.
Я даю тебе возможность погладить свое ЧСВ и почувствовать себя не прорабом во главе оравы джамшутов с перфораторами, а доктором Эмметт Латроп Браун, в совершенстве знающим уравнения Максвелла и способном собрать небольшой гиперболоид из короткозамкнутых коллекторников.
Практически обстановку собеседования создаю.
Правда, зачем все эти навороты в зоопарке при классическом ремонте, я
Дерево зависимостей приложения он строил. Вручную.
:(
А огонь трением разжигать умеешь?
Re[9]: Только что с интервью...
От: · Великобритания  
Дата: 03.04.17 07:29
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>·>Каких применений? Где ещё в c# есть LC?

SA>Вот, очень наглядное свидетельство широты лба кругозора специалиста по while.
SA>Это печально.
По делу-то есть что сказать? Просвети.

SA>·>Понятно, т.е. знаний ЯП нет, а просто code-monkey конкретного фреймворка. Топикстартеру такие значит не нужны.

SA>Знаешь, кто такие code monkey? Это "низкооплачиваемые низкоквалифицированные кодеры"(с)я,
Знаю. Вот они и могут обойтись знанием как запихать бизнес-логику в WCF.

SA>·> Во-вторых, за код меня таки хвалят и о using прекрасно я знаю, хотя опыта c# у меня 9 дней, а то и меньше, в общей сложности. Но чую, если бы я умел объяснять получше, то я мог бы зарабатывать раза в 1.5 больше.

SA>Спасибо за пример!
SA>Те самые низкооплачиваемые низкоквалифицированные кодеры, которые не могут понять, что любой ЯП это всего лишь инструмент. И деньги зарабатывают за применение инструмента, а не знание наизусть инструкции к перфоратору.
SA>Именно поэтому бизнес-логика намного важнее знания деталей работы ThreadPool. Потому что через 3 года про тредпул все забудут,в моде будет TPL,... YouNameItL.
SA>А ты так всю жизнь и будешь специалистом по перфоратору, "бетон ломай стена круши мусор вывози", который мог бы зарабатывать!, вроде не бездельники, и могли бы жить!.... но чет не получается.
И то, и то важно. Без знания инструмента так и будешь закручивать гвозди микроскопом.
Да и в условиях интервью знания инструмента проверить хоть сколько-то реально. А знания бизнес-логики — что с ними делать-то? Да и в большинстве случаев не нужно новому работодателю твоё текущее знание бизнес-логики.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[5]: Только что с интервью...
От: Skorodum Россия  
Дата: 03.04.17 10:18
Оценка: +1
Здравствуйте, StandAlone, Вы писали:

SA>Многие программисты страдают неумением объяснять.

Взаимодействие людей — основная проблема в любых сложных проектах. Другая проблема — реальная мотивация, не многие понимают что их на самом деле мотивирует, не говоря уже про понимание других людей.
Re[11]: Только что с интервью...
От: Abalak США  
Дата: 03.04.17 14:41
Оценка:
Здравствуйте, Klikujiskaaan, Вы писали:

K>А их приглашают?

K>Если есть выбор между раджикумаром и белым человеком — у раджикумара шансов практически 0.

Я честно выключил все расовые предрассудки, но все равно ни один индус не попал в шорт лист чисто по знаниям.
Re[8]: Только что с интервью...
От: Abalak США  
Дата: 03.04.17 14:43
Оценка: +2
Здравствуйте, turbocode, Вы писали:

T>Я не ставил бы элементарные вопросы на первое место потому что могут неправильно вас понять и у кандидата всякое желание пропадет с вами продолжать разговор, а дальше кандидат либо скатится в тролинг либо сам уйдет. В индусов менталитет скорее другой и они по умолчанию рассчитывают что их будут пороть на собеседовании независимо от их опыта.


Ну и славно, что пропадет, а у меня с таким пропадет желание работать. Так что все довольны, а принцессы пусть и дальше ищут своих принцев.
Re[14]: Только что с интервью...
От: Abalak США  
Дата: 03.04.17 14:45
Оценка:
Здравствуйте, turbocode, Вы писали:

T>В омериках нужно хотя бы для виду держать парочку кумаров, негров и ЛГБТ иначе заподозрят что то неладное.


Не надо. Я два раза работал в полностью русскоязычных командах. Хотя одна из них ничем не отличалась от кумаров.
Re[6]: Только что с интервью...
От: Abalak США  
Дата: 03.04.17 14:47
Оценка: 1 (1)
Здравствуйте, StatujaLeha, Вы писали:

SL>А что тут ожидается в качестве ответа?

SL>Вот у нас есть immutable тип. Это значит, что после создания объект этого типа внутреннее состояние не меняет.
SL>Если же у объекта есть операции, подразумевающие изменения(например, Add для immutable коллекции или Replace для string), то этот метод при вызове на основе текущего состояния создает новый объект с состоянием, соответствующим проведенной операции.

Ну мне было бы достаточно.
Re[4]: Только что с интервью...
От: Abalak США  
Дата: 03.04.17 14:50
Оценка:
Здравствуйте, IncremenTop, Вы писали:

IT>Это о GC. Знает человек о сборке мусора в общих чертах — по кой черт начинается дрочка по деталям?


Скажем так, мне встречался код, в котором GC отрабатывал по две минуты.
Re[9]: Только что с интервью...
От: Тёмчик жж
Дата: 03.04.17 15:08
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Зря ёрничаешь. На днях строил список зависимостей приложения на CMake для их последующей установки. Что по сути обход дерева, причем рекурсию использовать было нельзя в силу кривости самого CMake. Классика ж примитивных задач с собеседования, которые "никогда не встречаются в реальной жизни и никому не нужны". Ага, никому и никогда не нужны


https://en.m.wikipedia.org/wiki/Tsort — cmake не использует эту утилку?
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re[10]: Только что с интервью...
От: kaa.python Сингапур http://sysdev.me/
Дата: 03.04.17 15:20
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>https://en.m.wikipedia.org/wiki/Tsort — cmake не использует эту утилку?


Это не то, у меня была другого рода проблема. Есть бинарник и несколько библиотек у которых есть зависимости от других библиотек и т.д. На этапе подготовки инсталляционного пакета нужно собрать все библиотеки, разложить их по директориям, поправить RPATH/install_name_path и т.п на 3-х платформах (для Windows/Linux/macOS). Так как есть несколько уровней зависимостей (дерево, фактически), библиотек может просто нет в дереве зависимостей самого CMake проекта и информацию пришлось извлекать отдельно, из бинарников, благо такое API есть в составе CMake. Но вот API для "дать имя головного модуля и получить зависимости всех уровней" нет. В принципе, там работы всего ничего, но сам CMake-скрипт то еще говнище где даже рекурсии не работают, что осложняло дело несколько
Re[9]: Только что с интервью...
От: turbocode  
Дата: 03.04.17 16:46
Оценка:
T>>Я не ставил бы элементарные вопросы на первое место потому что могут неправильно вас понять и у кандидата всякое желание пропадет с вами продолжать разговор, а дальше кандидат либо скатится в тролинг либо сам уйдет. В индусов менталитет скорее другой и они по умолчанию рассчитывают что их будут пороть на собеседовании независимо от их опыта.
A>Ну и славно, что пропадет, а у меня с таким пропадет желание работать. Так что все довольны, а принцессы пусть и дальше ищут своих принцев.

Не каждому охота кому то что то доказывать с нуля и работать потом по системе: ты никто и звать тебя никак, твое мнение ничто, выполняй приказ. кругом, шагом марш!
Re[7]: Только что с интервью...
От: StatujaLeha на правах ИМХО
Дата: 03.04.17 19:59
Оценка:
Здравствуйте, Abalak, Вы писали:

A>Ну мне было бы достаточно.


Достаточно для перехода к более сложным вопросам или к стремлению побыстрее закончить беседу?
Re[10]: Только что с интервью...
От: mgu  
Дата: 04.04.17 00:51
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

MA> readonly — это спецификатор доступа к полю. К типу это вообще не имеет отношения. Кроме того — прелесть immutable типов в том, что их можно шарить между кем угодно бесплатно — они неизменны. А вот возврат клонов — это уже не совсем то — т.к. наблюдаемое состояние (взвращаемые ссылки) — меняются.


Ну, можно и const тогда задействовать, но есть очевидные ограничения использования. Или сериализовать в файлы с запретом модификации, но это тоже... как-то... через задний проход.

MA> Вообще по хорошему для работы с immutable типами нужен язык который их понимает — иначе куча писанины без явно определенных гарантий / удобств. Под удобствами — это "структурное" сравнение значений например. И т.п.


Да, мне кажется, что языки с модификаторами immutable, singleton и т. п. давно напрашиваются.
Re[7]: Только что с интервью...
От: mgu  
Дата: 04.04.17 01:34
Оценка: +1
Здравствуйте, kaa.python, Вы писали:

KP>Именно. Базовая вещь — знание языка на котором ты работаешь. Нет ни малейшего желания тратить время на объяснения почему так писать нельзя, и как это делать правильно человеку претендующему на позицию отличную от позиции юнтора. Не знает инструмент — до свидания.


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

Далее. Имеется описанный вами экземпляр программиста. У вас нет желания тратить время на объяснения. А откуда у него возьмутся знания о правильном написании программ? Из учебников? А вот загляните в учебники... мама родная! Я вот недавно распространялся по поводу Cracking the Code Interview. Да я бы таких авторов... да тряпками... А вдруг неиспорченная душа прочитала сие поделие? Хорошо, есть священные канонические писания, а если кандидат принадлежит к другой секте? Да даже спросите на RSDN у 10 человек, как написать singleton, и получите 12 разных ответов. Как плохо пишущему программисту научиться, прорвать заколдованный круг? Вы, я уверен, являетесь сильным программистом, а когда-то тоже делали первые шаги. ПодЕлитесь способами профессионального роста?

Желание обучать, умение объяснять -- не есть ли это признаки гуру?
Re[8]: Только что с интервью...
От: kaa.python Сингапур http://sysdev.me/
Дата: 04.04.17 01:47
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>Вот смотрите: на этом форуме инструментом для донесения своей мысли является русский язык, а вы пренебрегаете его "синтаксисом".


Именно. Я довольно безграмотно пишу на русском и если кто-то решит взять меня на работу писателем/журналистом – то он конченный идиот.

mgu>Желание обучать, умение объяснять -- не есть ли это признаки гуру?


Мне платят за решение проблем, а не обучение. Будут платить за обучение – буду обучать. При этом я не против учить (и учу) людей на позиции Junior, могу дать рекомендации людям уровня Middle. Но при этом считаю проф.непригодными людей уровня Senior которые требуют какого-либо базового обучения. В моем глубокое знание языка и умение им пользоваться, так же как и знание основных алгоритмов и структур данных входит в это самое базовое знание.
Re[10]: Только что с интервью...
От: mgu  
Дата: 04.04.17 01:55
Оценка:
Здравствуйте, turbocode, Вы писали:

mgu>>Почему меня так часто в России принимают за индуса?


T>Потому что в РФ любая компания это армия, на собеседование выпускают "деда" который должен укатать кандидата мордой в пол, попутно срезав ему все ништяки и если кандидат прошел все круги ада и сам не отказался тогда возьмут.


К счастью, не любая. А "деды" по сути, гопники, и подход к ним должен быть примерно такой:

  Тюремная лексика
— Жало завали, плесень… Тебе что, на хер соли насыпали? Визжишь, как потерпевший. Достал нож, режь! Или по жизни не волокешь и понты чеченские решил проколотить?! Ты, баклан недоделанный, на зоне шнырем был, а здесь накидал на себя пуху и блестишь чешуей! Короче, долг я откусал, а ты в попадосе. Плюс рамсы попутал и, не зная человека, заточкой светанул. Короче, еще раз со своей пристяжью возле лагеря нарисуешься, я тебе это «сажало» загоню в тухлую вену! Причем тупым концом. А теперь дай его сюда и ломись по-шустрому!

(с)
Re[10]: Только что с интервью...
От: mgu  
Дата: 04.04.17 01:59
Оценка:
Здравствуйте, StatujaLeha, Вы писали:

mgu>>Ну, вместо геттеров-без-(общественных)сеттеров использовать readonly.


SL>Так можно, но прокатит только в двух случаях:

SL>1. Поле value типа.
SL>2. Поле immutable типа.

mgu>>А если имеются ссылочные поля, то в геттерах возвращать клоны значений.


SL>Вот. Этот финт нужен для пропертей mutable типов.

SL>Если у нас ссылочное поле immutable типа, то ему тоже можно просто readonly поставить.

Ну да. Но автор вопроса намекал на какое-то простое очевидное решение. Я теряюсь.
Re[5]: Только что с интервью...
От: mgu  
Дата: 04.04.17 02:07
Оценка:
Здравствуйте, Abalak, Вы писали:

A>Скажем так, мне встречался код, в котором GC отрабатывал по две минуты.


В IDE Eclipse в режиме набивания кода и подольше бывает.
Re[9]: Только что с интервью...
От: mgu  
Дата: 04.04.17 02:47
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Именно. Я довольно безграмотно пишу на русском и если кто-то решит взять меня на работу писателем/журналистом – то он конченный идиот.


Да я не про такой уровень (тут уже требуется профильное образование), а про постановку задач.

mgu>>Желание обучать, умение объяснять -- не есть ли это признаки гуру?


KP>Мне платят за решение проблем, а не обучение. Будут платить за обучение – буду обучать. При этом я не против учить (и учу) людей на позиции Junior, могу дать рекомендации людям уровня Middle. Но при этом считаю проф.непригодными людей уровня Senior которые требуют какого-либо базового обучения. В моем глубокое знание языка и умение им пользоваться, так же как и знание основных алгоритмов и структур данных входит в это самое базовое знание.


Вспомнилось про старших программистов доцентов:

что знает студент?
— студент знает все!

что знает аспирант?
— почти все, что знает студент!

что знает доцент?
— книгу, в которой написано то, что знает студент!

что знает декан?
— декан знает, где найти доцента!

Re[11]: Только что с интервью...
От: Тёмчик жж
Дата: 04.04.17 02:52
Оценка:
Здравствуйте, kaa.python, Вы писали:
  Скрытый текст
Тё>>https://en.m.wikipedia.org/wiki/Tsort — cmake не использует эту утилку?

KP>Это не то, у меня была другого рода проблема. Есть бинарник и несколько библиотек у которых есть зависимости от других библиотек и т.д. На этапе подготовки инсталляционного пакета нужно собрать все библиотеки, разложить их по директориям, поправить RPATH/install_name_path и т.п на 3-х платформах (для Windows/Linux/macOS). Так как есть несколько уровней зависимостей (дерево, фактически), библиотек может просто нет в дереве зависимостей самого CMake проекта и информацию пришлось извлекать отдельно, из бинарников, благо такое API есть в составе CMake. Но вот API для "дать имя головного модуля и получить зависимости всех уровней" нет. В принципе, там работы всего ничего, но сам CMake-скрипт то еще говнище где даже рекурсии не работают, что осложняло дело несколько

Huffman encoding может быть похожее решение- online алгоритм с использованием структуры deque и без рекурсии. Такое задание может быть как тестовое на дом, но вряд ли это хороший вопрос выяснить знание базовых вещей- чел может такие вещи за свой опыт не делал. Должен быть в состоянии разобраться с помощью гугла.
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Отредактировано 04.04.2017 2:53 $$ . Предыдущая версия .
Re[8]: Только что с интервью...
От: alzt  
Дата: 04.04.17 06:34
Оценка:
Здравствуйте, IT, Вы писали:

IT>Не думаю. Указатель под переменную выделяется в стеке и вряд ли он зачищается при выходе из области видимости переменной. Следовательно, объект будет существовать до момента выхода из метода.


Это довольно очевидная оптимизация. Могли бы и сделать. Как на самом деле — не знаю.
Re[3]: Только что с интервью...
От: diez_p  
Дата: 04.04.17 12:02
Оценка: +2
Здравствуйте, Mishka, Вы писали:

M>using в С# используется в 3-ёх различных ситуациях. Dispose популярен поскольку на всех интервью его спрашивают. 2-ой — using System тот же Java import (daaah!), а вот 3-ий — это для тех кто реально клювом не щёлкает.


ну ну, это из серии аудиофилов с бескислорождной медью. using используется как statement и как operator.
Разделять using statement на alias и types import — бред самовлюбленного человека, считающим свое открытие важным.

Нанимают книжных червей, и после 5 лет проекта получают такое лютое легаси с дизайном в виде франкинштейна, что волосы дыбом встают. Спрашивайте как человек решал проблемы,а не на сколько досканально он знает какие-то глубинные фичи языка.
Спросите какие проблемы человек решил, почему он выбрал именно такое решение, какие ошибки человек допускал.
Писать enterprise должны прежде всего адекватные люди, а не книжные шкафы в виде прочитанных рихтеров и т.д. Я кстати на собеседованиях люблю смотреть код предстоящего проекта, чтобы можно было оценить самомнение и реальное обстоятельство дел.

PS код в интерпрайзе хороший видел
Re[4]: Только что с интервью...
От: zverjuga Беларусь  
Дата: 04.04.17 12:26
Оценка:
Здравствуйте, IT, Вы писали:

IT>Помню в плюсах частенько использовал такой финт, чтобы огранить время жизни объекта. В шарпе объект останется болтаться в стеке или будет зачищен?


в плюсах, если ты используешь new, то объект будет болтаться до бесконечности, пока ты его не убьешь. хоть внутри скобок, хоть снаружи.
проклятый антисутенерский закон
Re[11]: Только что с интервью...
От: elmal  
Дата: 05.04.17 16:28
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>Да, мне кажется, что языки с модификаторами immutable, singleton и т. п. давно напрашиваются.

Что значит напрашиваются? immutable — это не модификатор, это в современных языках такое понятие, как Data Object. По умолчанию в современных языках все immutable — если хочешь мутировать, то тут нужен модификатор. Singleton — это не модификатор, ключевое слово object тоже вполне есть в современных языках. Под современными языками я подразумеваю как минимум scala, kotlin, ceylon. Java и C# уже не переделать, там мутабельность по умолчанию и до черта легаси в плане синтаксиса.
Re[12]: Только что с интервью...
От: mgu  
Дата: 06.04.17 01:53
Оценка:
Здравствуйте, elmal, Вы писали:

mgu>>Да, мне кажется, что языки с модификаторами immutable, singleton и т. п. давно напрашиваются.

E>Что значит напрашиваются? immutable — это не модификатор

Вот поэтому и напрашивается.

E>По умолчанию в современных языках все immutable — если хочешь мутировать, то тут нужен модификатор. Singleton — это не модификатор,


Жаль.

E>ключевое слово object тоже вполне есть в современных языках. Под современными языками я подразумеваю как минимум scala, kotlin, ceylon. Java и C# уже не переделать, там мутабельность по умолчанию и до черта легаси в плане синтаксиса.


Ну, как сказать. Вот тут https://www.toptal.com/scala/why-should-i-learn-scala товарищ поёт осанну Скале, а ему отвечают, что пока он её учил, в Jave 8 появились те же самые вещи. (Ну, почти. Я надеюсь дожить до Джавы без поноса свойств.)
Re[13]: Только что с интервью...
От: elmal  
Дата: 06.04.17 04:39
Оценка: +1
Здравствуйте, mgu, Вы писали:

mgu>Ну, как сказать. Вот тут https://www.toptal.com/scala/why-should-i-learn-scala товарищ поёт осанну Скале, а ему отвечают, что пока он её учил, в Jave 8 появились те же самые вещи. (Ну, почти. Я надеюсь дожить до Джавы без поноса свойств.)

Да ни черта они в Java 8 не появились. В Java как было все мутабельно по умолчанию, так и осталось. Как Data Object не было, так и нет. Возможности писать DSL как не было, так и нет (за счет перегрузки операторов, за счет опциональных скобок при вызове, за счет необязательной точки с запятой). Макросов в Java тоже как не было, так и нет. Checked исключения в Java тоже заставляют много лисапедов делать чтоб код был покороче. Старые либы кидают все checked, новые стараются всегда inchecked. Если ты юзаешь старые либы, придется с этим что то делать. Или у тебя будет полная лапша в коде, которая у большинства. Паттерн матчинга в Java тоже как не было, так и нет.

Stream API и лямбды — да, появились. Можно в результате поиграться с функциональщиной. В результате синтаксис конечно поприятнее стал. Но как был громоздким, так и остался громоздким. Если на других языках не писал, эта громоздкость даже не заметна. Но когда вкусишь запретный плод, как то потом тяжко назад возвращаться.
Re[5]: Только что с интервью...
От: elmal  
Дата: 06.04.17 04:47
Оценка:
Здравствуйте, Abalak, Вы писали:

A>Скажем так, мне встречался код, в котором GC отрабатывал по две минуты.

А параметры запуска настраивать можно? А то он у меня тоже 2 минуты как то работал по умолчанию, а то и поболее. Когда я in memory вычисления делал, соответственно забивал все 60 гигов. Думал, ну вот наконец стану экспертом по работе с GC, наконец столкнулся с проблемой. Аж 3 дня предполагал что буду разбираться и оптимизировать. Блин — банальный ConcurrentMarkAndSweep про который я к тому же знал, но мне лень было сразу включать через 5 минут решил все проблемы, так экспертом и не стал, мне снова это не нужно ни фига.
Re[6]: Только что с интервью...
От: De-Bill  
Дата: 06.04.17 07:17
Оценка:
Я бы даже сказал, что то, что выдал MxMsk звучит совершенно стрёмно. Одно дело, когда человеку за 10 лет работы приходилось реализовывать финализатор пару раз, а потом он о нём забывал. И совершенно другое дело, когда человек читал книги, разбирался, думал, что он в этом шарит, а потом выдаёт такое.
Re[4]: Только что с интервью...
От: msk78 Россия http://miccro.livejournal.com
Дата: 06.04.17 10:37
Оценка:
Здравствуйте, IncremenTop, Вы писали:

IT>А вам кто нужен?


Думается, что scf, проработав N лет в программировании, сам не понимает, кто им нужен.
Поэтому и спрашивает вещи, никак не относящиеся к проекту.
Re[4]: Только что с интервью...
От: The Passenger Голландия  
Дата: 06.04.17 15:50
Оценка:
Здравствуйте, RussianFellow, Вы писали:

SA>>Меня однажды собеседовали в один небольшой немецкий банк. Собеседующих было 2, добрый и злой, как положено. Ну в общем на третий час они малость подустали( а я как раз тогда проштудировал от корки до корки Нэша по наисвежайшему C# 4.0 и прорешал все задачки из Сэджвика). И один из собеседующих, наморщив лоб, небрежно обронил — "а расскажите-ка нам, как в машинной памяти устроена ссылка на объект в .NET... ШТАААААА???? ВЫ ЭТОГО НЕ ЗНАЕТЕ И СМЕЛИ К НАМ ПРИЙТИ?!!!!...".


может они хотели чтобы ты нарисовал квадратик и стрелочку к нему — сказав что квадратик это объект в памяти а стрелочка это ссылка ... я бы не удивился
Весь мир — Кремль, а люди в нем — агенты
Re[14]: Только что с интервью...
От: mgu  
Дата: 07.04.17 03:27
Оценка:
Здравствуйте, elmal, Вы писали:

E>Stream API и лямбды — да, появились. Можно в результате поиграться с функциональщиной. В результате синтаксис конечно поприятнее стал. Но как был громоздким, так и остался громоздким. Если на других языках не писал, эта громоздкость даже не заметна. Но когда вкусишь запретный плод, как то потом тяжко назад возвращаться.


Это да. Мне Джава в последнее время напоминает комиссионный мебельный магазин. Зато кормят хорошо, а экзотика может и не взлететь. Вон, лет 8 назад ActionScript был хитом сезона, и где он сейчас? А Джава стоИт.
Re: Только что с интервью...
От: Gattaka Россия  
Дата: 08.04.17 17:17
Оценка:
Да?!? А как тебе такой поворот когда собеседующий такое говорит? Ты пытаешься ему что-то объяснить, а он ясно видит что ты не компетентен совершенно. У меня слава Богу такого не было, но коллега рассказывал. И как раз речь шла о Dispose.
Re[5]: Только что с интервью...
От: IT Россия blogs.rsdn.ru
Дата: 09.04.17 21:55
Оценка:
Здравствуйте, zverjuga, Вы писали:

Z>в плюсах, если ты используешь new, то объект будет болтаться до бесконечности, пока ты его не убьешь. хоть внутри скобок, хоть снаружи.


Да ладно!
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[14]: Только что с интервью...
От: Тёмчик жж
Дата: 09.04.17 22:06
Оценка:
Здравствуйте, elmal, Вы писали:

E>Stream API и лямбды — да, появились. Можно в результате поиграться с функциональщиной. В результате синтаксис конечно поприятнее стал.

Весьма приятней. Я имею в виду конструкции типа producer->map->filter->reduce. Правда, я не замерял производительность
LIVE camera in Dee Why: http://www.coastalwatch.com/surf-cams-surf-reports/nsw/dee-why
Re[5]: Только что с интервью...
От: Silver_S Ниоткуда  
Дата: 10.04.17 08:36
Оценка:
Здравствуйте, StandAlone, Вы писали:

B>>Такие вещи надо чувствовать и не тратить свое время. Извините, у меня собеседование в Google через полчаса. Рад был поговорить, удачи в поиске кандидатов. Пожали руки и разошлись.

SA>Хамство("Нихрена себе чего тут только в резюме не понаписано!...Как думаешь,<имя второго собеседующего>, зачем мы вообще сюда пришли?...") встречается через раз.
SA>Но приходится реагировать нейтрально, потому что там же сидит хрюша и хрен она тебя выпустит до завершения стандартного процесса обработки.

Эти хрюши-теоретики могут еще и такое вытворять, тесты на стрессоустойчивость: http://www.ht.ru/cms/component/content/article/1-aricles/684-2009-10-07-20-48-21

Стрессовое интервью является, наверное, одним из самых спорных методов оценки претендентов на вакансии в арсенале эйчаров. Большинство рекрутеров придерживаются мнения, что применять его следует только в исключительных случаях, когда стрессоустойчивость является действительно одним из определяющих требований к кандидатам на вакантную позицию.
...
Проводя стрессовое интервью, рекрутер обращает внимание не столько на то, что вы говорите, сколько на то, как вы реагируете на происходящее и каким образом ориентируетесь в некомфортных для вас условиях. Самые распространенные приемы:
— задержка на некоторое время начала собеседования;
— вопросы о недостатках соискателя;
— вопрос о причинах увольнения с прошлых мест работы;
— интерес к личной жизни кандидата.

Re[3]: Только что с интервью...
От: Silver_S Ниоткуда  
Дата: 10.04.17 09:15
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Вопрос: "Расскажите, что такое финализатор".

MM>Ответ: "Знаю только, что его лучше не вызывать".
MM>Наверное, дальше мне стоило спросить, как его вызвать.

Может это были смутные воспоминания о том что — на финализатор лучше не надеяться, unmanaged ресурсы освобождать вручную.
Re[4]: Только что с интервью...
От: MxMsk Россия  
Дата: 10.04.17 10:45
Оценка: +1
Здравствуйте, Silver_S, Вы писали:

S_S>Может это были смутные воспоминания о том что — на финализатор лучше не надеяться, unmanaged ресурсы освобождать вручную.

Так вопрос же не об этом был. Что это вообще за верю/не-верю? Человек шел на серьезную должность, сразу в бой и на хорошие деньги. Взять того, кто просто что-то слышал, было бы неверной тратой и без того ограниченных ресурсов. Ну, и ему видимо лучше работать с теми, кто считает, что вызов в C# — это то же самое, что вызов через Рефлексию. У нас свободная (относительно) страна
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.