Вопросы для собеседования.

Разговоры на любые темы
Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

Пообщался на очередном собеседовании. Было тяжко. ИМХО не очень хорошо когда спрашивают чистую теорию, ну и плюс на предложение - "я могу вам примерами кода объяснить чем различается" говорят - "Нет, нам нужно именно чтобы вы это на зубок знали". Ну и вопросы задавались такие, который каждый можно по часу рассказывать. Товарищи оставили странное впечатление.
  • Отличие Finalize от Dispose
  • Есть ли случаи, когда необходимы static классы?
  • IoC и DI контейнер
  • Сходства и различия между классами HashSet и Dictionary
  • Рефлексия в C#
  • Generic–коллекции и интерфейсы в C#
  • Различия между class и stuct в языке C#?
  • Множественное наследование в C#
  • Утечка памяти в .NET
  • Деструктор в C#
  • Потокобезопасный синглтон
  • Необязательные и именованные параметры
Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

Задача: Пусть есть БД с 2 таблицами
В таблице 1 находится информация по номерам:
  • ID - идентификатор строки таблицы,
  • номер
  • цена за час
  • его описание
В таблицу 2 заносятся операции по бронированию:
  • ссылка на ID номера
  • дата начала бронирование
  • дата окончания бронирования
Реализовать автоматический расчёт стоимости при создании брони.

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

Сторонние библиотеки использовать разрешается. БД можно использовать любую.

Доп. функции приветствуются, но не обязательно - если укладываетесь в срок, то можно, если нет, то лучше не надо. При неработающем основном функционале, смотреться другие вещи не будут!

Срок - 3 дня. Если будут уточняющие вопросы - задавайте в почту.
Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

Что выведет следующий код -

Код: Выделить всё

	var list = new List<int> {1, 2, 3};
	 
	var x1 = new { Items = ((IEnumerable<int>)list).GetEnumerator() };
	while (x1.Items.MoveNext())
	{
	    Console.WriteLine(x1.Items.Current);
	}
	            
	Console.ReadLine();
	 
	var x2 = new { Items = list.GetEnumerator() };
	while (x2.Items.MoveNext())
	{
	    Console.WriteLine(x2.Items.Current);
	}
Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

Что выведет код. Объясните почему.
class Program
{
static String location;
static DateTime time;

static void Main() {
Console.WriteLine(location == null ? "location is null" : location);
Console.WriteLine(time == null ? "time is null" : time.ToString());
}
}
class Program {
private static string result;

static void Main() {
SaySomething();
Console.WriteLine(result);
}

static async Task<string> SaySomething() {
await Task.Delay(5);
result = "Hello world!";
return “Something”;
}
}
Что будет если await Task.Delay(5); заменить на Thread.Sleep(5)? Ответ изменится? Объясните почему.
Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

У меня сегодня было собеседование. На программиста C#. Но вопросов 90% было по гиту. Такое ощущение, что народ в той конторе только и делает что коммитит и мерджит.
Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

Необходимо реализовать алгоритм решения задачи «Как из мухи сделать слона». Реализацию
необходимо предоставить в виде исходного кода консольного приложения. Приложение
необходимо реализовать на языке C# или Java под одну из операционных систем Linux или
Windows. Реализация приложения должна проходить в соответствии c технологией
разработки TDD. Стиль написания кода должен соответствовать Camel notation, код логик и
тестов должен быть качественно закомментирован. Любые оптимизации решения считаются
преимуществом. В пояснительной записке к решению необходимо указать, какому шаблону
проектирования оно соответствует.

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

На вход в программу подается:
1. Путь к текстовому файлу, в котором указано начальное и конечное слово. На первой
строке указано начальное слово, на второй строке конечное
2. Путь к файлу, который содержит словарь. Слова в словаре указаны по одному на каждой
строке. В словаре слова могут быть разной длины.
На выходе программа должна вывести в консоль путь от исходного слова к конечному, по
одному слову на одной строке.

Пример
Начальное слово: КОТ
Конечное слово: ТОН
Словарь:
КОТ
ТОН
НОТА
КОТЫ
РОТ
РОТА
ТОТ
Решение
КОТ
ТОТ
ТОН
Киберпанк не умер. Он просто наступил.

Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

Палиндром — это число, буквосочетание, слово или текст, одинаково читающееся в обоих направлениях. Разрешаются корректировки к прописным буквам, пунктуации и пробелам. Некоторые примеры на английском: “A man, a plan, a canal, Panama!”, “Amor, Roma”, “race car”, “stack cats”, “step on no pets”, “taco cat”, “put it up”, “Was it a car or a cat I saw?” и “No ‘x’ in Nixon”.

Напишите самую эффективную функцию, какую сможете найти, чтобы определить, является ли данная строка палиндромом.

Ваша функция должна принимать строку как параметр и возвращать булево значение (true, если строка является палиндромом, и false, если не является).

Предполагайте, что этот код будет поставлен в реальную систему на рабочем сервере, и пишите соответственно с этим.
Киберпанк не умер. Он просто наступил.


Аватара пользователя
arxont
Сообщения: 3948
Зарегистрирован: Пт авг 31, 2012 11:29 pm

Re: Вопросы для собеседования.

Сообщение arxont »

http://ivinsky.livejournal.com/3266.html - пачка вопросов с ответами
http://denisioru.livejournal.com/42594.html - пачка вопросов без ответов

ЗЫ: http://unril.blogspot.ru/2009/12/c.html - очень хорошо объясняется про структуры в шарпе, почти на любом тех интервью вопросы возникают.

ЗЫ2: Не вопросы - но что нужно знать https://gist.github.com/retran/3992461
Киберпанк не умер. Он просто наступил.

Ответить