Найти в Дзене

Почему стоит выбрать C++ и с чего начать?

Оглавление

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

Тонкости языка

Книги для тех, кто возлюбил кресты всей душой и желает углубиться в детали: