LINQ: язык интегрированных запросов в C# 2010 для профессионалов

Благодаря этой книге, вы изучите следующие вопросы:
Как эффективно задействовать все новые возможности языка C# 2010, связанные с LINQ, включая методы расширений, лямбда-выражения, анонимные типы данных и частичные методы.
Как использовать LINQ to Objects для запроса информации из коллекций данных, расположенных в памяти, таких как массивы, ArrayList и списки.

СКАЧАТЬ

 

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Искусство автономного тестирования с примерами на С#

Во втором издании книги «Искусство автономного тестирования»
автор шаг за шагом проведет вас по пути от первого простенького
автономного теста до создания полного комплекта тестов – понятных,
удобных для сопровождения и заслуживающих доверия. Вы и не за-
метите, как перейдете к более сложным вопросам – заглушкам и под-
ставкам – и попутно научитесь работать с изолирующими каркасами
типа Moq, FakeItEasy или Typemock Isolator. Вы узнаете о паттернах
тестирования и организации тестов, о том, как проводить рефакторинг
приложений и тестировать «нетестопригодный» код. Не забыл автор
и об интеграционном тестировании и тестировании работы с базами
данных.

СКАЧАТЬ

Список вопросов на собеседование c# 2

TOP Вопросы на засыпку

10. «Какие типы можно использовать в предложении foreach?»
Массивы, коллекции. Классы в которых реализован интерфейс System.Collections.IEnumerable.
9. «В чем различие между классом и структурой?» –
Для С# классы System.Object, System.Exception, System.File-Stream и System.Random — это ссылочные типы (память выделяется из упр. кучи). В свою очередь размерные типы в документации называются структурами (structure) и перечислениями (enumeration). Например, структуры System.In132, System.Boolean, System.Decimal, System.TimeSpan и перечисления System.DayOfWeek, System.10.FileAttributes и System.Drawing.FontStyle являются размерными типами (хранятся обычно в стеке потока, но могут быть встроены в ссылочные типы).

Читать далее «Список вопросов на собеседование c# 2»

Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих

Алгоритмы – это всего лишь пошаговые алгоритмы решения задач, и большинство таких адач уже
были кем-то решены, протестированы и проверены. Можно, конечно, погрузиться в глубокую философию
гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями,
но хотите ли вы тратить на это свое время? Огкройте великолепно иллюстрированную книгу, и вы сразу
поймете, что алгоритмы – это просто. А rрокать алгоритмы – это веселое и увлекательное анятие.

 

 

СКАЧАТЬ

Таненбаум Э. Компьютерные сети. 5-е издание

[vc_row][vc_column][vc_column_text]Перед вами — очередное, пятое издание самой авторитетной книги по современным сетевым
технологиям, написанной признанным экспертом в этой области Эндрю Таненбаумом в соавторстве
с профессором Вашингтонского университета Дэвидом Уэзероллом. Читать далее «Таненбаум Э. Компьютерные сети. 5-е издание»

Долго загружается Windows 10. Ноутбук.

Проблема может возникнуть из за видеокарты AMD для ее решения нужно отключить ULPS.

Шаг 1 Перейдите в реестр, наберите “Regedit” в окне поиска.

Шаг 2 Перейдите на вкладку “Правка” и нажмите “Найти”.

 

Шаг 3 Введите “EnableULPS”, а затем нажмите Найти.

Шаг 4 Вы должны увидеть “EnableULPS”. Дважды щелкните на нем.

Шаг 5 Измените значение  “1” на “0”

Отчет ULPS теперь отключена.

Примечание: Если вы хотите включить ULPS, просто измените значение обратно на “1”.

ДЖОН СКИТ C# ДЛЯ ПРОФЕССИОНАЛОВ ТОНКОСТИ ПРОГРАММИРОВАНИЯ

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

С# для профессионалов: тонкости программирования, 3-е изд. : Пер. с англ. — М. : ООО
“И.Д. Вильямс”, 2014. – 608 с. : ил. — Парал. тит. англ.
ISBN 978-5-8459-1909-0 (рус)

СКАЧАТЬ

