Главная » Хабрахабр » Наша книжная полка С#-программиста. А что у вас?

Наша книжная полка С#-программиста. А что у вас?

Привет!

Обычно мы рекомендуем несколько источников, сопровождая их своими комментариями, почему именно они будут полезны. Будущие студенты Veeam Academy часто спрашивают нас о книгах, которые были бы полезны при подготовке к поступлению на наш курс по программированию на С#.

Поэтому все наши рекомендации для абитуриентов Академии Veeam служат лишь ориентиром, а не обязательным требованием. Однако большинство книг по программированию – это 1К+ страниц, и для их прочтения «от корки до корки» понадобится не один месяц и, возможно, даже не один год!

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

image
Ниже обзор следующих книг:

  1. Дж.Рихтер. CLR via C#
  2. Стивен С. Скиена. Алгоритмы. Руководство по разработке
  3. Joe Albahari. Threading in C#
  4. Ицик Бен-Ган. Microsoft SQL Server 2012. Основы T-SQL
  5. Дж. Скит. C# для профессионалов. Тонкости программирования
  6. Joe Duffy. Concurrent Programming on Windows
  7. Эрик Фримен и др. Head First. Паттерны проектирования
  8. Сергей Тепляков. Паттерны проектирования на платформе .NET

Дж.Рихтер. CLR via C#

Richter
Читать Рихтера – это как красить стены комнаты в белый цвет. Прочитал один раз – покрасил в один слой. При этом одного слоя обычно бывает мало – краска не всегда ложится ровно и получается не так ярко, как хотелось бы – так что лучше пройтись и закрепить еще одним слоем, а со временем подкрашивать уже отдельные места. В общем, чем больше слоев, тем белее комната!

И дело не в том, что с регулярной периодичностью выходят обновленные издания этой книги (что, кстати, говорит о ее большой популярности). Каждый раз, перечитывая Рихтера, открываешь для себя что-то новое. Даже читая одну и ту же версию, находишь интересные места благодаря глубине и широте, с которой подан материал.

Однако стоит заметить, что в ней довольно мало внимания уделено конкретному языку программирования — упор сделан на платформу . Многие называют эту книгу «библией» и «азбукой» для программистов на C#. Net и основные принципы ее работы.

Net разработчика. Поэтому ее все же нельзя считать учебником по C# (в общепринятом для новичков смысле), но можно сказать, что это обязательная книга для любого профессионального . Однако и в случае, когда вы еще только начинаете свой карьерный путь, Рихтер определенно поможет вам избежать множества ошибок и позволит писать программы более эффективно, так как вы будете глубже понимать платформу.

Итак, что внутри:

NET Framework, написанного простым языком и в дружелюбной манере признанным экспертом в области программирования Джеффри Рихтером.
Главы разбиты на связанные между собой подтемы, однако читать их можно (и даже нужно) не последовательно. Порядка 1000 страниц увлекательного текста про внутреннее устройство общеязыковой исполняющей среды (CLR) Microsoft . В каждой главе есть ссылки на другие главы, что делает удобным чтение по частям и позволит вам не засиживаться на темах, которые сейчас кажутся особенно сложными или неинтересными.

Net. Также на страницах этой книги вы найдете ответы на большую часть вопросов, которые любят задавать на собеседованиях по C# и .

Net эта книга в рекламе не нуждается. Для специалистов с опытом программирования под платформу . Для новичков очень рекомендуем не откладывать знакомство с ней в долгий ящик!

Стивен С. Скиена. Алгоритмы. Руководство по разработке

Skiena
Если у вас уже есть за спиной общий университетский курс по базовым алгоритмам и нужно освежить в памяти основные моменты за короткие сроки, то эта книга одна из лучших.

Книгу отличает очень хорошее и доступное изложение, она изобилует ссылками на современную литературу и полезными примерами. Это не учебник, а скорее руководство по эффективной разработке алгоритмов на практике. Особенно поучительны разделы «Истории из жизни», где автор рассказывает, как находить подходящие решения для непростых задач, с которыми он сталкивался в своей карьере.

Первая часть позволит быстро вспомнить основные моменты из курса по алгоритмам (сложность, типы структур данных, сортировка, работа с графами, комбинаторный поиск, динамическое программирование и др.). Книга состоит из двух частей. Здесь же вы получите практические рекомендации по разработке алгоритмов.

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

image

Joe Albahari. Threading in C#

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

Для общего знакомства с этой темой хорошо подойдет сайт Джо Албахари, где структурированно изложен материал из соответствующих глав по многопоточности в среде CLR из его книги
C# in a Nutshell.

Также рассматриваются потоковые возможности . Здесь вы найдете примеры работы с потоками: запуск, завершение, прерывание, блокировки, синхронизация, контексты синхронизации и др. NET (пулы потоков, асинхронные методы), Parallel LINQ, структуры SpinLock/SpinWait и многое другое.

Если захочется копнуть поглубже, то рекомендуем книгу Джо Даффи, обзор которой представлен ниже.

Ицик Бен-Ган. Microsoft SQL Server 2012. Основы T-SQL

