Почему книга Харви и Пола Дейтелов — топ для изучающих программирование?

Почему книга Харви и Пола Дейтелов — топ для изучающих программирование?

Прежде чем начать изучение основ программирования, расскажу, почему именно книгу Дейтелов «Как программировать на C++» я выбрал для изучения этих основ. Сразу скажу: C++ здесь ни при чём. Я хотел найти книгу, похожую по структуре, но по другим языкам — PHP и JavaScript. Книг я нашёл много, но ни одна меня не устроила. Причина прозаична: с помощью них можно было выучить язык, но не научиться программировать. Авторы этих книг часто такую цель и не ставили.
​Да, можно выучить синтаксис языка и основы предметной области. Но это не помогало, так как любой язык — это своего рода набор кирпичиков, из которых можно построить дом.  Но наличие у тебя кучи кирпичей не отменяет факта, что их нужно уметь правильно составить, чтобы получилось готовое здание. Более того, любой дом — это не только кирпичи, но ещё и фундамент, крыша, окна и многое другое.
​Книга Дейтелов «Как программировать на C++» обладает рядом уникальных особенностей, которые просто незаменимы для человека, который изучает программирование самостоятельно, без помощи других людей. Что это за особенности?

Плюсы книги «Как программировать на С++»

  • Подробная теория и примеры. Подробная, понятным языком написанная теория, которая сопровождается внушительным количеством примеров кода. А главное — это большое количество задач после каждой изучаемой темы. Очень важно, что практически для каждой программы, которую нужно будет написать, чтобы решить задачу, показан вывод результатов её работы на экран. Не знаю, почему другие авторы этим не пользуются: ведь если получилось решить задачу, хотелось бы понимать, что она была решена правильно.
  • Минимальные требования к знанию математики. Математика программистам нужна. Чем сложнее задача, тем сложнее может быть математика. Но Дейтелы в книге делают на неё минимальный упор. Все действия, которые приходится выполнять, практически всегда сводятся к элементарной арифметике, что для такого математического «нуба» как я, оказалось находкой. Да, я собираюсь подтянуть математику, она может пригодиться для изучения алгоритмов и анализа их сложности, например. Но я не хочу откладывать изучение программирования только потому, что сейчас плохо её знаю. А «Как программировать на C++» даёт такую возможность, в отличие от многих других книг, посвящённых основам программирования.
  • Раннее введение в классы и объекты. Не знаю, хорошо это или плохо, но книга учит мыслить в терминах и паттернах ООП, начиная уже с третьей главы. Иногда это раздражает, ведь если успел освоить только минимальные языковые конструкции, такие как переменные или ветвления, не особенно-то хочется тут же переходить к проектированию классов. Но раздражение быстро проходит, ведь концепция ООП в книге органично вписывается в излагаемый материал. Так что, скорее, это плюс. А может и нет, время покажет.
  • Задачи разного уровня сложности. В списке задач есть как простые задачи — для закрепления только что полученных навыков, так и комбинированные, сочетающие в себе несколько ранее изученных тем. Это то, что учит из кирпичей строить дом, а не только одну из его стен. Ещё есть несколько достаточно крупных, как для новичка, учебных проектов, которые нужно выполнить, чтобы получить навык сборки отдельных компонентов в готовую программу.
  • Изучение низкоуровневых и высокоуровневых компонентов. C++ — язык, сочетающий в себе как низкоуровневые возможности, так и высокоуровневые абстракции. В книге Дейтелов изучаются и первые, и вторые. Мнений по этому поводу очень много. Одни считают, что изучение низкоуровневых компонентов необходимо для становления успешного разработчика, другие уверены, что современные высокоуровневые языки исключают такую необходимость. Моё мнение где-то посередине. Основы понимать лишним не будет. Углубляться, если собираешься программировать на Python или PHP, не стоит. Но некоторые знания о работе «железа» получить можно, и это не так уж и плохо.

В целом моя гипотеза такова: если изучить книгу и решить большую часть задач, то шанс на успешное освоение различных предметных областей резко повысится. Возможно, не каждому этот путь будет близок. Я исхожу из своих способностей и возможностей, которые оцениваю как очень невысокие. Поэтому, прежде чем изучать желаемый стек технологий, нужно для начала настроить под это мозги. И изучение основ программирования — это только первый, но необходимый шаг. На том и стоим!

Комментарии

Комментариев пока нет. Почему бы ’Вам не начать обсуждение?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *