информационная безопасность без паники и всерьез подробно о проекте |
||||||||||||||||||||||
|
||||||||||||||||||||||
|
31.10.12 18:24 // оригинал Ознакомился с парой учебников Павловской по С++ и С#, которые оказались практически единственными тематическими книгами, закупленными нашей библиотекой в количествах, доступных для рядовых студентов (по рекомендациям МО РФ). Понятно, что адаптированные программистские курсы нужны исключительно из стремления сэкономить, своего там - ну разве что примеры, изложение самого языка - пересказ того, что понял автор. Все-таки честно попытался преодолеть это предубеждение, раз уж все равно работать с теми, кто будет этим пользоваться. Книжку по С++ пролистывал быстрее, только в поисках привычных реперных точек. Поэтому есть шанс, что просмотрел - но в упор не увидел описания работы конструкторов/деструкторов с разными типами памяти и с объектами-полями других классов. Исключения, шаблоны - приемлемо, но очень наискосок. Стандартная библиотека расписана прилично, честно перечислены практически все алгоритмы, не говоря уж о контейнерах. Собственно, книжка и не позиционируется как исчерпывающее описание - что тоже вполне честно. Слова про полезность для искушенных программистов - это вряд ли. Учебник по C# честно просмотрел весь. В паре мест цепанул перевод. Sealed классы упорно называются бесплодными. Чем не угодили запечатанные - непонятно. Отдельный шик - перевод слова virtual. На голубом глазу утверждается, что "virtual в переводе с английского означает фактический", после чего строится логическая цепочка - мол, фактический, поскольку ссылки на метод разрешаются по факту вызова во время исполнения. Конечно, есть и такой вариант перевода, но все-таки воображаемый/возможный/гипотетический в данном контексте звучит гораздо логичнее и не требует притягивания за уши рассуждений о разрешении по факту (хорошая проверка для перевода - pure virtual). Рассказ, что # - на самом деле диез, и говорящие "си шарп" должны и C++ называть "си плас-плас" - ну тогда уж нужно было доводить музыкальный перевод до конца и рассказывать про до-диез. Из откровенных ляпов наткнулся на рассказ о разнице между делегатами и событиями. Утверждается, что все их отличие - в том, что "при использовани событий не требуется описывать метод, регистрирующий обработчики, поскольку события поддерживают операции += и -=". Причем в примере, демонстрирующем переход от делегатов к событиям, += прекрасно используется именно для делегатов, а сам объект-делегат объявлен как public. Так что мне искренне жаль студентов, пытающихся понять, что же мешает использовать эти += с ним напрямую снаружи, не связываясь с инициализирующей функцией (правильный ответ - а ничего не мешает, но ломает инкапсуляцию, для сохранения которой в сочетании с экономией на коде на самом деле и придуманы события). Замечательный пример перепутывания причины и следствия. Полное остутствие упоминания указателей на функции при вводе понятия делегата в сочетании с пассажем о том, что только с появлением лямбд C# приблизился к Паскалю, умевшему передавать функции как параметры еще в 92-м году, в целом как бы намекает. По сумме впечатлений по-прежнему вижу лишь одну целевую аудиторию для адаптированных курсов - желающие сдать и забыть. Для потенциальных профессиональных разработчиков вариант "использовать как трамплин, чтоб потом перейти на правильные книги" выглядит не очень убедительно, лучше уж сразу потратиться на приличные классические учебники, в которых с самого начала можно надеяться на отсутствие авторских фантазий. Понятно, что "только хардкор, только Страуструп" подойдет не всем, но Липпман для С++ и Троелсен для С# - это практически оптимум.
|
авто
венгрия
вырвиглаз
германия
глюки
греция
гуглемап
драйверы
египет
железки
журнализм
империя добра
испания
италия
кино
кипр
клоуны
книги
криворучки
оспорт
португалия
программизм
сайт
софт
стрим
студень
турция
уродцы
фото
франция
цацки
чехия
читалки
android
bq
e51
eeepc
from facebook
hd2
hpc
htc
ipad
iphone
onlime
vista
windows 10
windows 7
windows 8
yota
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|