Ben-Gan
Эта книга по основам T-SQL будет полезна как новичкам, так и опытным разрабочикам, давно знакомым с этим языком. Книгу отличает простота изложения. Помимо основных запросов SQL рассматриваются также табличные выражения, оконные функции и другие темы. Каждая глава сопровождается большим количеством примеров и упражнений для закрепления материала.

Автор не обходит стороной теорию, но не перегружает изложение теоремами и доказательствами.

Даже после многих лет работы с SQL вы непременно откроете для себя что-то новое, а также сможете освежить и упорядочить свои знания.

Дж. Скит. C# для профессионалов. Тонкости программирования.

Skit

Автор выбрал стиль, похожий на тот, что в свое время использовал основоположник языка С++ Бьерн Страуструп в своей работе «Дизайн и эволюция языка C++». У этой книги множество отличных отзывов, и это неслучайно. Все это в итоге формирует целостную картину восприятия языка C#. В этой книге рассказывается об основных принципах создания и развития языка C#, показана его эволюция от версии к версии, приводятся объяснения, почему языку была предоставлена та или иная возможность. Уделяется большое внимание теме LINQ. Книга также содержит советы и практический опыт автора.Тонкости языка раскрываются благодаря многочисленным примерам.

Скита совсем не похожа на книгу Рихтера, хотя здесь тоже подробно написано об особенностях внутренней реализации C#. Работа Дж. NET Framework. Нам видится, что в паре с Рихтером эта книга станет отличным пособием для глубокого изучения C# и .

Одну из рецензий можно почитать

здесь.

Joe Duffy. Concurrent Programming on Windows

Duffy

Это одна из наиболее фундаментальных книг по многопоточности в Windows. При чтении труда Джо Даффи можно «закипеть», но усилия того стоят. Однако любой разработчик, который хочет писать эффективный, отказоустойчивый и масштабируемый код (как управляемый — managed, так и неуправляемый — native) для Windows, не должен проходить мимо. Серьезная тема, приличный объем (более 1000 страниц) и глубокое погружение в низкоуровневые детали многопоточности могут оказаться не самым легким чтивом.

NET, модели памяти, lock-free и многое другое. Несмотря на то, что книга была издана десять лет назад, в ней раскрыты практически все темы, связанные с многопоточностью: базовые алгоритмы и примитивы синхронизации, асинхронные модели программирования в .

Net API, а также содержит примеры алгоритмов и структур данных, которые вы сможете использовать в своем коде. Книга сочетает теорию и лучшие практики с множеством примеров использования Win32 и .

Даффи поможет более глубоко понять, как работает Windows, CLR и . Помимо многопоточности, книга Дж. NET Framework, причем ответит и на вопрос «почему».

Для знакомства с TPL можно порекомендовать Стивена Клири. Примечание: Здесь не затрагивается тема Task Parallel Library (TPL), поскольку TPL в то время еще не была выпущена.

Эрик Фримен и др. Head First. Паттерны проектирования

Frimen

Она оформлена в довольно необычном (хотя традиционном для серии книг Head First) стиле – содержит огромное количество картинок, квестов и неформальных описаний, изобилует большим количеством примеров, при этом написана без воды и очень легко читается.
Одновременно с разбором наиболее популярных паттернов и соответствующих UML-диаграмм, здесь также по ходу повествования объясняются основные принципы ООП. Если вы еще не имеете большого опыта работы с паттернами проектирования, но хотели бы это исправить, а заодно закрепить свои знания в ООП, то эта книга может оказаться очень кстати.

Все они достаточно просты, и даже начинающий разработчик без труда сможет в них разобраться. Пусть вас не смущает, что примеры кода представлены на Java. Это как раз тот случай, когда C# разработчикам бывает полезно заглянуть в книгу по Java.

Сергей Тепляков. Паттерны проектирования на платформе .NET

Teplyakov

Однако на этом ее достоинства не заканчиваются. В отличие от остальной литературы, вошедшей в наш обзор, эта книга изначально написана на русском языке и поэтому лишена недостатков, присущих большинству современных переводов с английского.

Автор делится опытом, рассматривая как классические, так и более подходящие для платформы . Книга написана C# разработчиком для C# разработчиков, что подразумевает наличие базовых знаний по ООП с вашей стороны. При этом анализируются плюсы и минусы каждого способа. NET способы реализации каждого паттерна.

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

А как бы дополнили этот список Вы?


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

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Кеширование данных — Java Spring

Многократно вычитывая одни и те же данные, встает вопрос оптимизации, данные не меняются или редко меняются, это различные справочники и др. информация, т.е. функция получения данных по ключу — детерминирована. Тут наверно все понимают — нужен Кеш! Зачем всякий раз ...

Что умеет СХД — или старые песни о главном

Пару дней назад позвонили мне коллеги с вопросом — старая дисковая полка совсем умирает (у них старый еще IBM), чего делать? Дисков нет, поддержки нет, денег нет зовут Олег. Что покупать, куда бежать, как дальше жить? На хабре же, кроме ...