BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/lj/archive/2012/3110.1824.html

шарпоплюсноучебное
31.10.12 18:24 // оригинал
Ознакомился с парой учебников Павловской по С++ и С#, которые оказались практически единственными тематическими книгами, закупленными нашей библиотекой в количествах, доступных для рядовых студентов (по рекомендациям МО РФ). Понятно, что адаптированные программистские курсы нужны исключительно из стремления сэкономить, своего там - ну разве что примеры, изложение самого языка - пересказ того, что понял автор. Все-таки честно попытался преодолеть это предубеждение, раз уж все равно работать с теми, кто будет этим пользоваться.

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

Учебник по C# честно просмотрел весь. В паре мест цепанул перевод. Sealed классы упорно называются бесплодными. Чем не угодили запечатанные - непонятно. Отдельный шик - перевод слова virtual. На голубом глазу утверждается, что "virtual в переводе с английского означает фактический", после чего строится логическая цепочка - мол, фактический, поскольку ссылки на метод разрешаются по факту вызова во время исполнения. Конечно, есть и такой вариант перевода, но все-таки воображаемый/возможный/гипотетический в данном контексте звучит гораздо логичнее и не требует притягивания за уши рассуждений о разрешении по факту (хорошая проверка для перевода - pure virtual). Рассказ, что # - на самом деле диез, и говорящие "си шарп" должны и C++ называть "си плас-плас" - ну тогда уж нужно было доводить музыкальный перевод до конца и рассказывать про до-диез.

Из откровенных ляпов наткнулся на рассказ о разнице между делегатами и событиями. Утверждается, что все их отличие - в том, что "при использовани событий не требуется описывать метод, регистрирующий обработчики, поскольку события поддерживают операции += и -=". Причем в примере, демонстрирующем переход от делегатов к событиям, += прекрасно используется именно для делегатов, а сам объект-делегат объявлен как public. Так что мне искренне жаль студентов, пытающихся понять, что же мешает использовать эти += с ним напрямую снаружи, не связываясь с инициализирующей функцией (правильный ответ - а ничего не мешает, но ломает инкапсуляцию, для сохранения которой в сочетании с экономией на коде на самом деле и придуманы события). Замечательный пример перепутывания причины и следствия.

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

По сумме впечатлений по-прежнему вижу лишь одну целевую аудиторию для адаптированных курсов - желающие сдать и забыть. Для потенциальных профессиональных разработчиков вариант "использовать как трамплин, чтоб потом перейти на правильные книги" выглядит не очень убедительно, лучше уж сразу потратиться на приличные классические учебники, в которых с самого начала можно надеяться на отсутствие авторских фантазий. Понятно, что "только хардкор, только Страуструп" подойдет не всем, но Липпман для С++ и Троелсен для С# - это практически оптимум.

 
теги: книги, студень  |  обсудить  |  все отзывы (0)  |  обсудить в LJ [3744]
назад «  » вперед

аналогичные материалы
неестественноинтеллектуальное // 29.09.23 16:50
викиисключительное // 20.05.20 21:20
террорноконтрамотное // 04.04.18 21:40
закопать стюардессу // 19.11.15 18:53
роботокурсовое // 18.06.15 03:18
турнирнокурсовое // 10.02.15 17:11
скорочтенное // 07.06.14 14:42
змейное // 03.06.14 23:41
гуглебучное // 17.05.13 12:38
преподавательское // 15.03.13 21:46
 
последние записи
ihrkampfное // 02.10.24 16:30
отпускное // 08.07.24 23:02
синхронное // 13.06.24 18:07
автоматизаторское // 16.05.24 18:12
песчаное // 13.03.24 18:05
макоудаленное // 29.01.24 23:10
разнонедельное // 07.12.23 15:09
qtменюшное // 29.09.23 23:47
неестественноинтеллектуальное // 29.09.23 16:50
основательное // 18.09.23 00:15





  Copyright © 2001-2024 Dmitry Leonov Design: Vadim Derkach