Re[3]: Только что с интервью...
От: sharpman Россия  
Дата: 28.03.17 18:09
Оценка: 2 (1) +3 :))) :))) :))) :)
Здравствуйте, ylp, Вы писали:

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

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

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

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

.

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 Россия linq2db.com
Дата: 28.03.17 18:28
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

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


В том то и дело, что в нашем случае "уже не будет нужна" и "до выхода из метода" совсем разные вещи.
Если нам не помогут, то мы тоже никого не пощадим.
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 Россия linq2db.com
Дата: 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.


Мы сейчас не обсуждаем выход из метода. Мы обсуждаем выход за пределы видимости переменной в коде. Насколько я припоминаю, стек выделяется под все ссылки вначале метода. При выходе из блока стек не корректируется, т.е. если переменную явно не обнулить, то она будет болтаться в стеке до выхода из метода.
Если нам не помогут, то мы тоже никого не пощадим.
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 Россия linq2db.com
Дата: 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");
        }
    }
}


Никто ничего не сопоставляет. Я бы сильно удивился если бы это было так.
Если нам не помогут, то мы тоже никого не пощадим.
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 . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.