Совершенный код. С. Макконелл

Более 10 лет первое издание этой книги считалось одним из лучших практических руководств по программированию. Сейчас эта книга полностью обновлена с учетом современных тенденций и технологий и дополнена сотнями новых примеров, ил-люстрирующих искусство и науку программирования. Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО — с другой, автор синтезировал из самых эффективных методик и наиболее эффектив-ных принципов ясное прагматичное руководство. Каков бы ни был ваш профессио-нальный уровень, с какими бы средствами разработками вы ни работали, какова бы ни была сложность вашего проекта, в этой книге вы найдете нужную информацию, она заставит вас размышлять и поможет создать совершенный код.

СКАЧАТЬ

Разработка требований к программному обеспечению

Вигерс Карл, Битти Джой Разработка требований к программному обеспечению. 3-е изд., дополненное / Пер. с англ. — М. : Издательство «Русская редакция» ; СПб. : БХВ-Петербург, 2014. — 736 стр. : ил. ISBN 978-5-7502-0433-5 («Русская редакция») ISBN 978-5-9775-3348-5 («БХВ-Петербург»)

Основная аудитория — бизнес-аналитики и разработчики, а также дизайне- ры, программисты, тестировщики и другие члены команды, задача которых по- нять и удовлетворить чаяния клиентов, а также маркетологи, менеджеры по про- дуктам и менеджеры проекта, которые должны проникнуться «духом» и особен- ностями продукта, чтобы сделать его в полной мере конкурентоспособным. Книга состоит из 32 глав, 3 приложений и словаря терминов.

СКАЧАТЬ

ASP.NET Core

 

Cтаньте профи в революционной технологии Microsoft — ASP.NET Core — и откройте для себя весь невероятный потенциал MVC, Docker, Azure Web Apps, Visual Studio, Visual Studio Code, C#, JavaScript,TypeScript и даже Entity Framework!

 

Чамберс Джеймс, Пэкетт Дэвид, Тиммс СаймонЧ-17 ASP.NET Core. Разработка приложений. — СПб.: Питер, 2018. — 464 с.: ил. — (Серия «Для профессионалов»).ISBN 978-5-496-03071-7

 

СКАЧАТЬ

С#, ASP.NET, JS Вопросы на собеседование

Жизненный цикл запроса:

Подробное описание на стековерфлоу

Очень подробная схема в пдф (от майкрософта)

Вопросы по ООП

Полиморфизм — это возможность объектов с одинаковой спецификацией иметь различную реализацию. Это когда вы создаете абстрактный класс Dog с виртуальным либо абстрактным методом Bark что позволяет задать, заменить либо добавить код метода в пронаследованном класе. При этом пронаследованный клас останется экземпляром Dog и будет иметь тот же интерфейс (метод Bark с такой-же сигнатурой что и в базвом класе).

На практике полиморфизм почти всегда связан с наследованием: не пронаследовав класс — не получишь полиморфизма.

Полиморфизм (на понятном языке, опуская нюансы) это параметризация, в языках программирования — это параметризация методов. То есть, вы можете заменять (параметризировать) код в методах и свойствах, не изменяя интерфейса (сигнатуры) функции.

В свою очередь наследование это параметризация класов.
В C# и CLR разделяют два типа параметризации класов
1) С фиксированым базовым класом (обычное наследование классов)
2) С нефиксированным базовым класом (реализация интерфейсов) по средствам этого типа параметризации происходит множественное наследование в CLR

Общие советы и ссылки

1. К собеседованию нужно готовиться всегда. Для этого нужно использовать два подхода:
— долгосрочный — читать книги, учебные проекты
— краткосрочный — подготовка непосредственно перед собеседованием по основным вопросам2. В 70% компаний на собеседовании спрашивают: «Что вы знаете о нашей компании?». Есть смысл погуглить, чем занимается компания.

Общие советы для любого собеседования

Общие советы для веб-разработчика (на английском)

Много хороших вопросов по дотнету и смежным технологиям

Тесты по ASP.NET MVC

Особенности строк в .NET
Размер строки примерно = 20 + length*2
var s = «something»; s[5] = ‘x’; // exception
Строки являются настоящими ссылочными типами, то есть они всегда располагаются в куче.
Интернирование строк — это механизм, при котором одинаковые литералы представляют собой один объект в памяти.
Строки — неизменяемы (а значит и потокобезопасны)
Строки переопределяют Object.Equals

Вопросы по JavaScript и C#, которые неожиданно вызывают затруднения на собеседованиях
JS: объяснение нюансов falsy/truthy: +!!{} == 1
JS: приведение типов: 2 + 3 + «4» = 54
C#: Чтобы интернирование строк было возможно, строка должна быть неизменной (immutable). Преимущества неизменности строк: потокобезопасность, возможность использования строк в качестве ключей в словарях и хэш-таблицах.

Хорошие привычки C# = плохие привычки JavaScript
1) «0» == true, 0 == false
2) Вместо проверки if (!string.IsNullOrEmpty(someString)) пишется if (someString) — выполнится проверка на значения undefined, null, и «»
3) someString = someString || «Default value» — если первое значение falsy, то присвоится второе
4) === делает проверку на тип
5) Используйте оператор new только когда Вы создаете объект и Вы хотите, чтобы он использовал свой конструктор.
6) Используйте for…in с проверкой hasOwnProperty() для объектов, чтобы исключить из результата неожиданные объекты наследованные от прототипа.
7) Область видимости определяется не фигурными скобками, а функцией. Объявления переменных поднимаются в начало функции (variable hoisting)

Exam Ref 70-483: Programming in C#

The Microsoft 70-483 exam focuses on a broad range of topics that you can use in your work
as a C# developer. This book helps you understand both the basic and the more advanced
areas of the C# language. It shows you how to use the C# language to create powerful software
applications. This book also shows you how to use the new features that were added to the
C# language, such as support for asynchronous code. This book is aimed at developers who
have some experience with C# but want to deepen their knowledge and make sure they are
ready for the exam. To use the examples in this book, you should be familiar with using Visual
Studio to create a basic Console Application.

DOWNLOAD

Прогаммист-прагматик. Путь от подмастерья к мастеру

 

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

СКАЧАТЬ

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»