Подтвердить что ты не робот

Почему я должен изучать С++

Все говорили мне изучать С++. Без искажения языков справа и слева, может кто-нибудь, пожалуйста, укажите некоторые веские причины, почему я должен изучать С++ сегодня?

Обратите внимание: я никоим образом не говорю ничего жесткого о С++. Я просто хочу знать, почему я должен осваивать его как программиста, а не другие мощные языки там.

4b9b3361

Ответ 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, сотовые телефоны, встроенные... вы называете это. Таким образом, вы можете использовать свои навыки практически на любой платформе, которая вам нравится. В отличие от многих других языков, которые часто полезны только для одной платформы.

Ответ 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? Совершенно верно.