dollar
@dollar
Делай добро и бросай его в воду.

Какой выбрать современный хороший учебник по C++?

То есть сухое краткое структурированное изложение стандарта на русском с простыми и понятными примерами и четкими определениями. И с малым количеством ошибок перевода.
Критерии:
  • Описание вплоть до стандарта C++14
  • Поменьше воды типа "в старых компиляторах было хуже, а именно вот как".
  • Поменьше воды типа "в старом стандарте было иначе, а именно вот как".

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

Пробовал учебник Прата, но он описывает стандарт 2003 года и содержит огромное количество воды и лирических отступлений, а это лишнее время. Другие "хорошие" учебники, которые видел, тоже отстают и содержат воду. Неужели нету?
  • Вопрос задан
  • 16104 просмотра
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега Книги
software engineer
"Содержит огромное количество воды и лирических отступлений, а это лишнее время."

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

Если вам нужен сухой современный материал - читайте официальную документацию по функциям, типа msdn.
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
TrueBers
@TrueBers
Гуглю за еду
То есть сухое краткое структурированное изложение стандарта на русском

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

Поменьше воды типа "в старом стандарте было иначе, а именно вот как".

Без этого никак, новый стандарт никак не отменяет старый. Есть в языке такие фичи, которые добавили в 11 стандарте, а в 14-м уже объявили miss-conception и deprecated, а в 17-м вообще удалили. Поэтому знать, что было в старых стандартах просто необходимо для понимания, почему так происходит.

Сейчас C++ в таком состоянии, что книги по нему не успевают выходить, как всё меняется. Сейчас столько источников информации, что каждый день выходит миллион статей от официальных лиц комитета. Подпишитесь на ютубе на официальные каналы, на RSS фиды, на блоги не последних людей комитета. Мне сейчас в RSS приходит каждый день столько, что, когда работал в офисе, успевал во время дороги в офис читать по-диагонали лишь основную мысль. Сейчас работаю дома, и ничего не успеваю. Подпишитесь на CppCon, BoostCon, ISOCpp, Скотта Мейерса, Андрея Александреску, Герба Саттера, Бьёрна Страуструпа. Библиотека Boost служит, по сути, испытательным полигоном для стандарта, так что советую и её начать использовать сразу же вместе с основным стандартом. Ознакомьтесь также с Core Guidelines, это как бы набор костылей для вещей, которых пока нет в стандарте, но которые всем необходимы и будут скоро добавлены.

Книги же, по современному языку, рассчитаны, так или иначе, на тех, кто уже знает старый язык, бессмысленно писать новые книги с нуля, проще описать, что изменилось. Из более-менее полезного материала, читайте Скотта Мейерса Effective Modern C++: 42 Specific Ways to Improve ..., Anthony Williams C++ Concurrency in Action: Practical Multithreading, ну и вышеперечисленных.
Ответ написан
Комментировать
@Bombus
Обоими руками за курс на stepic.org.
Представлены основные разделы. Затронуты уровни от ассемблера, до ООП (и его работе в машинных кодах, это объясняет реализацию полиморфизма - виртуальных методов, в минимальном, но необходимом и достаточном уровне) и шаблонов. Прошел несколько курсов на этой платформе, и смело утверждаю, что лектор один из самых лучших - все по существу, воды ноль. Есть задания, решив которые получаете баллы. К каждому этапу добавлены комментарии пользователей с ответами преподавателей. Ну а если все пройдете, то получаете сертификат. И это все бесплатно.
Стоит отметить, что на данной платформе присутствует первая половинка курса, которая не затрагивает С++11 и выше. Но в любом случае, перед изучением новых стандартов необходимо изучить базу, которая в данном курсе ставится на ура. Считаю это лучшей формой обучения C++.
Для изучения новых стандартов, можно посмотреть лекции этого преподавателя - Александра Смаля - на базе Computer Science Center, хотя они уже не вызывают такой отклик - другой формат. Либо можно пройти курс на той же платформе - Многопоточное программирование на С/С++. Это уже серьезный уровень. Возможно самый сложный курс на данной платформе.
Ответ написан
Комментировать
dio4
@dio4
team leader, system engineer, master of sports
Эндрю Кениг, Барбара Э. Му "Эффективное программирование на C++. Практическое программирование на примерах".
Ответ написан
Комментировать
BacCM
@BacCM
C++ почти с рождения
В реальной жизни ты не всегда можешь выбирать компилятор. И знание того как было раньше не так бесполезно.
Ответ написан
kyb
@kyb
любозналельный программист, сисадмин, эмбеддер
Stackoverflow.com
Решает проблемы быстро и чётко. Стиль вопрос-ответ в обучении мне подошёл более всех. В моём обучении практика занимает большую часть времени.
Ответ написан
@exaw
Николаи М. Джосаттис
Стандартная библиотека C++. Справочное руководство
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы