Книга Программирование C++
Что делать если не понимаешь книгу по программированию? Я новичек , недавно купил книгу Стивена Праты "Язык программирования C++ Лекции и упражнения " . Все написано очень сложным языком и половина терминов даже не обьясняется . Как мне поступить в этой ситуации?
Книги по языкам читаются намного легче, если знаешь, что тебе в данный момент нужно, а что не нужно. Не нужно читать сразу всё подряд, можно выбрать то, что требуется для решения задач, а к остальному вернуться позже. А если информация в книге не помогает решать задачи, то можно к ней и не возвращаться, а поискать другую книгу. Термины можно изучить на справочных ресурсах вроде en.cppreference.com , а часто - даже Википедии (хотя в ней не всегда они точно описаны).
По языкам есть простой базовый принцип, как отделять мух от котлет. Все языки формировались под влияниям четырёх факторов:
Математика.
Удобство в решении задач авторов.
Тараканы в голове авторов (в т.ч. модные на тот момент тренды или вкусовщина).
Принцип корпоративного удешевления (корпорации стремятся прогнуть понравившиеся им языки под типовые задачи и стиль работы нанимаемых ими дешёвых кодеров).
Из них первое - это всегда преимущество, особенно - в долгосроке, второе - зависит от того, насколько решаемые тобой задачи похожи на задачи автора, а третье и четвёртое нужно быть готовым без сожаления отбрасывать, как только оно мешает работе. Каждую фичу и способ её реализации нужно относить к одному из этих факторов и соответственно приоритизировать изучение. Например, ООП - это не математика, а модный в 1980-х гг тренд (фактор №3), относившийся в основном к графическим приложениям и симуляторам (личные задачи Страуструпа - фактор №2), наследование - отличительный признак ООП, поэтому изучение наследования может подождать. Параметрический полиморфизм, представленный в C++ в виде шаблонов (template), - это математика (фактор №1), есть смысл изучать в первую очередь. Или например, арифметика указателей и неявное приведение типов помогали Томпсону и Ричи писать Юникс с небольшим количеством кода и низкоуровневыми оптимизациями (фактор №2), а в разработке крупных приложений эти фичи достаточно опасны. И так далее. Тогда меньше шансов перегрузить голову ненужной информацией.
А чтобы различать эти вещи, нужно изучать собственно математику и историю развития языка, в т.ч. те языки, из которых он заимствовал фичи. C++ создавался на основе C и включал в себя фичи из Алгола, Ады, ML, SmallTalk.
И практика. Решаем задачи с использованием изучаемой фичи и смотрим, как получилось. Каждое решение нужно уметь оценивать с т.з. эффективности и ограничений. Тогда будет видно, что какая фича помогает решать такую-то задачу, а какая, наоборот, мешает.
Скачай и посмотри другие пособия по C++. Возможно, найдешь более простые. Я бы посоветовал вообще начать с изучения чистого Си - он фактически является начальной частью C++.
Я разобрался сам, путем чтения каких то гайдов и изучения чужого кода.
Забей. Начни с чего-то попроще. Например Python
Купи другую книгу. Для новичков.
И/или смотри лекции на ю-тубе, например.