Список вопросов C# Собеседование

 

  1. Что такое кластеризованный и некластеризованный индекс? Когда какое надо использовать?
  2. Что такое Join? Чем он отличается от Left Join, Right Join? Inner Join? Outer Join?
  3. Есть три таблицы: CUSTOMERS (ID, NAME, MANAGER_ID); MANAGERS (ID, NAME); ORDERS (ID, DATE, AMOUNT, CUSTOMER_ID). Написать запрос, который выведет имена Customers и их SalesManagers, которые сделали покупок на общую сумму больше 10000 с 01.01.2013.
  4. Делаем электронный справочник по книгам. Ищем:
    А) В каком магазине купить данную книгу.
    Б) В каких магазинах купить книги этого автора (авторов).
    В) Кто автор книги.
    Г) Какие книги написал автор.
    Нарисовать БД. Написать запрос Б. (Не забыть учесть, что у одной книжки — может быть несколько авторов)
  5. Что такое агрегирующие функции? Операторы Group By, Having? Приведите примеры их использования.
  6. Table «PC» (id, cpu(MHz), memory(Mb), hdd(Gb))
    1) Тактовые частоты CPU тех компьютеров, у которых объем памяти 3000 Мб. Вывод: id, cpu, memory.
    2) Минимальный объём жесткого диска, установленного в компьютере на складе. Вывод: hdd.
    3) Количество компьютеров с минимальным объемом жесткого диска, доступного на складе. Вывод: count, hdd.
  7. Дана следующая структура базы данных в MS SQL: Departments (Id, Name), Employees(Id, DepartmentId, Name, Salary).

    Необходимо:

    • Написать запрос получения имени одного сотрудника, имеющего максимальную зарплату в компании, и название его отдела.
    • Получить список отделов, средняя зарплата в которых больше 1000$.

  8. Ado Net – что за технология? и как и когда она используется?
  9. Что такое Entity Framework? Какие подходы проектирования БД знаете? Расскажите про Code First.

Конечно вопросы про ООП.

  1. Назовите и объясните основные парадигмы ООП.
  2. Назовите преимущества объектно-ориентированного подхода к программированию перед структурным программированием.
  3. Перечислите недостатки ООП парадигмы.
  4. Что такое раннее и позднее связывание?
  5. Перечислите модификаторы доступа и когда они используются?

Вопросы про паттерны проектирования.

  1. Расскажите про SOLID и примеры его использования.
  2. В чем отличие паттерна «Стратегия» от паттерна «Шаблонный метод»?
  3. Паттерн Адаптер и его применение.
  4. Расскажите про паттерн «Фасад».

Ну и конечно, огромное количество вопросов по С#.

  1. using (SomeClass sc = new SomeClass()){}
    Что делает данная конструкция?
  2. int i = 1;
    Console.WriteLine(«i = {0}», ++i);
    Что выведет данный код?
  3. Различие класса и структуры? И что будет если их передать в метод в виде параметров?
  4. Задача: есть нули и единицы в массиве. Надо для каждого нуля посчитать сколько единиц правее него и вывести сумму таких чисел. Сделать за один проход.
  5. Различие абстрактного класса и интерфейса? Можно ли отказаться от интерфейсов и использовать только абстрактный класс, ведь мы можем в абстрактном классе просто указать сигнатуры методов?
  6. Что такое интернирование строк?
  7. Расскажите про интерфейс IEnumerable? Зачем он используется?
  8. Когда мы можем пройтись по собственной коллекции foreach- ом? Что для этого надо сделать и почему? (Рассказать про утиную типизацию)
  9. Различие между IEnumerable and IQueryable?
  10. Как устроен Dictionary внутри? Как борются с коллизиями?
  11. Есть обычный пользовательский класс. Нужно его использовать как ключ в Dictionary. Что для этого надо поменять (добавить) в классе?
  12. Какова алгоритмическая сложность для операций чтения и записи для коллекции Dictionary?
  13. В чем различие между ключевыми словами «ref» и «out»?
  14. Расскажите, как работает try, catch, finally? Когда вызывается каждый?
  15. Чем отличаются друг от друга классы String и StringBuilder? Зачем нужно такое разделение?
  16. Какие отличие между значимыми и ссылочными типами? Зачем придумали такое разделение? Нельзя было придумать только либо значимые либо ссылочные?
  17. В чем отличие использования Finalize и Dispose?
  18. Что такое управляемый код и CLR? Основные требования к управляемому коду?
  19. Что такое assembly manifest (манифест сборки)?
  20. Что такое Boxing и Unboxing?
  21. В чем суть полиморфизма?
  22. Чем отличается event от delegate?
  23. Может ли класс реализовать два интерфейса, у которых объявлены одинаковые методы? Если да, то каким образом?
  24. Что такое абстрактный класс? В каком случае вы обязаны объявить класс абстрактным?
  25. В чем разница инкапсуляции и сокрытия?
  26. Что такое частные и общие сборки?
  27. Что такое .Net Framework?
  28. LINQ lazy loading, eager loading в чем разница?
  29. Можно ли запретить наследование от своего собственного класса?
  30. Определение паттерна синглтон.
  31. Что такое интеграционные тесты и unit-тесты?
  32. Что такое MVC, MVVM, WEB API?
  33. Каким образом можно присвоить значения полям, которые помечены ключевым словом readonly?
  34. Когда вызывается статический конструктор класса?
  35. Чем отличаются константы и поля, доступные только для чтения?
  36. Чем отличаются константы и поля, доступные только для чтения?
  37. Разница между асинхронностью и параллельностью?
  38. У вас есть сайт, вы заметили что он долго отвечает, как вы будете искать причину?

