2010-03-31 6 views
5

Когда вы изучаете один язык, становится ли легче изучать второй язык и существуют ли пары языков, которые идут вместе? Кроме того, это даже хорошая идея, чтобы узнать больше, чем один язык?Изучение нескольких языков

ответ

19

Изучение более одного языка является отличная идея - не только делает это даст вам, что гораздо больше гибкости в поиске работы & с, но это просто расширяет свой ум, ваше видение что программирование все о.

Второй язык часто бывает самым сложным - потому что ваш первый язык сделал так много, чтобы сформировать ваше мышление и работать при программировании. Самым сложным случаем является то, что два языка поверхностно похожи, но имеют глубокие, тонкие отличия: действительно трудно воспринимать, понимать и изучать тонкие различия, поскольку поверхностное сходство ослепляет вас.

Если вы освоите два языка, которые находятся далеко друг от друга, третий будет проще ... и после этого станет легче и проще. Большая пара языков для начала - это язык очень высокого уровня (например, Ruby или Python) и один довольно низкий уровень (особенно C); однако, функциональный язык, такой как Haskell, и тот, который является самой антитезой функциональности, такой как Java, также должен работать почти так же.

+2

Рекомендация по изучению языков, которые очень разные, хороша сама по себе. Многие люди просто изучают много очень похожих языков, и даже после того, как они узнали все тонкие различия между ними, они не изучили разные способы ведения дел. (Например, люди, которые знают множество языков высокого уровня, по-прежнему очень запутаны низкоуровневыми функциями, или объектно-ориентированные программисты чувствуют, что их ноги были отрезаны, когда они вынуждены писать функциональный код.) – Chuck

+0

