Comments
Вспоминается: «Полное описание языка Оберон от Никлауса Вирта занимает меньше, чем двадцать листов»
Не всегда объём означает, что книга достойная. Часто бывает, что ради объёма вливается океан воды.
И я бы добавил книг по работе с ОС:
— Charles Petzold. Programming Windows;
— Jeffrey Richter. Programming Applications for Microsoft Windows;
— Mark Mitchell, Jeffrey Oldham, and Alex Samuel. Advanced Linux Programming
и т.д.
Кроссплатформенность Qt в основном позволяет забыть о деталях реализации на конкретной платформе, но знание о том, как оно работает под капотом выручит не раз.
Сколько я книг не читал (довольно мало на самом деле), никогда не находил в них ответа на вопрос, как написать приложение уровня Photoshop.
Обычно это пересказ документации или просто рассуждения автора на заданную тему на много-много страниц. Очень часто авторы книг любят добавлять в конец каждой главы проверочные задания и вопросы. Кто-то их вообще делает?
Вот вы советуете читать учебник по С++ обьемом не меньше 800 страниц. Какой смысл? Узнать все возможные тонкости шаблонного программирования и варианты move семантики? Решить 500 примеров на эту тему? А может лучше просто начать программировать, начать создавать продукт?

Если вы хотите научиться создавать приложения уровня Photoshop — устройтесь в компанию Adobe и погружайтесь в проект там. И строчка в резюме будет неплохая.

Кстати, а что плохого в простых приложениях?
Отрисовка классического «офисного» GUI типа кнопок, прогресс-баров, виджетов, анимации.
Отрисовка любой нестандартной графики типа непрерывно движущихся графиков из миллионов точек.
Работа с базами данных
Работа с сетью
Работа с реестром операционной системы
Работа с принтером
Быстрое (в том числе параллельное) выполнение сложных вычислительных задач.

Все это можно делать и в небольших приложениях-утилитах, благо Qt имеет средства для всех этих задач. Крупные проекты — это нагромождение абстракций. Часто не совсем удачных, но раз уж создали, то используем. За этими абстракциями не видно конечной цели.
Делайте дома для себя небольшие проектики, в котором будут, например, работа с сетью и с БД. Потом сделайте печать отчетов на принтере. Нарабатывайте опыт. Потом вы не раз сможете использовать ваши блоки кода как кирпичики в других задачах.

В самом Qt нет ничего, что бы потребовало чтения 5000 страниц книг. Достаточно знать на базовом уровне С++03, с элементами С++11. Посмотреть примеры приложений, почитать документацию Qt в Assistance.

Подытожу. Решайте проблемы по мере их появления. Начинайте действовать уже сейчас, а разберетесь потом.
> Сколько я книг не читал (довольно мало на самом деле), никогда не находил в них ответа на вопрос, как написать приложение уровня Photoshop.

В первой половине «банды четырех» описывается пример создания текстового редактора похожего на word

Вообще по словам "банда четырёх паттерны" вы её нагуглите буквально первой же ссылкой. Однако я не рекомендую читать эту книгу, а рекомендую просто зайти вот сюда например, чтобы всё то же самое в более удобоваримом виде понять.


https://refactoring.guru/ru/design-patterns


В конце самой книге приводится пример построения текстового редактора, на изученных в книге абстракциях.

Да, я и говорил про «пример построения текстового редактора» (только мне казалось, что оно идет в начале, а не в конце). Про сами паттерны читать там довольно скучно

А, может и в начале, я уже не помню. Открывал её лет 5 назад. Сегодня я хотел бы почитать что-нибудь про System Design Patterns, но не знаю что.

"Главное в той книге, что Вы будете читать – объем! Она должна быть большая! "
И тяжелая, чем тяжелее, тем лучше!!! Обложка лучше желтая, но на худой конец сойдёт белая!!!

Итак, «Прасид Пай, Питер Абрахам: Реактивное программирование на С++». 323

В них довольно просто излагаются проблемы, возникающие при параллельном программировании, идет знакомство с простыми путями решения.

Бонусом идут описанные относительно простым языком нововведения C++17, C++14, C++11.

Вот за это спасибо: часто нужно простым и понятным языком.


Тоже на Qt сижу с 2002-го где-то :)

Qt тем и хорош, что заметно облегчает работу с невменяемым C++. Если бы его (Qt) приделали к более разумному языку! Но даже версия для Явы не обновляется уже несколько лет.
А я был бы не против, если бы в Qt завезли ряд фич из C++17. Fold expressions нопремер (а то реализация тех же multi-arg в QString сейчас выглядит слегка убого), поддержка structured bindings тоже кое-где бы не помешала… Qt 6 обещают строить уже на базе C++17, так что ждем!

P.S. Для нелюбителей «невменяемого C++» есть же Qt для питончика.
его «приделали» к питону и js например. А вообще у вас есть с++ там где не справляется сейчас Qt
Шлее? Что простите? Автор ты сам то читал что предлагаешь? Шлее просто перепечатал документацию. Там даже синтаксис сигналов старый оставил. А остальная книга просто поверхностная. Ни слова ни про qmlbook и другие действительно полезные книги. В общем позор.
PS По ссылке собрана действительно собраны нормальные проекты и книги для изучение фреймоворка github.com/JesseTG/awesome-qt#books
Эти книги научат синтаксису и хитрым трюкам языка, но научат ли они как написать сложнейшую программу типа Фотошоп? Сомнительно. Потому что ни в одной из вышеупомянутых и не ставится задача рассказать как спроектировать сложнейшую программу, в которой существуют тысячи переменных переплетенных между собой с множеством различных неявных уровней абстракций, и как создать эту архитектуру, без лишней сложности, чтоб через месяц можно было с легкостью исправить в ней обнаруженную ошибку, или слегка изменить функциональность.

Взять хотя бы шаблон MVC из наиболее близкой к теме проектирования книги банды четырех. Отделить вид от данных — звучит красиво, но если взять пример из реальной жизни: модель имеет множество дочерних подмоделей причем разных ничего не имеющего общего типов, эти подмоделей имеют свои подмодели и т.д., причем все подмодели создаются динамически, они могут быть упорядочены и менять свой порядок в зависимости от манипуляций над ними пользователя. А также есть множество видов, которые должны иметь такую же древовидную структуру из подвидов, соответсвующих подмоделям, и реагировать (обновляться) на создание, изменение данных, изменения порядка подмоделей. Даже если убрать контроллеры и подконтроллеры. Добавьте сюда еще автоматическое сохранение в файлы данных моделей после манипуляций пользователя (а файлы по сути тоже являются видами (образами) моделей), запись в логи после значимых измененей, и т.д. И программа превращается в жуткий mesh (мессиво). А в теории MVC выглядит очень многообещающе.
Only those users with full accounts are able to leave comments. Log in, please.