пятница, 9 октября 2015 г.

Вопросы для интервью .Net developer

Моя личная подборка вопросов для проведения интервью на позицию .Net developer.

Общие вопросы
1. Что такое делегат? Чем отличается событие от делегата? Что можно включить в интерфейс (делегат, событие)? Можно ли вызвать эвент из другого класса? Почему нет?
2. Что из себя представляет лямбда функция?
3. Какие средства синхронизации потоков в .Net вам известно? Что такое Monitor? (какие методы кроме Enter и Exit там есть).
4. Что такое замыкание в .Net?
5. Что такое volatile?
6. Что такое кластерный и не кластерный индекс?

Предварительное интервью
Этот список вопросов можно задавать по телефону или скайпу при предварительном интервью. Чтобы пройти далее, нужно ответить правильно на 7 из 10.
1. Массив целых чисел в .NET Framework является типом значения (value type) или ссылочным типом (reference type)?
2. Каково основное предназначение поколений сборщика мусора?
3. При помощи какого механизма в .NET Framework можно получить список статических свойств некоторого произвольного класса во время выполнения программы?
4. WinForms: как производить обновление пользовательского интерфейса из другого потока?
5. Синхронизация: перечислите известные вам классы – примитивы синхронизации в .NET, кроме класса Monitor.
6. Назовите два самых распространенных HTTP-метода.
7. ASP.NET MVC: где настраивается маршрутизация в ASP.NET MVC?
8. Шаблоны ООП: любой пример реализации потокобезопасного Singleton.
9. Шаблоны разработки приложений: роли компонентов Model, View и Controller в шаблоне MVC, либо MVP, если он вам ближе. MVVM.
10. Модульное тестирование: назовите критерии хорошего модульного теста.

Задачки
1. Человек проходит один километр на юг, затем поворачивает налево и идет один километр на восток, затем поворачивает еще раз налево, идет километр на север и возвращается в исходную точку.
2. Найти середину списка в один проход.
3. How do you find out if a number is a power of 2?
4. Can you name an example of a recursive solution that you created?
5. Which is faster: finding an item in a hashtable or in a sorted list?
6. How would you write a function to reverse a string? And can you do that without a temporary string?
7. In an array with integers between 1 and 1,000,000 one value is in the array twice. How do you determine which one?
8. На поверхности пруда плавает одна кувшинка, которая постоянно делится и разрастается. Таким образом, каждый день площадь, которую занимают кувшинки, увеличивается в два раза. Через месяц (30 дней) покрытой оказывается вся поверхность пруда. За сколько времени покроется кувшинками вся поверхность пруда, если изначально на поверхности будут плавать две кувшинки?
9. Дан массив целых чисел. Нужно найти все пары чисел, которые в сумме дают 100.

Вопросы по .Net
1. Что такое .Net Framework?
1.1. Что такое CLR?
1.2. Что значит managed code?
2. Может ли класс реализовать два интерфейса, у которых объявлены одинаковые методы? Каким образом?
3. Чем отличается event от delegate?
4. В чем различие между классом и структурой?
5. Что такое частные и общие сборки?
6. Чем managed code отличается от unmanaged code?
7. Что означает модификатор virtual?
8. Какие типы можно использовать в предложении foreach?
9. Что из себя представляет лямбда функция?
10. Как устроены локи в Concurrent dictionaries. Что именно там лочится? не вся же коллекция.
11. Как реализовать SortedList?
12. Сложность поиска в Hashtable? Всегда ли это O(1)? Как бороться с коллизиями?
13. Всегда ли в бинарном дереве сложность поиска log2(n)?
14. Что такое сбалансированные деревья, алгоритмы балансировки?
15. Что такое замыкание в .Net?
16. Что такое volatile?
17. Что такое делегат? Чем отличается событие от делегата? Что можно включить в интерфейс (делегат, событие)? Можно ли вызвать евент из другого класса? Почему нет?
18. Отличие деструктора, финализатора и Dispose? Можно ли переопределить финализатор?
19. Object a = 10; Object b = 10; За счет чего a.Equals(b) вернет true?
20. Что вернет GetHashCode() для сложного типа?
20. Метод принимает два счета, и переводит деньги с одного на другой. Как сделать метод потокобезопасным?
21. Что такое Monitor? (какие методы кроме Enter и Exit там есть).
22. Prism, Unity, MEF, EventAggregator. Взаимодействие между модулями.
23. Чем отличаются сериализаторы
24. Интернирование в .Net?
25. Что из себя представляет ссылка на функцию в .Net
26. Please write thread-safe event implementation. Also each event hander should be independent from possible exceptions in others
private object myEventLock = new object();
private MyEventHandler myEvent;
public MyEventHandler MyEvent
{
add { lock (this.myEventLock) { this.myEvent += value; } }
remove { lock (this.myEventLock) { this.myEvent -= value; } }
}

