Знаю С++ по книгам и спортивному программированию, свой опыт разработки имею только в работе с OpenGL. Хотелось бы узнать, что нужно знать и уметь хорошему разработчику на самом деле. Основные паттерны, парадигмы, популярные сторонние библиотеки.
Можете ли посоветовать сайт/литературу о разработке реальных приложений на С++?
В С++ нету навыков, это не Java или C#. У С++ навыки выглядят приметрно так "Разработка на С++ под имя платформы или библиотеки". Ты берешь спецификацию железяки/видяхи/сетевого устройcтва/xbox-one-devkit/scaleform/openCL и кодишь. Если в вакансиях на Java ты наверняка увидишь БД, то с С++ сложнее. Это просто язык. Он даже в многопоточность не умеет и контейнеры "изкаробки". В Винде потоки выглядят сяк, в линуксе иначе. На С++ пишут примерно так: собирается команда и на протяжении ближайших лет кодит какую-нибудь новую спеку, интегрирую её в свой проект. C 80х-90х годов способы программирования на С++ не изменились особо.
Я думаю здесь имелось ввиду, что на крестах пишут костыли, не потому что язык убогий, а потому что готовые решения либо не подходят либо работают медленно, а чтобы стать эффективным, нужно вникать под капот той экосистемы, на которой пишешь
Из литературы всегда советую Брюса Эккеля - Философия Си++ ( Thinking in C++ ). К сожалению на данный момент в связи с выходом 2011 стандарта книга стремительно устаревает. Хотя все ключевые моменты там очень хорошо разъяснены.
Про разработку реальных приложений - тут на мой взгляд нужен реальный опыт - создание большого проекта в команде более опытных разработчиков творит чудеса и повышает уровень участников с невероятной скоростью. Разумеется команда должна быть офлайновая, через интернет подобные знания передаются хуже.