Видно, что человек старается, разбирается и пришел на форум за помощью с осмысленными вопросами. Так к нему и отношение соответствующее. А если ты приходишь только для того, чтоб лужи погазировать, то и к тебе отношение соответствующее.
--
Не можешь достичь желаемого — пожелай достигнутого.
На мой взгляд, авторы "Thinking in C++" молодцы, написали хорошую книгу для начинающего. Проблема только в том, что эта книга появилась до С++11.
Раньше я сам её советовал, но сейчас стоит начинать с книги, опирающейся на то, что уже есть {shared,unique}_ptr, лямбды, string_view, span, range-based for, auto, structured binding, move-semantics, гарантированный copy-elision, variant, optional, constexpr, fmt и т.д.
Эти инструменты для повсеместного использования сильно влияют на то, какой код получается. Это я пишу про чисто прикладной код, для шаблонописания — отдельный набор значимых улучшений.
(SFINAE vs. concepts + if constexpr)
К сожалению, я такой книги/набора книг для начинающего не подскажу.
Из обязательного, сразу за стадией "ну вот, я умею писать ф-ции и классы (знаю синтаксис), что дальше" я бы рекомендовал книги Саттера и Мейерса + Core Guidelines (я не со всем там согласен, но в целом — весьма полезный набор рекомендаций).
Многопоточка — отдельная и непростая тема. Кому-то нравится Concurrency in Action, мне не зашло.
Здравствуйте, Shmj, Вы писали:
S>Больше возможностей для углубления, скажем так.
S>Средним умом тоже можно писать на C++ и кое-что уметь на нем делать, но это не переведет тебя в высшую касту, скажем так. Но кое-что все-равно полезное взять можно, как минимум легче будет использовать C++ либы в своем любимом языке.
А теперь слово экспертам
--
Не можешь достичь желаемого — пожелай достигнутого.
Здравствуйте, Mihal9, Вы писали:
M>А может посоветуете хорошую, понятную книгу C++ для начинающих чайников?
Бьерн Страуструп: Язык программирования С++ вполне годная книжка для старта. Я правда начинал на других, но тогда ещё не было русского издания этой книги. Ну и соответственно, я многое в этой книге только пролистывал, более менее только первый раз читал, а потом использовал как некий справочник, или когда что-то освежить надо. Ну и я третье издание читал, там ещё С++98/03, по идее в этом издании должна быть поновее инфа.
Здравствуйте, Mihal9, Вы писали:
M>Или он не для средних умов? Знаю Python и PHP.
Для обычных умов он. Просто требует определённого склада характера. Дотошность, аккуратность.
По-хорошему, это при программировании на любом языке необходимо, но многие современные языки прощают неаккуратность, а С++ — нет.
Плюс, бОльшая вариативность — это бОльший контроль, но и бОльшая ответсвенность.
Ты можешь передать параметр по значению, по ссылке, ссылке на константу, по указателю на константу, и по указателю на неконстанту, как перемещаемую ссылку, как optional<T> или как nullable — T*
У тебя нет скрытого boxing/unboxing, или правил как в Пайтоне типа list мы передаём как ссылку, а int по значению. Решение принимать тебе. У любого решения есть свои последствия, и их лучше понимать.
То же самое касается возвращаемого значения.
Есть сырые указатели(что??), std::shared_ptr, std::unique_ptr, boost::intrusive_ptr и куча других вариаций.
И, опять же, они обладают разными характеристиками и нужно принимать решение.
Это всё подходит и нравится не всем.
Кому-то нравится брать кубики Лего и строить офигенные замки. И это круто!
Кому-то — винтики, гаечки, бормашину, дрель, отвёртки, линейки паяльники и делать тоже крутые штуки. Но другие.
И то, и то может быть сложным и интересным.
Главный вопрос, как по мне — это почему ты, собственно, задумался, а не перейти ли в С++?
Если тебе показалось, что это более надёжная ниша, типа этот-то никуда не денется job security и всё такое, то это не очень мотивация, скорее всего при наличии только этого мотива, никакой job security не выйдет.
То же самое — если ты узнал, что вон тот чувак пишет на С++ и у него классная ЗП — тоже не работает. Это вообще языку ортогонально. Да и вообще тогда лучше не кодить, а что-то другое делать.
Чтобы писать на С++ тебе нужно чётко понимать зачем. Будет много боли, это факт. Если ты сейчас, в 40, начнёшь, то к выходу на пенсию ты всё равно не будешь знать его полностью. И если бы начал 20 лет назад — тоже. И это норма, которую нужно принять.
И не будет никаких pip install, npm install и т.п., по крайней в ближайшее время, нужно будет уметь потанцевать с third-parties. Это иногда выбешивает.
К этому всему нужно быть готовым, и даже любить. Кто-то скажет, что нужно быть немного (или много) мазохистом, и я соглашусь.
Или ты хочешь работать в конкретной сфере (телеком, HFT, gamedev,...)
Ну или у тебя есть идея, которая сильно ограничивает выбор языка. Что-то под железо, драйвер под Линукс, использование существующего С/С++ кода.
Если нет чёткого понимания зачем тебе С++, то я бы не советовал.
ну да ну да
если перечитать все мои сообщения на ктыве
то такие мелкие опечатки встречаются постоянно
быстрый набор, да и голова может быть занята более важными делами в друком контексте
По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета,
не иеемт занчнеия, в кокам пряокде рсапожолены бкувы в солве.
Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете.
Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке,
все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся
то, что мы чиатем не кдаужю бкуву по отдльенотси, а все солво цликеом.
Здравствуйте, LaptevVV, Вы писали:
LVV>>>Если писать просто, то и язык простой. M>>А если читать чужой код? LVV>Тут — по-разному. LVV>Но в большинстве случаев — ничего страшного.
Лично меня это остановило на самом старте: я с делфей начинал, но периодически было интересно посмотреть как там что реализовано — пытался лезть в ATL, но спотыкался о бесконечные #ifdef и странно написанный код (шаблоны). Спрашивал знакомых плюсовиков (просил помочь прочитать), но безуспешно. Эти плюсовики же вполне успешно писали коммерческий код. Для меня это было уму непостижимо....
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, rg45, Вы писали:
M>>Бьерн Страуструп: Язык программирования С++ вполне годная книжка для старта.
R>Это шутка такая? На старте этой книжкой хорошо от всяких Shmj отбиваться — по одному удару на юнит.
Нет, не шутка. А ты предлагаешь с Майерса или Александреску начинать? Или толщина книжки смущает?
А если отбиваться от Шамжей — у меня была детская мечта — купить плюсовый стандарт в виде книжки. Купил — перевод драфта 14го стандарта. Ею можно убивать и калечить, а не отбиваться, или, если что, использовать в качестве щита при отражении атак конных копейщиков, а если рубиться простыми мечами — то защита 100%
Здравствуйте, Философ, Вы писали:
M>>Чужой код на любой языке практически всегда выглядит как говно
Ф>При этом только на C++ ты несколько часов подряд можешь безуспешно пытаться выяснить, как же эта дрянь работает.
Ну какая чушь. Тебе C++ только на картинках показывали? Или ты не писал на перле или хотя бы на питоне?