| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Типовые вопросы по C#.NET |
| Автор: ДобренькийПапаша 8.9.2009, 19:43 |
| Вот http://forum.vingrad.ru/forum/topic-262419/0.html аналогичная тема, я решил тут открыть новую по C#.NET, через несколько дней предстоит собеседование в очень крупную IT-компанию с такими требованиями (я ещё неопытен, может тысяч 6 строк тока написал на C# и сотню хранимых процедур на T-SQL): #
Что могут спрашивать? И вообще, что скажете по этому поводу? |
| Автор: Экскалупатор 8.9.2009, 19:53 |
| что такое структура? (вчера был на собеседовании спрашивали). |
| Автор: ДобренькийПапаша 8.9.2009, 20:02 |
| абстракция совокупности данных как единого целого, обяъявляется ключевым словом struct, наследуется от System.Value. Это сходу))) Добавлено через 1 минуту и 44 секунды з.ы. А это вам единственный вопрос задали?))) |
| Автор: Экскалупатор 8.9.2009, 20:04 |
| ))) у меня спрашивали можно ли в структуре объявлять методы и если да то чем она отличается от класса. |
| Автор: ДобренькийПапаша 8.9.2009, 20:10 |
| Вам более серьёзные вопросы задавали, или мне из Вас вопросы клещами вытягивать? |
| Автор: Экскалупатор 8.9.2009, 20:22 |
| конечно не единственный, просто C# это была не основная специализация. 1. спрашивали про интерфейсы, что это, что дает, какие стандартные интерфейсы я знаю 2. какой базовый класс в .NET и какие методы он реализует. 3. ну и были задания на реализацию методов. (например реализовать метод который бы возвращал номер недели по введенной дате.) вроде все. если еще вспомню то напишу. |
| Автор: ДобренькийПапаша 8.9.2009, 21:03 |
| А вот зачем такой вопрос по методу который возвращал бы номер недели. Я вот помню, что это в объекте DateTime есть функция какая-то, но я её не помню, поэтому погляжу в МСДН просто, а на собеседовании чё делать? Реализовать сходу как-нибудь напролом, если не помнишь, или лучше сказать мол вот DateTime но метод объекта не помню? |
| Автор: Экскалупатор 8.9.2009, 21:16 |
| там по условию нельзя пользоваться стандартными функция(иначе действительно нет смысла спрашивать), можно пользоваться функцией возвращающий номер дня в неделе и номер дня в году. на первый взгляд вроде все очевидно, получил номер дня в году, разделил на 7 и все, но вот например 5 января 2009 года это вторая неделя, а по сему решение в лоб не работает, такие задания наверное просто для проверки способностей к "мыслению" делают. |
| Автор: Darkmaster 10.9.2009, 13:43 |
| 2Экскалупатор, Если не сложно, то можете привести хотя бы 2-3 задания ? Просто очень интересно попробовать решить. |
| Автор: PashaPash 10.9.2009, 14:38 |
| ДобренькийПапаша, у нас три контрольных вопроса: 1. Жизненный цикл страницы в asp.net 2. Сборщик мусора 3. LEFT JOIN иногда еще доп. - про виртуальные и абстрактные функции. ;) |
| Автор: Экскалупатор 10.9.2009, 15:27 |
| gambit, их особо не интересовало знаешь ли ты весь MSDN наизусть, задача для того что бы решить поставленную задачу теми средствами, которые тебе ДАЛИ, а не теми которые ты знаешь, т.е. надо подумать и решить. это как задачи в школе, все знают что высоту треугольника можно тупо измерить линейкой, но по условию задачи ее нужно найти... так и тут. наверное хотели проверить способность именно решать задачи, а не просто знать. всего меня просили написать две вещи: 1. метод сортировки пузырьком, при чем после того как я его написал попросили объяснить и оптимизировать т.е. сделать так что бы не было лишних проходов и проверок. 2. это про недели. остальное устно, мне больше всего понравился вопрос про структуры... |
| Автор: ДобренькийПапаша 10.9.2009, 19:49 |
| PashaPash, по поводу первого вопроса, а если программер не вэб-ориентированный?))) Механизм работы сборщика глубоко требуете знать или можно рассказать поверхностно? |
| Автор: fromrus 10.9.2009, 20:04 | ||
Если я не веб программист то как я отвечу на первый вопрос?Ну если тока набор идет на вебистов... остальные два легкие(мозгов не надо,тока знания).... Обычно в более менее адекватных фирмах спрашивают не о том ,как я знаю .НЕТ,а то как я умею программировать на .НЕТ... К примеру,какие паттерны я знаю и как они реализуются средствами .НЕТ...+абстрактыне вопросы по платформе,типа того,как работает сборщик мусора,или "какие способы асинхронного вызова существуют в .НЕТ".... Эт мне знакомые рассказывали..) А ваще я хз,сам так не устраивался,у меня на собеседовании спросили как с базой работать и что я писал вообще(нормально да??? |
| Автор: PashaPash 11.9.2009, 16:38 | ||
| ДобренькийПапаша, fromrus, мы набираем в основном web-ориентированных Важно не ответил/не ответил, а до какого уровня ответил. Если на вопрос про сборщик мусора ответил "да, есть такой, мусор собирает" - не ответил. Если примерно рассказал, как именно собирает - как минимум читал что-то. Если знает как лечить OutOfMemoryException-ы и может сходу сказать сколько всего managed-куч в дотнете - у него есть не только знания, но и мозги чтобы эти знания получить. На самом деле страшно много людей даже через эти 3 вопроса не проходят, и не доходят до паттернов и прочего. LEFT JOIN - отсев на хоть какое-то знание SQL. Способы асинхронного вызова есть даже в книжке по сдаче на MCTS. Еще спрашиваем знание базовых паттернов, умение писать тесты и прочее, но это неосновные вопросы.
Я устроился на свою текущюю работу, спросив arilou-а "это был вопрос про LEFT JOIN?" когда он запутался в формулировке |
| Автор: ДобренькийПапаша 11.9.2009, 17:15 |
| PashaPash, Перечислите, пожалста, базовые паттерны. И что значит "сколько всего управляемых куч в .NET???" |
| Автор: PashaPash 11.9.2009, 19:00 | ||
Базовые - субъективно - Singleton, Factory на уровне "как реализовать". IoC/DI, Query Object, Data Mapper, Metadata Mapping, Repository. Последние обычно не по названиям, а в виде "расскажите как был построен DAL на вашем последнем проекте". А управляемых куч - как минимум две. Но до этого уровня никто не добирается. Все обламываются на на "а как GC узнает, что объект больше не используется?" - все предпочитают работать с GC как с черным ящиком, из которого изредка выскакивают грабли :( |
| Автор: ДобренькийПапаша 11.9.2009, 19:18 | ||
Ведёт счётчик ссылок и если счётчик равен нулю, то удаляет, вроде так))) Ну окей. Всем спасибо. |
| Автор: PashaPash 11.9.2009, 19:50 | ||
неа, не угадал |
| Автор: Rohoss 11.9.2009, 20:00 | ||
Вроде так… Только счётчик ссылок это уже относится к COM. А GC проверяет участки занятой памяти, и смотрит, ссылаются ли на неё объекты. Добавлено через 10 минут и 41 секунду Одна из куч – это та, в которой находятся объекты, которые живут долго… Есть предположения, что чем дольше прожил объект, тем дольше он проживёт, а значит нет смысла его постоянно проверять. Добавлено через 12 минут и 30 секунд Типа разные поколения объектов. А разве может быть больше двух куч? Вроде как есть ещё какая – то куча для особо больших объектов? |
| Автор: PashaPash 11.9.2009, 20:18 |
| Rohoss, уже ближе. На самом деле GC просто пробегается от GC-корней - статических полей, локальных переменных, и т.д., и строит список используемых объектов. И потом перекладывает используемые объекты поплотнее. Что избавляет его от необходимости хранить статус каждого участка памяти. И потом в эту простую систему вписывается куча хаков для pinned-объектов, поддержки поколений, финализации и объектов больше 85000 байт :( А как оно на самом деле там внутри работает - никто не знает Кстати, на собеседованиях обычно спрашивают совсем не то, что на самом деле требуется от разработчика. |
| Автор: ДобренькийПапаша 13.9.2009, 18:57 | ||
Только что, прочитал у Троелсена, цитирую: "Вполне допустимо считать, управляемую динамическую память единым регионом в памяти". Да, там была речь про особо крупные объекты, к ним сборщик обращается реже. Но это не меняет дела. Управляемая куча, по сути, одна... Я, собственно, всегда так думал))) |
| Автор: jonie 13.9.2009, 22:41 |
| http://www.dotnetfunda.com/interview/showcatquestion.aspx?category=34 |
| Автор: PashaPash 14.9.2009, 13:43 | ||
Вполне допустимо на уровне "прочитал Троелсона". На самом деле есть особенности для многопроцессорных систем - там по одной физической куче на процессор. И для больших объектов - фрагментация LoH, она же "почему упало с OutOfMemory, когда памяти еще много". |