Ну и как же без логических задач:

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

    Ваша задача при помощи управления светом в вагонах и перемещения по ним узнать сколько в этом кольце вагонов.

  2. У вас есть 100 монет по одному рублю. Они все лежат на столе. У вас также есть два носка. Вам нужно распределить все монеты по 2 носкам, так чтобы в одной из них было в два раза больше монет, чем во второй, при этом:
    • не разрешается ломать их (они должны остаться целыми);
    • надо использовать все 100 монет (прятать нельзя);
    • они все одинаковые (по весу, по виду).

Также в одной компании дали готовый пользовательский класс. Мне нужно было найти логические и синтаксические ошибки. К сожалению, это задание мне не дали с собой взять после собеседования и из-за этого не могу опубликовать, но я помню, что там можно было докопаться практически к каждой строчке!

В другой компании, попросили спроектировать базу данных для приложения вроде «Инстаграмм». Потом попросили написать сигнатуру метода «Upload», который отправляет фото на сервер.

Прозвучал также вопрос что, если бы руководство изменило вот «это», то как бы вы «переспроектировали» эту базу. Ну так как у меня нет опыта в проектировании, мне пришлось на ходу думать и генерировать идеи, как оказалось, я прошел это собеседование).

Другая компания решила дать интересную задачу. Я думаю, что это часть задачи, которую решают внутри компании. Решили проверить, как решают другие. Вот как она звучит:

Реализовать программу анализа текста. Входной текст произвольный и может быть большим по объему. Количество и содержание метрик определяется самостоятельно. Требования к алгоритму: Программа должна быть расширяема к изменению списку метрик. Масштабируемость. На что обращаем внимание и что анализируем:

  1. Какие метрики предложены кандидатом и их смысл — аналитическое мышление
  2. SOLID анализ предложенного решения — навыки проектирования
  3. Какие шаблоны применены для масштабируемости и расширяемости — архитектурные скилы кандидата. повод при общении затронуть более глубоко вопрос проектирования
  4. Какие синтаксические конструкции языка применены и какая технология используется — использование сахара и средств упрощения кода
  5. Написаны ли unit тесты — что и как тестирует, какие фреймворки и стили тестов использует
  6. Сравнение с когнитивными сервисами — знание трендов применения технологий в реальных проектах
  7. Время, сложность решения, активность дополнительных вопросов выполнения — заинтересованность к решаемым задача/получению оффера

Также хочется отметить тот факт, что в своем резюме я указал, что занимаюсь олимпиадным программированием и это очень положительно повлияло на ход многих собеседований. Меня просили рассказать, что это такое. Меня удивило, что большинство интервьюверов не знали про такое движение в программировании. Те, кто знали, просили меня реализовать какие-нибудь сортировки (пузырьковая, вставками, qsort), задачи с олимпиадного программирования. Я считаю, что алгоритмы и структуры данных дают огромный плюс в жизни программиста и теперь как оказалось еще и при трудоустройстве.

Также положительным фактом оказалось преподавание информатики в ВЦНМО. Расспрашивали каково преподавать и трудно ли объяснять сложные вещи на пальцах.

Для меня было неожиданностью, что меня пригласили работать практически все компании (80%), в которых я проходил собеседование. Может это чувство из-за моей низкой самооценки?! После прохождения собеседований, с уверенностью могу сказать, что это несложно, а даже легко и интересно. Так что друзья, не бойтесь собеседований и крупных компаний, будьте самоуверенными, верьте в свои силы и все будет на 5!

Для тех, кто будет готовится или уже готовится к собеседованиям, ниже перечислю ссылки, которые помогут вам (по моему мнению) подготовится к собеседованию на должность Junior C# Developer, .Net Developer.

  1. Здесь собран большой материал по C#, А также есть специальный раздел «Вопросы к собеседованию». Рекомендую пока пройти теоретический материал, а потом попробовать тесты. Тесты находятся здесь (https://metanit.com/sharp/interview/).
  2. Сайт направлен именно на собеседования по разным направлениям разработки, где вы также сможете найти и C#. Там есть очень много «острых» и хитрых вопросов.
  3. CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C#. Джефри Рихтер. Эта классическая книга по освоению .Net. Там очень хорошо написано про CLR, про сборки и манифесты. Книга написано на довольно простом языке.
  4. Здесь
    довольно хорошо и просто описывается язык запросов SQL.
  5. Здесь также можете пройти туториал по SQL. В конце будет тест, который очень легко сдать(опять- таки, это лично субъективное мнение).
  6. Здесь собраны наиболее интересные логические задачи с ответами.
  7. Здесь собраны задачи по C#, которые часто бывают на собеседованиях
  8. Здесь собраны задачи по C#, которые часто бывают на собеседованиях
  9. Здесь собраны задачи по C#, которые часто бывают на собеседованиях