Q: Почему стоит использовать именно C++?
A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:
- Скорость
C++ действительно быстрый язык — вместе с C, его прародителем, они с большим отрывом уделывают по скорости все остальные языки высокого уровня. Код на C++, как правило, медленнее аналогичного кода на C приблизительно на 0-20% а в ряде случаев C++ оказывается даже быстрее, причем замедление появляется только при использовании высокоуровневых конструкций (в C++ ты никогда не платишь за то, чего не используешь). Таким образом, если тебе требуется высокопроизводительный код, C++ станет отличным выбором. - Мощь
C++, являясь одним из наиболее выразительных и мощных языков, позволяет использовать большинство существующих парадигм. Его философия построена на минимальном ограничении программиста в выборе методов и инструментовпростреливания ногирешения задачи. Как следствие, используя C++, ты можешь не думать о том, как обойти искусственные ограничения языка, а беспрепятственно выбрать наиболее подходящие к ситуации средства. - Популярность
C++ по-настоящему популярен. На нем написаны десятки тысяч приложений и миллиарды строк кода, о нем написаны сотни книг, он до мельчайших подробностей документирован и стандартизован. Используя C++, ты никогда не останешься без работы или поддержки комьюнити.
Литература
Q: Окей, я решил вкатиться. Какие же книги мне читать?
A: Специально для тебя собрали уникальную коллекцию отборной литературы по крестам. Только лучшие книги, последние издания! Выбирай категорию и начинай:
Для новичков
Учебники для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется:
- Бьерн Страуструп Программирование. Принципы и практика использования C++2016 https://yadi.sk/i/Yd6KKpLBqJSUr
- Стэнли Липпман, Жози Лажойе и Барбара МуЯзык программирования C++2014 https://goo.gl/kVaela
- Стивен Прата Язык программирования C++2012 https://goo.gl/z7kA8u
Кроме того, есть еще пара старых добрых учебников для начинающих. Часть информации в них устарела, но многие считают, что это компенсируется их большей, по сравнению с современными учебниками, понятностью:
- Герберт Шилдт C++. Базовый курс2010 https://goo.gl/qMLAFl
- Роберт Лафоре Объектно-ориентированное программирование в C++2004 https://goo.gl/QvjR6x
Лучшая практика
Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все:
- Скотт Мейерс Эффективное использованиеC++2008 https://goo.gl/WXcMa1
- Скотт Мейерс Эффективный и современный C++2015 https://goo.gl/Im8VYQ
- Скотт Мейерс Эффективное использование STL2002 https://goo.gl/C6lZyY
- Герб Саттер и Андрей Александреску Стандарты программирования на С++2008 https://goo.gl/84o3p7
Проектирование
Следует пролистать все перед переходом от лаб к написанию настоящего софта. Последний пункт есть квинтэссенция ГИБКОСТИ, поэтому стоит прочитать его в любом случае, чтобы узнать, как можно делать:
- Ален Голуб Веревка достаточной длины, чтобы выстрелить себе в ногу2001 https://goo.gl/fBmuxp
- Джеймс Коплиен Программирование на C++2005 https://goo.gl/Y1WGdU
- Андрей Александреску Современное проектирование на C++2008 https://goo.gl/vNcrGN
Тонкости языка
Книги для тех, кто возлюбил кресты всей душой и желает углубиться в детали:
- Герб Саттер Решение сложных задач на C++2002 https://goo.gl/csyx3s
- Бьерн Страуструп Дизайн и эволюция C++2000 https://goo.gl/ScGZLE
- Герб Саттер Новые сложные задачи на C++2004 https://goo.gl/FTcg82