Я новичок, и у меня мало знаний в программировании.
Было бы хорошо, если бы я непосредственно изучал C ++ из книг, которые охватывают новый C ++ 11, или я должен изучать старые лучшие книги по C ++?
Должен ли я иметь немного знаний о C ++ до изучения C ++ 11? или я могу начать прямо оттуда?
Не вызовет ли это проблемы, если я начну с C ++ 11? Если нет, то предложите несколько книг по C ++ 11.
Programmers — Stack Exchange is a site for professional programmers...
В таком случае, не могли бы вы привести меня на сайт для начинающих программистов? Я также начинающий программист, и у меня будут довольно простые вопросы ...Ответы:
Существует множество улучшений удобства использования, которые делают C ++ 11 более понятным для новичка, особенно для тех, кто имеет опыт работы с другими языками на других языках. Другие изменения в C ++ 11 представляют интерес только для опытных пользователей, так что вы, вероятно, ошеломитесь, если вы возьмете книгу, предназначенную, в основном, для изучения различий. Убедитесь, что любая книга, которую вы получаете, предназначена для начинающих C ++.
Тем не менее, вам, вероятно, придется в конечном итоге изучить старый способ, поскольку существует много существующего кода, и даже новый код C ++ 11 будет содержать старый способ действий, если программист так решит. Я пишу C ++ для жизни, и моя компания до сих пор даже не удосужилась оценить C ++ 11-совместимые компиляторы, не говоря уже об их использовании в производстве.
источник
Вам не нужно использовать старый C ++, чтобы начать использовать C ++ 11, в C ++ 11 есть новые функции, но их использование не является обязательным. Знание того, как использовать функции C ++ 11, может быть преимуществом, и это, безусловно, не будет недостатком при работе с унаследованными (до 11) базами кода, если вы знакомы с особенностями старых версий.
Изучение C ++ было бы хорошим местом для начала обучения, и Приложение B научит вас особенностям C ++ 11 после того, как вы изучите основы.
Я понимаю, почему некоторые люди считают Java / CSharp и т. Д. Более простыми альтернативными языками, но я немного выучил C ++, прежде чем переходить на CSharp, и из-за этого я не хуже программиста, наоборот, навыки программирования идут гораздо глубже, чем язык синтаксис / функциональность и прочная основа в C ++, вы можете легко выучить любой другой императивный язык ООП.
источник
Сложно сказать.
Старый C ++ - это скорее минное поле, и приятно научиться ориентироваться на таком звере. Это также поможет вам понять, почему все сделано так, как оно есть, и каковы последствия различных конструкций.
Опять же, старый C ++ - это не то, что вы хотите, когда пишете код.
Но с другой стороны, старый C ++ - это то, что многие отрасли будут использовать в течение еще 20 лет.
Я люблю C ++ 11, но пока что его можно использовать только в стартапах. Не в больших базах унаследованного кода. А переход прямо на C ++ 11 может оставить вас с неразвитыми навыками в неприятных частях C ++. Который будет иметь неприятные последствия, если какая-то продвинутая конструкция C ++ 11 утечка или сбой, потому что он используется синтаксически правильным, но логически неправильным способом.
источник
Несмотря на множество улучшений
C++11
,C++
это все еще нелегкий язык. Java, хотя и не так проста, как некоторые думают, все же является более простым языком с очень хорошей производительностью (часто почти такой же быстрой, какC++
) и предлагает лучшие IDE (может бытьVisual C++
, так же хорошо, как нынешние Java IDE, но не повезло здесь, в Linux), что значительно более полная стандартная библиотека (JDK), больше библиотек (например, Hibernate , Spring , JEE , Lucene и т. д.) и отсутствие утечек памяти (ну, почти, ни одной - вы все равно можете создать утечку памяти в Java, но сделать это труднее чем вC++
). Если честно, с современнымиC++11
гораздо легче избежать памяти лука-порея.В C ++ 11 есть много интересных функций, таких как лямбда-выражения, ключевое слово auto, семантика перемещения и многое другое. Это определенно намного лучший язык, чем
C++98
был. Посмотрите этот обзор Херба Саттера о новых функциях вC++11
: Элементы современногоC++
стиля.Подводя итог, я думаю, что каждый должен выучить хоть немного
C++
. Если вы программировали вJava
,Scala
,Ruby
илиPython
за последнее десятилетие и не прикоснулсяC
илиC++
, теперьC++11
я думаю , что настало время , чтобы узнатьC++11
и улучшить свои навыки программирования при этом.Я, вероятно, не буду
C++
много использовать на работе в ближайшие годы, и когда мне понадобится более мощный язык, чемJava
, я, вероятно, пойду на Scala, но я буду внимательнее смотретьC++11
и пытаться изучить и понять новые функции, особенно о многопоточности и параллелизме.источник
Сделайте глубокий вдох и прочитайте эту статью Питера Норвиг.
Вы читали это? Хорошо, если вы новичок, вам нужно начать с небольших шагов. - вставьте сюда язык - можете прийти позже, проверьте Coursera или Udacity для некоторых вводных курсов по информатике для начинающих.
Завершив это, я бы посоветовал потихоньку пробираться по языку программирования C от K & R, если у вас установлен язык «C».
Работайте по основам, остальное придет вовремя.
источник
Последние вводные книги о C ++ все чаще охватывают и C ++ 11. Я прочитал Sam's Teach Yourself C ++ после работы со скриптовыми языками, но не C / C ++ в течение почти десяти лет, и нашел это действительно полезным. Я очень быстро разбирался в основных идеях C ++ (включая множество STL) и осознавал множество деталей, отличающихся в C ++ 11.
Как упоминали некоторые другие авторы, C ++ 11 во многих отношениях проще, чем старые стандарты с такими добавлениями в стиле сценариев, как
auto
иfor(int &i : m_vector){}
т. Д. Так что, если ваше «небольшое знание» исходит от таких языков, как Python или Matlab, вы найдете C ++ 11 несколько более "естественный", чем предыдущие стандарты.Я также хотел бы отметить, что к настоящему времени совместимость компилятора для C ++ 11 ( почти ) завершена, поэтому наличие кода, «слишком современного для компиляции», больше не является проблемой.
Короче, делай это.
источник
В моё время C считался обязательным условием C ++, особенно для начинающих программистов. Потому что вы должны выяснить, что делает язык и почему он так разработан. C получил массу отличных и достаточных идей языка программирования, которые никогда не устареют. Таким образом, я считаю, что это лучшее начало.
И после того, как у вас будет некоторая базовая точка зрения на программирование, вам, возможно, придется выбрать следующий шаг, а значит, выбрать язык для изучения настолько глубоко, насколько это возможно. Неважно, насколько глубоко вы продвинулись, обычно можно решить, насколько глубоко вы можете проникнуть для любых других языков, а это означает, что независимо от того, сколько языков вы выучили, самый глубокий всегда будет первым, который вы выкопали. Для меня я провел исследование Java и создал несколько моделей Java самостоятельно, чтобы лучше понять его функциональность ядра.
После этого вы сможете изучать все, что захотите, потому что вы полностью разбираетесь в технологии языка программирования. Я начал изучать C #, Go, Python и даже Scala и сделал много проектов для развлечения / работы. Личный рекорд - 3 месяца от начала изучения языка до 1,0 главы развивающегося проекта.
В моем случае прошло более 15 лет с момента моей первой программы, и я даже не помню, что это такое. Я верю, что если ты будешь работать достаточно усердно, ты определенно станешь лучше и быстрее меня.
источник
Как новичок, я думаю, что сначала вы должны пройти через концепции C ++, потому что C ++ 11 и все как новая версия, но C и C ++ являются базовыми для любого типа разработки. Как только вы изучите C ++, большинство понятий будут автоматически очищены.
источник
C ++ действительно великий и мощный язык. Однако это также возлагает большую ответственность на программиста.
Если вы новичок в программировании, сделайте жизнь проще для себя и начните с C #. Его синтаксис основан на C ++, но обработка ошибок гораздо удобнее для новичков, помогая вам, когда что-то идет не так.
Если вы знакомы с методами, классами, наследованием и хотите развиваться в среде, где управление памятью и системными ресурсами важнее, чем производительность, тогда C ++ - хороший выбор, и я бы начал с изучения текущего стандарта. Имейте в виду, что C ++ требует от вас понимания памяти и активного управления ею. Делайте ошибки здесь, и все, что вы получаете, это либо дамп памяти, либо ваши данные содержат байты, которые не имеют смысла. И часто точка, в которой вы находите проблему, не связана с тем, где на самом деле находится причина.
источник
Почему вы хотите начать с C ++?
Я лично рекомендую против C ++ в качестве первого языка. Это сложно, сложно, сложно ... просто намного более низкий уровень и более "небезопасно", чем большинство других языков программирования.
Я советую выбрать c #, java, python или javascript ... и хорошую книгу по пути. Вы будете иметь намного более приятное время с ними.
источник