Denis Gladkikh
Russian   |  English

C# 4.0 in a Nutshell, Fourth Edition

C# in NutshellСтал я счастливым обладателем такой вот замечательной книжки C# IN A NUTSHELL 4th edition. Это уже четвертая редакция этой книги. На руках я видел когда-то третью редакцию, которую мы подарили на одном из мероприятий в ЯрГУ, и книжка 3-й редакции была на русском, а все русские книги печатают на (как бы по мягче выразиться) не очень качественной бумаге. В общем, признаюсь честно книгу до конца пока не дочитал, но уже на данном этапе у меня огромное удивление. Почему? Почему так много говорят о книге Рихтера - CLR via C# (англоязычная версия 3-й редакции у меня так же на полке ждет моего внимания), но так мало о книге C# IN A NUTSHELL, по крайней мере, это так в моем кругу. Про нее я слышал только один отзыв в одном из Подкастов Петербургской Группы Alt.Net, да и то как всегда в разрезе Рихтер - это круто, а C# IN A NUTSHELL - это хороший справочник. Мое мнение - Рихтер нужен для того, чтобы научиться разрабатывать на .NET. А вот чтобы научится программировать на C# то это вам к C# IN A NUTSHELL.

А теперь давайте я попробую объяснить чем же мне понравилась эта книга. Во-первых, огромным обилием примеров, посмотреть их вы можете уже сейчас на официальном сайте книге в разделе Code Listings (правда, примеры там не все). Причем примеры, по-моему, сделаны не просто ради примеров, действительно хорошо подобраны мелкие и часто встречающиеся задачки. Так, например, для Parallel Programming выбрана тема Parallel Spellchecker - и уже в голове всплывают идеи где бы применить эту технологию.

Второе, чем понравилась книжка - это грамотная раскидка по темам. Я, кстати, не стал воротить нос от главы C# Basics, прочитал и ее, а мало ли. Даже там можно уже набрать интересных этюдов. Например, все знают что в C# 4.0 появились именованные и необязательные параметры в методах, но вот приходила ли в голову кому-нибудь такая конструкция?

void Foo(int x, int y) { Console.WriteLine (x + ", " + y); }
 
void OtherFoo()
{
  int a = 0;
  Foo(y: ++a, x: --a);
}

Что выполнится первым ++a или --a и что будет на экране? Такими интересными (но, правда, не нужными на первый взгляд) примерами книга полна. Минус в книге, правда в том, что если бы это был Рихтер, то после мы бы увидели пару страниц с MSIL кодом, подробными объяснениями, здесь же мы чаще видим что это так, потому что это так. Оно и не удивительно, посмотрите сколько тем в этой книге освещено:

C# in Nutshell

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

Еще понравилось, что книгой можно пользоваться как справочником, а так же познакомится со всеми нововведениями языка C# 4 и возможностями .NET 4.0 пробежавшись по главам PLINQ, Dynamic, Code Contracts и другим. Книжка сейчас состоит больше чем из 1000 страниц, предполагаю, что следующая часть должна быть точно двухтомником, либо просто дополнением к этой, так как выкидывать вроде все жалко, а делать ее толще - уже не поднять.

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

От себя рекомендую покупать книгу на английском языке, там не литературное произведение и читается легко даже с базовыми знаниями языка, для примера можно ознакомиться с главой Threading in C#. Книга на сайте O’REILLY.

Что думаете об этой книге? Были знакомы с предыдущими версиями?


Вас также может заинтересовать

rss twitter

Комментарии (23)

Михаил ( ) #
avatar
спасибо за описание книги. пополню коллекцию свою еще малочисленную коллекцию.
Denis Gladkikh ( ) #
avatar
Михаил, всегда пожалуйста. Вообще думаю в практике держать писать свое мнение о прочитанных книжках, а читать стараюсь побольше.. По мере возможности конечно же.
Сергей ( ) #
avatar
Да книга хорошая действительно много примеров как и в прошлых изданиях если установите LINQPad http://www.linqpad.net/ то прямо из этой программы можно будет скачать и тестировать примеры из этой книги.
Denis Gladkikh ( ) #
avatar
Сергей, да LINQPad - это отдельное отличное творение, которое позволяет очень быстро тестировать Linq запросы и видеть как это будет выглядеть, правда чтобы быстро учиться - нужны еще и подсказки, а за них нужно платить. Тоже пользуюсь, правда в последнее время нет необходимости в нем.
Ruben ( ) #
avatar
Я тоже впервые услышал об этой книге из подкаста Петербургской Группы Alt.Net.
Сейчас читаю Тролсена Andrew Troelsen "Pro C# 2010 and the .NET 4.0 Platform".
Если знакомы с этой книгой, не подскажет как она по сравнению с C# IN A NUTSHELL. Может стоит и ее купить?
Denis Gladkikh ( ) #
avatar
Ruben, У книжки Троелсена безусловно богатый опыт, в сумме у книги будет уже десятилетие :) Я видел, наверное, 3 редакцию этой книги - она на меня не произвела сильного впечатления - потому как у нее не такое большое покрытие базовых вещей, а намешано все в одном и WinForms, и Silverlight, и чего там только нет - из-за чего охват большой а покрыто мало. Я бы сказал так "Pro C# 2010 and the .NET 4.0 Platform" - это книга, которую можно почитать. А "C# IN A NUTSHELL" - это книга, да еще и справочник, который рекомендуется иметь (на полях, кстати, у нее есть закладки для быстрого отыскания темы - ну, действительно, справочник).