protected virtual OnMyEvent(MyEventArgs args)
{
MyEventHandler localMyEvent;
lock (this.myEventLock) { localMyEvent = this.myEvent; }
if (localMyEvent != null) { localMyEvent(this, args); }
}
27. Max threads number in ThreadsPool (для разных версий .net 2.0, 3.5, 4.0)
28. Используете ли вы Linq. Преимущества и недостатки. Почему Linq реализован в виде extensions? Вместо это можно было бы сделать новый интерфейс ILinqList и положить всю реализацию внутрь класса List.
29. Что такое live lock?
30. Почему не компилируется Square.Point.X = 123;
31. Модели асинхронного программирования
32. Сколько разрядов в integer? Как хранится знак минус? Диапазон значений integer?
33. Где в памяти хранятся статические поля класса?
34. Что такое дженерики в .Net? Чем отличаются шаблоны в C++ от дженериков в .Net и дженериков в джаве?

Вопросы по WPF
1. Нужно чтобы цвет TextBlock устанавливался в зависимости от того, что юзер ввел в данный TextBlock. Как будет выглядеть байндинг?
2. Что такое Dispatcher. Он всегда один?
3. Чем отличается UIElement от FrameworkElement? Что есть в FrameworkElement, чего нет в UIElement?
4. Как отражать изменения в коллекции на UI? ObservableCollection и INotifyPropertyChanged
5. Что такое DependencyProperty?
6. Что такое Markup Extension?
7. Визуальное и логическое дерево. Как их XAML получить доступ к элементам визуального дерева?
8. Валидация отдельно взятого поля. Валидация всей сущности в целом. Как легко сделать валидацию в DX контролах.
9. Свойства DataSource и Path в байндинге? Когда их использовать? RelativeSource?
10. Какие конверторы вы использовали в своих последних проектах? Какие behaviours?
11. Есть tunelling events, есть bubling events. Что из себя представляет евент ButtonClick. Есть панель, на ней кнопка, если написать e.Handled = true в preview event для панели, как будет выглядеть последовательность евентов, где мы увидим ButtonClick?
12. Как диагностировать проблему с WPF, если на одном из компов проявляются тормоза и глюки в отрисовке.
13. Если в binding указали несуществующее поле, как об этом узнать?
14. ContentControl vs ContentPresenter
15. Разница между static resource и dynamic resource?
16. Разница между Visual Tree и Logical Tree. Как обращаться к Visual Tree?
17. Разница между CustomControl и UserControl?

Вопросы по WCF
1. Какие есть виды байндингом?
2. Можно ли на IIS захостить wcf-сервис с TCP байндингом? (проблемы с доустпом к проксям, tcp-байндинг предоставляет дуплексный обмен данных, а это всегда режится админами).
3. Эволюция WCF. REST full services.
4. ABC? Address, Binding, Contract

Вопросы по T-SQL
-based-
1. Что такое нормализация БД?
2. Что такое кластерный и некластерный индекс?
3. Какие типы соединений (join) таблиц существуют? В чем их разница?
4. Что такое SQL курсор?
5. Что такое транзакция?
6. Что такое блокировка?
7. Что такое deadlock?
8. Что такое триггер? (Какие типы триггеров вы знаете?)
9. В чем разница между WHERE и HAVING?
10. Функции ранжирования что это и какие существуют?
11. Что такое представление (view) и для чего оно применяется?
12. Что делает SQL операция MERGE?
-advanced-
1. What does the SQL Server Agent Windows service do?
2. What is a query execution plan?
3. What is a CTE?
4. What does the NOLOCK query hint do? Isolation levels.
5. What is the difference between truncate and delete?
6. What are DBCC commands?
7. What are temp tables? What is the difference between global and local temp tables?
8. Как вернуть в запросе значения из N строк, объединенных в одну строку? How to return XML in SQL Server?

Вопросы по ASP.NET
1. Что такое async controller?
2. Что такое HttpHandler и HttpModule?
3. Где живет сессия? А если одновременно используется несколько серверов?
4. Как в java script создать объект класса через new?
5. Что из себя представляет концепция Module в java script?
6. Как в MVC контроллер передать id, чтобы он сразу присвоился свойству в контроллере.
7. Наследование в JavaScript.
8. В чем difference between ASP.Net WebForms & MVC briefly
9. MVC паттерн. Как реализован паттерн в ASP.Net MVC
10. url routing в MVC and WebForms
11. Razor & classic ASP.Net server side notation
12. ASP.Net WebForms page life cycle. Для чего он нужен?
13. Server controls of WebForms & html helpers in MVC. Когда использовать?
14. ViewState и его проблемы
15. Session mechanism in ASP.Net. Типы, поддержка в коде
16. WebForms — HttpRequest/HttpResponse. Когда использовать вместо ServerControls и каким образом
17. Обработка ошибок, подходы WebForms & MVC
18. Авторизация и персонализация
19. HttpHandlers, взаимодействие с JS кодом и сторонними сервисами
html/css:
20. чем div отличается от span
21. когда требуется использовать table разметку а не div и наоборот
22. коротенько про Html5

Комментариев нет:

Отправить комментарий