Также знаю [(почему) Должен ли я изучать новый язык программирования?] (Http://programmers.stackexchange.com/questions/136133/why-should-i-learn-a-new-programming-language) – stom

3

Я думаю, что более важно изучать понятия, а не синтаксис языка. Говоря это, чтобы по-настоящему овладеть языком, у вас часто бывают болезненные приемы с его ошибками. Кроме того, некоторые языки могут предоставлять библиотечную поддержку, которая лучше подходит для решения конкретных проблем. Желательно изучение нескольких языков; вы не играете в гольф только с одним клубом, не так ли?

2
  1. Да, если вы знаете один язык очень хорошо, вам легче освоить другие языки, потому что вы можете сопоставить методы, которые вы знаете, с разными синтаксисами на другом языке. Это предполагает, что оба языка сопоставимы. Например, C++ не будет сравнивать чисто с Ruby.
  2. Это определенно хорошая идея изучить несколько языков. Чем больше языков вы узнаете, тем шире ваш опыт. В конце концов вы начинаете понимать различия в базовой архитектуре и дизайне между языками и почему некоторые из них имеют преимущества перед другими для определенных задач программирования.
1

Да, да и да.

Изучая язык, вы изучаете многие основные принципы программирования, выраженные этим языком. Многие языки используют аналогичные концепции или даже одни и те же структуры и базовую структуру. Это может сделать изучение второго «похожего» языка очень простым. Например, если вы изучаете C#, VB.NET очень прост, так как он использует ту же структуру и те же базовые понятия.

Изучение разных языков, однако, также может заставлять вас учиться различным способам «думать» о проблеме. Это особенно верно, если вы переходите от статического типизированного языка к интерпретируемому языку или к функциональному языку программирования. Они заставят вас переосмыслить, как вы программируете, что может сделать вас лучшим программистом в целом.

3

Очень полезно знать более одного языка. Фактически, this very good book рекомендует учиться один год. Становится легче освоить новые языки, поскольку в них всегда есть перекрывающиеся понятия.

1

Поскольку вы изучаете больше языков, вы склонны думать о вещах с точки зрения концепций или изображений вместо конкретных особенностей вашего любимого языка. Определенно легче освоить третий или четвертый язык, чем ваш первый или второй, потому что вы уже понимаете многие концепции (и, возможно, синтаксис), демонстрируемые на новом языке. Это отличная идея, чтобы узнать больше языков.

1

Да, как только вы понимаете, как, чтобы разбить проблему, чтобы вы могли закодировать решение и что такое общие куски кода, а затем легче изучить другой язык. Некоторые из них сложнее других.

Изучение языков программирования хорош тем же способом, что и изучение нескольких реальных языков. Вы учитесь всему языку, что делает вас лучше в обоих. У вас также есть другой навык для продажи. Некоторые языки более применимы к определенным типам проблем ... знание большего количества языков позволяет вам лучше справляться с этими проблемами.

1

В большинстве случаев да. Как только вы поймете общую идею программирования, вы начнете собирать похожие шаблоны на разных языках. Особенно, если языки принадлежат к одному семейству или имеют один и тот же тип (например, после изучения C или C++ очень легко изучить Java, Javascript, C#, PHP и т. Д.). Конечно, им, вероятно, так же сложно овладеть ими, но вы быстро получите 90% вещей.

Для обучения, однако, гораздо лучше изучить 2 языка из разных семейств и с разными основаниями, такими как C и Haskell. Это расширит вашу перспективу и позволит вам придумать решения, которые находятся вне нормального настроя для этих языков.

1

Изучение разных языков учит вас думать по-разному. Эти шаблоны мыслей обычно можно использовать на любом языке, поэтому да, хорошо учиться более одного языка.

Это, как известно, знание 5 языков поверхностно никогда не будет таким же хорошим, как знание одного языка до костей. Опять же, если вы уже знаете одного до костей, зная еще 5, вы сможете созреть костный мозг.

Языки программирования, как правило, имеют очень мало слов, и большинство слов могут быть переведены на язык и с разных языков. Однако, изучая первый язык, наряду с изучением языка, вы должны научиться мыслить с точки зрения программирования. Второй язык намного проще, третий в равной степени, четвертый - прогулка в парке, кусок пирога, шестой кусок пирога в красивом маленьком кафе и т. Д., Вы получаете картину :)

/B2S

4

Повторяя все выше чувство, я решительно поддерживаю идею изучения нескольких языков, и получить высокую квалификацию, по крайней мере, два очень разных языков. На самом деле я думаю, что знание пяти языков поверхностно полезно, если оно вызывает ваше любопытство, чтобы узнать больше, но вы все равно должны овладеть более чем одним языком «до костей».

Ниже перечислены некоторые (неэксклюзивные) категории языков, которые вы можете рассмотреть.

  • Скомпилированный (C, C++, ...)/Интерпретированный (Perl, Ruby, Python, PHP, ...)/JIT (Java)
  • Высокого уровня/Низкий уровень
  • объектно-ориентированный/Процедурный/декларативный/Функциональная
  • Основаны/Experimental
  • Общие/специальное назначение/Domain Specific
  • строго типизированный/затягивая набран

Понимание компромиссов и философий за этими языками и их реализация обязательно сделают вас лучшим программистом. Конечно, может потребоваться время, чтобы поэкспериментировать со всеми из них и стать опытными в некоторых из них. Но опыт полезен, начиная даже на первом этапе, с немедленным удовлетворением и преимуществами, поэтому вам не следует отчаиваться от множества вариантов.

1

Много хорошего совета здесь. Я бы сделал второй, если не все.

Учитывая мой опыт, я бы предложил выбрать три языка. Я бы выбрал тот, который кажется наиболее доступным и полезным для изучения во-первых, и знакомство с синтаксисом достаточно хорошо, чтобы иметь возможность выявлять проблемы с существующим кодом, но не чувствуйте, что вам нужно, чтобы он освоился до такой степени, вы пишете эксперт, не содержащий ошибок код из памяти. Используйте свою документацию и ссылку как плавающее устройство во время работы и обучения. Потратьте больше времени на освоение концепций ... особенно отладки! И прыгай и попробуй, даже если то, что ты заводишь сначала, очень плохо или вообще не работает. (Я чувствую, что идеи, которые являются самыми прочными в моей голове, - это те, которые я почти убил, пытаясь исправить, а не учиться, тщательно изучая идеи, прежде чем пытаться закодировать.)

Как только у вас есть первый язык довольно хорош, переходите ко второму, возможно, к тому, где синтаксис как можно более отличается от первого. Этот подход заставил меня осознать концепции и подтвердил, что мне не нужно быть экспертом по синтаксису, чтобы выполнить работу. В конце концов, обычно есть тонны документации, учебников и дискуссий, доступных всем и каждому.

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

Если вы хотите быть чрезвычайно конкурентоспособным и доступным на рынке, вы можете выбрать свои языки на основе разнообразия: например, это хорошо для Интернета на стороне клиента, что хорошо для серверной стороны, и того, что хорошо для разработка платформы/устройства. Или, выберите языки, основанные на том, что вы знаете, что вам понравится здание. Я обнаружил, что это самое эффективное и интересное; то есть, если вы знаете, что вы фанатик игр, просто изучайте языки, которые позволят вам создавать и переносить надежные игры на разные платформы и держать свое внимание.

Наконец, не нажимайте на себя, сравнивая себя с другими разработчиками и чувствуя, что вы должны быть такими, как они, или узнать, что они сделали, так, как они это делали, так же быстро, как и они. Экспериментируйте и узнайте, что работает для вас и придерживайтесь его.

Только мои два цента. Удачи!

Смежные вопросы