• Каков план личностного развития C++ программиста с нуля?

    Если человек мне на собеседовании скажет, что с C++ он перешел на C#/Java, и теперь все его головные боли иссякли, я никогда не найму его на должность выше обычного девелопера. Это в лучшем случае середняк, который никогда не будет писать изящных архитектурных решений, без особой тяги к знаниями и без капельки фанатизма.

    Есть такая шутка:
    есть два типа людей: те, кто уже выучил C++, и те, кто его никогда не выучат.

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

    Крайне не советую начинать изучение языка со Страуструпа — уснете. По моему опыту, новичкам крайне полезно читать книгу Стивена Прата "Язык программирования C++. Лекции и упражнения". Во-первых, это именно книга по C++, а не древний учебник по C с классами. Во-вторых, там уделено внимание стандарту C++11, фишки которого отлично приходят на замену древнему C++ (о которых еще пишут в учебниках, да).

    STL — обязательна для изучения. Без нее C++ — обычный C с классами.

    Изучению также подлежат такие библиотеки, как boost (сначала, что в ней вообще есть, а потом — как написать определенные случаи), poco, ACE. Крайне рекомендую обратить внимание на Qt — это клад в мире C++.
    Если интересна 3d-графика, можно посмотреть свободный графический движок Ogre3d.

    Потом, хорошим C++-программистам хорошо бы знать структуры данных. Пожалуй, на этот вопрос лучше всего ответит Роберт Седжвик в своих книгах, либо соответствующих курсах на Coursera. Это важно, т.к. C++ обычно используется как язык для решения ресурсоемких задач, а не построения "табличной" бизнес-логики.

    И на финал — один из самых сложных современных языков для изучения.
    Ответ написан
  • Каков план личностного развития C++ программиста с нуля?

    @Lol4t0
    Мой ответ касается практической части, про книжки смотрите другие ответы.
    Для того, чтобы действительно разобраться в языке, нужно писать на нем. Причем писать такой код, который поток кто-то проверит, укажет на недостатки, подскажет, как сделать лучше.

    Для этого вам можно или найти какой-нибудь курс, или поучаствовать в opensource проекте с code review, причем довести свои патчи до merge в master. С этим, правда, бывают сложности, если вы совсем начинающий, потому что никому от вас толку не будет.
    Тут есть еще один вариант, про который почему-то никто никогда не упоминает. Отвечать на вопросы. Вот так вот как вы сейчас задаете вопросы, только отвечать. Конечно, вам не пойдет ванильный тостер без дизлайков, с малым количеством вопросов и специфическим русскоязычным сообществом. Вам нужно на StackOverflow. Просто смотреть подряд вопросы, пытаться решать, постить ответы, сравнивать с теми ответами, которые пишут другие люди и делать выводы. Если вы будете писать ерунду, вас там поправят, опять же. Я в свое время довольно много таким образом узнал где-то за полгода.
    Ответ написан