P.S. Кстати, а сколько сейчас у Троелсена страниц, больше 1500? :)
Ruben ( ) #
avatar
у последнего Троелсена 1753 страницы в англоязычной версии. На русский пока перевода нет.
Vladislav ( ) #
avatar
Лично я, читаю книги только те, которые можно использовать как справочник. ИМХО, потому что эти книги, ни художественная литература, и должны читаться быстро, и главное понятно. А то откроешь Троелсена, начнешь читать и по пол главы пролистаешь. Лучше один раз взглянуть на код с небольшим комментарием, чем десять раз прочитать про него.
Denis Gladkikh ( ) #
avatar
Vladislav, смотря для каких задач. Из это справочника тоже особо архитектуру CLR не прочувствуешь, а вот с Рихтером многие вещи становятся понятнее.
Ruben ( ) #
avatar
Vladislav, В Тролсене тоже мало воды и много примеров. Такой огромный размер из-за того, что охват очень широк.
Естественно, его не стоит читать от корки до корки, а только то, что необходимо.
Аноним ( ) #
avatar
где пдф можно скачать?
Petro ( ) #
avatar
Сравнивать Рихтера и C# 4.0 in a Nutshell мягко говоря некоректно.
Это книги для разных аудиторий и описывают разные вещи.
Так уж повелось что у нас Рихтера советуют направо и налево всем новичкам, что должно свидетельствовать показательством крутости, наверное это тянется со времён Win32б когда Рихтер был настольной библией, но она не учит основам языка и не должна. Она объясняет работу фремворка под капотом. Эфективно примененяют полученые знания люди обычно уже набрав серёзного опыта работы с платформой, когда вопросы как написать цыкл не возникают.
А так чесно говоря вы сравнили тёплое с мягким. Книгу для быстрого введения в платформу и книгу для понимания особенностей реализации архитектуры. Вы бы сюда ещё добавили "C# для чайников".
zhe ( ) #
avatar
На русский, я так понял, ещё не переведено?
Denis Gladkikh ( ) #
avatar
Аноним, про это не знаю. Я люблю бумажное :)

zhe, Четвертой редакции переведенной не было еще. И честно даже не знаю, где об этом можно узнавать.

Petro, Вы очень внимательный читатель (Sarcasm). Я нисколько не сравнивал Рихтера и этот справочник. У меня ни слова нет - почему эта книга лучше или хуже Рихтера, и я так же замечаю, что это разные книги и учат они о разном. "Это книги для разных аудиторий" - а вот тут бы я с вами поспорил - аудитория там одна - C# разработчики, как новички, так и матерые.
Denis Agarev ( ) #
avatar
Денис, спасибо за интересную информацию. Как раз искал подобную книгу, но руки не доходили, да и Рихтера пока никак не дочитаю в англ. версии).

Добавлю две копейки про Троелсона...

Это была моя любимая книга...5 лет назад, когда я вообще ничего не понимал ни в CLR, ни в C# да и в программировании как таковом. Помню для зачета мне нужно было перевести программу написанную с Delphi на C# с расширением функциональности за вечер не имея никаких представлений о .Net и как раз благодаря Троелсену мне удалось найти подходящие решения и через бездумный copy/paste постепенно пришло понимание базовых вещей.
Artem ( ) #
avatar
Обязательно посмотрите “Advanced .NET Debugging” — очень полезная книжка.
Denis Gladkikh ( ) #
avatar
Artem, чем интересна?
Evgeny ( ) #
avatar
Спасибо за описание! Скажите, а как эта книга в сравнении с "C# 4.0 The Complete Reference" by H. Schildt?
Denis Gladkikh ( ) #
avatar
Evgeny полистал C# 4. 0 the Complete Reference By Herbert Schildt тут, по мне так больше на школьный учебник смахивает. Его можно запросто использовать и в школе и в университете. C# 4.0 in a Nutshell, наверное, поумнее будет книжка, в том смысле что там не будет базовых разъяснений "Зачем нужны типы данных?".
Evgeny ( ) #
avatar
Спасибо, Денис, значит с выбором я правильно определился :) Полез на Amazon...
Александр ( ) #
avatar
Присоединяюсь к мнению Дениса. Третье издание купил, полистав книгу в магазине, и первое впечатление не обмануло. Нахожу книгу исключительно полезной. Текст компактный, внятный. Примеры небольшие - только суть вопроса и ничего отвлекающего. Троелсен тоже есть, и, как мне кажется, его текст пожиже будет.
Denis Gladkikh ( ) #
avatar
Полистал вчера 3-его Рихтера, кстати, там что-то не особо нового то появилось.
Игорь ( ) #
avatar
Ща опробуем
Добавить комментарий

Если вы хотите получать уведомления о новых комментариях к данному топику, укажите, пожалуйста, email и отметьте соответствующий пункт в форме. Если вы хотите добавить код в тексте комментария, то заключите его внутри тега [code]...[/code], более того можно уточнить язык, на котором написан данный код при помощи [code cs]...[/code], где вместо cs могут быть cs, html, xml, java, js, php, sql, cpp, css.

 

busy