Почему я должен изучать С++
Все говорили мне изучать С++. Без искажения языков справа и слева, может кто-нибудь, пожалуйста, укажите некоторые веские причины, почему я должен изучать С++ сегодня?
Обратите внимание: я никоим образом не говорю ничего жесткого о С++. Я просто хочу знать, почему я должен осваивать его как программиста, а не другие мощные языки там.
Ответы
Ответ 1
Должен ли я изучать дайвинг или китайский язык?
Это зависит от. Что тебе нужно? Вы работаете в компании, использующей С++? Вы работаете в отрасли, где распространен С++? Планируете ли вы работать в таком месте? Вы программист? Вы хотите сделать программирование?
Подавляющее большинство людей на этой планете не изучают С++, и им удается хорошо жить, несмотря на это. Большинство людей не изучают язык программирования. Они не нуждаются в этом.
Вам это нужно? Если да, изучите его. Вы хотите это узнать? Если да, изучите его.
Если вы собираетесь программировать на С++, изучение С++ будет очень хорошей идеей. Если нет, другие языки могут быть более релевантными.
Но это не то, ни другое. Изучение новых языков всегда хорошо, и вы всегда будете лучше программировать. Если у вас есть этот вариант, вы всегда должны изучать новые языки. Поэтому в идеале вы должны изучить С++, а также Ruby, C, D, F #, Haskell, Io, Lisp и любой другой язык, о котором вы когда-либо слышали.
На практике у вас, вероятно, не хватает времени для всех. Поэтому выбирайте те, которые вам кажутся вам полезными и интересными в первую очередь.
Ответ 2
Я думаю, что есть несколько причин, по крайней мере, знакомых с С++, даже если вы планируете использовать языки более высокого уровня в качестве вашего инструмента выбора. Вот несколько:
-
Это нравится изучать латынь, чтобы лучше понимать английский. Многие языки были смоделированы по синтаксису и конструкциям, например, на С#, Java, JavaScript и т.д. Подбирая С++ или по крайней мере C, вы начнете, обучая вас общему знаменателю между всеми этими языками.
-
Понимание того, что абстрагируется от вас на других языках (указатели, базовые структуры данных, сбор мусора), теоретически делает вас лучшим программистом, даже если вы не напрямую разбираетесь в деталях.
-
Это происходит не каждый день, но в один прекрасный день вам нужно будет напрямую подключиться к API-интерфейсу С++ с вашего языка высокого уровня. Это поможет, если у вас есть хотя бы пассивное знание С++, когда это произойдет.
-
С++ в вашем резюме часто может привести к Заработку ++. Это просто уважают как более хардкорный язык.
-
Я часто вижу, что С++ используется как общий язык между программистами, которые работают на разных языках, и в книгах по программированию, которые пытаются быть агностиками языка (Code Complete). Знание С++ открывает доступ к гораздо большему количеству учебных материалов.
Кстати: я написал быстро статью в блоге в ответ на этот вопрос, который идет немного подробнее.
Ответ 3
Я сделаю противоположную позицию. Не изучайте С++, это пустая трата времени. Если у вас нет неотложной и неотложной необходимости в этом, ваше время было бы лучше потрачено в другом месте. Лучшим выбором языка для карьерных планов дальнего действия может быть хинди, урду, китайский или русский.
Извините, что в мире есть чему поучиться, чем вы можете узнать, и вскоре вам понадобится выбрать свои области невежества. На этом этапе С++ можно безопасно игнорировать (опять же, в зависимости от непосредственных потребностей). Вместо того, чтобы создавать свой набор инструментов, почему бы не создать что-то с ним? Это образование само по себе.
Ответ 4
Некоторые другие причины здесь:
- Почти все книги в области науки и техники имеют свои образцы кода, написанные на C/С++.
Известно, что компиляторы
- C/С++ создают более эффективный машинный код, чем любые другие компиляторы (возможно, fortran может быть исключением).
- Есть миллиарды строк кода, уже написанных на С++. Ваши возможности для повторного использования кода огромны!
- Много книг, форумов, онлайн-контента о языке.
- Хорошо определенный стандарт ИСО, который время от времени обновляется группой экспертов. (Это не "замороженный" язык).
- Поддерживается на большинстве платформ, от микроконтроллеров (на самом деле C-языка) до сотовых телефонов.
- Практически все оперативные системы закодированы в C s
Ответ 5
Это должно быть дубликат чего-то...
Вы должны изучить С++, потому что он очень часто используется, он эффективен, он является основой многих других языков в общем использовании, а также потому, что опасно осознание С++.
Ответ 6
Сначала узнайте C. Затем изучите С++, чтобы оценить силу. Затем изучите язык более высокого уровня. Возможно, вы даже захотите изучить очень небольшое количество ассемблера, прежде чем начать с C. Да, это звучит как много работы, но... хорошо, что это большая работа. К счастью, это приятная работа.:) Дело не в том, чтобы стать экспертом в сборке, C и С++. Суть заключается в том, чтобы понять, как красивые блестящие языки делают что-то внутренне, что определенно сделает вас лучшим разработчиком.
Также см. https://stackoverflow.com/questions/296/should-i-learn-c
Ответ 7
Вы должны это изучить, если вас интересуют высокопроизводительные вычисления в режиме реального времени. С++ гораздо более выразителен, чем C, и еще эффективнее всех других языков. Это правильный язык, если вы хотите максимально использовать доступные ресурсы.
Учитывая эту задачу, я также считаю, что это намного интереснее, чем, например, Java или Objective-C:) Это требует многого, чтобы добиться успеха, но награда велика. Это выразительный язык, и программисту дают отличный контроль над тем, что происходит.
ОБНОВЛЕНИЕ: Еще одна причина, почему С++ - это очень кросс-платформенный. Он используется почти везде - ПК, Mac, Xbox 360, PS3, сотовые телефоны, встроенные... вы называете это. Таким образом, вы можете использовать свои навыки практически на любой платформе, которая вам нравится. В отличие от многих других языков, которые часто полезны только для одной платформы.
Ответ 8
Ответы на этот вопрос содержат много причин: В каком секторе индустрии программного обеспечения используется С++
Ответ 9
Изучая язык более низкого уровня, такой как С++, вы узнаете основные понятия, такие как:
- Управление памятью
- Указатели
- Опыт кодирования без "богатых" встроенных библиотек (по сравнению с: Java API,.NET Framework)
Как только у вас будет опыт работы на более низком уровне, вы сможете лучше понять, как платформы более высокого уровня работают "под капотом". В долгосрочной перспективе это поможет сделать вас лучшим разработчиком в Ruby, Python, Java и т.д.
Ответ 10
По одной причине, он очень широко используется в мире программирования. С другой стороны, это интеллектуальный предшественник двух других основных языков, Java и С#. Таким образом, С++ и методы, непосредственно полученные из С++, используются в очень высокой пропорции профессиональных проектов в мире Software Engineering (у меня нет точных nubmers, но я бы сказал, что более 50%).
Ответ 11
Для любого достаточно опытного разработчика программного обеспечения, изучение нового статически типизированного объектно-ориентированного языка должно быть куском пирога. Основная трудность в изучении нового языка - это изучение основного API-интерфейса среды программирования, в которой вы находитесь. Для С++ это очень просто, STL довольно мала, и, насколько я знаю, С++ не включает в себя какие-либо другие стандартных библиотек.
Некоторые из наиболее важных причин для изучения С++:
- Общие сведения об управлении памятью и использовании указателя.
- Изобретение собственной иерархии классов вместо того, чтобы полагаться на предварительно упакованные библиотеки от вашего поставщика языка.
- Изучение способов использования шаблонов и общих принципов программирования.
Я думаю, что последнее особенно важно. Ни один другой язык (по крайней мере, языки, которые я использовал) не имеет общего программирования, как С++. Alexandrescu - это, безусловно, достойная книга, чтобы понять, хотите ли вы понять силу С++.
Ответ 12
Причина, по которой большинство людей говорит, что С++ - это то, что обычно было наиболее распространенным в колледжах. Лучшим советом, который я могу дать, является не изучение одного языка, а изучение нескольких языков одновременно. Если вы действительно занимаетесь новичком, С++ отлично, но по существу не очень отличается концептуально от других языков. Я ни в коем случае не "мастер-программист", но я бы подумал, что хозяин не стал бы дышать, ограничив свои знания одним языком.
Ответ 13
Мнение: Вам не нужно знать, что С++ - программист.
Однако, если вы не понимаете основные понятия и соображения дизайна С++, вы не должны программировать.
Примерами являются указатели, как высокоуровневые и низкоуровневые абстракции, управление памятью, стек, временные и т.д. Без этого вы не сможете понять, что на самом деле происходит под капотом в сложной программе, независимо от языка.
Аналогично, вам не нужно знать тригонометрию для создания базы данных. Но вы никогда не найдете хорошего конструктора баз данных, который не сможет доказать cos(b-a)=cosb*cosa-sinb*sina
через 10 минут. Удостоверьтесь, что Деннис Ритчи знал сложное исчисление, когда он проектировал С, и каждый хороший окулист знает, что такое поляризация света, даже если он точно не использует его.
Ответ 14
Это зависит от того, как вы определяете "изучение языка".
Синтаксис обучения С++ - это основной вопрос написания нескольких практических приложений и чтения блогов и форумов (и, безусловно, Qaru (:).
Затем вы узнаете другие структуры, такие как указатели, классы... написание их - шаг вперед от базового синтаксиса.
Затем появляются структуры данных, и я верю, что именно здесь встречается хардкорность С++: реализация в коде обычно похожа на то, как вы должны писать алгоритм в общем псевдокоде. Дело в том, что вы, как правило, должны выполнять их, что делает необходимым, чтобы вы знали почти каждую деталь абстрактной структуры данных - вопреки тому, как все работает на языках со структурами, такими как хэш-таблицы, связанные списки и т.д. p >
Владение языком высокого уровня может сделать вас программистом, но "знание" С++ в этом аспекте позволит вам осознать, что вы делали во всех программах, которые вы кодировали. Могут быть люди, которые выдвинут аргумент "если вы хотите знать, что вы делаете, изучите сборку" - я не знаю сборки (пока), поэтому я не смогу ответить, но я все равно скажем, что С++ несколько более "обучаемый".
И тогда есть разные библиотеки, все с их плюсами и минусами, все из которых постоянно развиваются дальше... так что "обучение С++" на самом деле не является процессом, который вы когда-либо достигнете конца:)
Ответ 15
Я бы сказал, что основным преимуществом является изучение управления памятью и указателей. Имейте в виду, что есть много преимуществ в понимании того, как обрабатывается память, независимо от того, на каком языке (даже на оборудованных GC языках). Вы просто не получаете этого опыта с большинством других основных языков.
Ответ 16
Многие из более новых языков, таких как Java и С#, имеют корни в С++. Изучая С++, вы получите опыт работы со многими концепциями, которые абстрагируются на более новых языках. Это позволит вам ценить более новые языки намного больше. Такие вещи, как управление памятью, очень тривиальны в Java/С#, но задумайтесь и проявите терпение, чтобы правильно реализовать на С++.
Ответ 17
Это зависит от того, что вы планируете делать с ним.
Языки - это инструменты в ящике инструментов. Выберите подходящую для работы.
- Разработка Windows: С#
- Разработка UNIX: С++ или Java
- Разработка OS X: Objective C или REAL Basic
В конце концов это решение. Я уверен, что кто-то будет оспаривать предыдущий список. Это мнение, а не евангелие.
:)
Ответ 18
Думаю, вам нужно определить "научиться". Означает ли это учебник, и все готово? Означает ли это создание приложения (какой?)? Те же самые люди, которые говорят вам, должны научиться С++ использовать его в разных приложениях. Следующий шаг: "Вы должны научиться делать подобные приложения..."
Я думаю, что вы можете просто чувствовать себя неполным без него и увлекаться рекламой "реальных" программистов.
Ответ 19
Еще одна причина узнать это - понять, почему так много людей любят/ненавидят его. Вместо того, чтобы взять на себя свое слово, изучите его сами, чтобы лучше понять ценности и проблемы, с которыми эти люди сталкиваются с языком. У него наверняка есть поклонники и скептики.
Лично, использовав его, у него есть некоторые действительно приятные аспекты для моей работы, но, оставив его позади, я не пропущу его.
Ответ 20
Я бы сказал, учиться С++, потому что "это лучше C". C - это язык системного программирования, поэтому, если вы планируете это делать, вам нужно знать C/С++.
Питер Норвиг блестяще "Научите себя программировать за десять лет" , независимо от того, каким путем вы решите пойти.
С другой стороны, может быть, лучшая причина, чтобы научиться этому - убедить этих людей прекратить рассказывать вам, что делать. 8)
Ответ 21
Если у вас есть серьезное намерение стать профессиональным разработчиком высокого качества, а не просто быть любителем, веб-дизайнером или младшим разработчиком, то я бы предложил изучить С++.
Аналогия: если вы строите дом без хороших, прочных фундаментов, он может стоять на год или два года, но в какой-то момент он упадет. Если, однако, вы строите дом с приличными основаниями, даже если вы никогда не сможете снова взглянуть на эти фонды в своей жизни, вы можете гарантировать, что ваш дом будет структурно обоснованным и может заниматься вашим бизнесом, не беспокоясь о том, что он падает вокруг вас. Разработчики, начинающие с языка высокого уровня, такие как С# или Java, строят свой дом без фундамента.
Ответ 22
Потому что это повысит ваше качество как программиста (в случае, если это вас беспокоит).
Еще одно замечание - более свежие языки более абстрактны. Более старые языки говорят ближе к языку использования ЦП (для меня С++ кажется историей (ни о чем не обижайтесь)).
Например, я начал писать код в ASP.NET. Изучение HTTP и HTML дало мне представление о том, что делает ASP.NET за кулисами, поэтому - я могу лучше контролировать его.
Заключение - вам нужно понять абстракцию от того, из чего все сделано.
И не забывайте, что С++ - это абстракция, построенная из чего-то еще.
Ответ 23
Вам не нужно заботиться о С++. Попробуйте что-то новое, например С#, ruby, python и лучше всего, заботиться о шаблоне проектирования и методологии работы. Это приведет вас к небу!
Ответ 24
Одной из причин обучения программированию на С++ может быть предотвращение распространения модификации, расширения и внедрения новых технологических идей, связанных с другими проприетарными языками, такими как С# и Java.
Сколько графических интерфейсов вы видели с помощью java и С# за последние 12 лет? Многочисленные.
Сколько новых понятий вы видели с ними за последние 12 лет? Многочисленные.
Не может ли кто-нибудь жить своей жизнью без .NET или Java? Совершенно верно.