Одновременное изучение нескольких языков [закрыто]

35

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

Если это имеет значение, я сейчас изучаю C ++, и я хотел бы также знать Java и Python.

Maxpm
источник
12
Часто не бывает 100% беглости. Ни Джон Скит, ни Эрик Липперт не знают 100% C #.
Работа
3
Не учите языки, учитесь использовать язык для реализации конкретной программы. То есть, если вы программист, то не имеет значения, какой язык вы используете, так как вы можете достичь того же результата. Хуже того, как только вы положите один язык, чтобы «выучить» другой, вы все равно начнете забывать предыдущий.
Пока вы действительно УЧИТЕ оба языка.
Тулаинс Кордова
@Maxpm. Не могли бы вы рассказать, как прошел ваш опыт изучения нескольких языков одновременно?
Рахул Патил

Ответы:

31

Мало того, что я не вижу проблемы с изучением нескольких языков одновременно, я думаю, что это может принести вам непосредственную пользу в том, что что-то на одном языке может очистить проблемную область, которую вы можете иметь на другом языке. Например, мой основной язык - C #, и когда я имел дело с LINQ, я использовал формат SQL (что хорошо, я его совсем не сбиваю, но это просто не выглядело как «крутой способ» это сделать). Я держался подальше от Lambdas, потому что, честно говоря, я их не понимал, и документация C #, которую я видел, не давала четкого определения (для меня). Затем я начал собирать некоторые книги по F # и начал изучать это, что дало мне «ах-ха!» Момент понимания того, каковы Лямбды.

Я обнаружил, что, поскольку я все больше сталкиваюсь с другими языками (и фреймворками), я стал лучше в C # (и ASP.Net). Вот почему я считаю, что изучение нескольких языков одновременно не так уж и плохо!

Jetti
источник
1
Я полностью согласен, и я также начал с C #. На этом языке я сталкивался со многими вещами, которые, с точки зрения моего новичка, было очень трудно понять, и если бы я понял их, понять, для чего они были нужны или почему их использовали, было так же сложно. С тех пор я узнал о паре других языков, и это имело все значение в мире. Тем более что каждый язык отличается, вы можете изучать разные аспекты программирования на каждом языке.
fender1901
49

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

Если у вас есть хорошая основа, вы можете выбрать столько, сколько захотите.

OscarRyz
источник
2
+1 Я думаю, что имеет большое значение, изучаете ли вы свои первые три языка против своего четвертого, пятого, шестого и т. Д.
keithjgrant
12

Я думаю, что важным навыком для программистов является способность изучать новые языки программирования. Поэтому я склонен предлагать сначала выучить один язык, а затем добавлять другие.

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

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

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

Джейсон Аллер
источник
1
+1 за «определить сильные стороны нового языка ...». Очень приятно
Ник Бернс
8

Параллельное изучение языков - нормальная вещь. Например, веб-программирование. Вы имеете дело как минимум с тремя языками: серверная (php, java, .net, ruby, python ...), клиентский код (java script и html), база данных (sql).

Борис Павлович
источник
ни , htmlни sqlязыки программирования.
aeid
буква l обозначает язык
Борис Павлович
7

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

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

Пол Уайтхерст
источник
JavaScript / Python может быть хорошим выбором в силу их различий. В качестве примера.
Ник Indiessance
6

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

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

За прошедшие годы студенты показали, что языку требуется около года для того, чтобы язык укрепился (по крайней мере, первый), иногда немного больше, иногда немного меньше. Если вы пытаетесь учить более одного языка за один год, студенты, как правило, смешивают их и путают понятия и языки. Несмотря на то, что студенты добиваются прогресса, у них появляется много вредных привычек, которые потом трудно отсеять. Если вы учитесь самостоятельно, этот риск выше.

Однако я заметил, что это полезно, если вы учите два языка с совершенно разным синтаксисом. Когда два языка программирования выглядят по- разному, это помогает уму видеть их как совершенно разные сущности, не загрязняя друг друга. (Когда один язык программирования помогает вам понять сложные понятия на другом языке, это хорошо; когда один язык заставляет вас писать плохой код на другом языке, это плохо).

Поэтому я рекомендую придерживаться одного языка программирования в течение вашего первого года. В качестве альтернативы может быть хорошей идеей изучать два языка одновременно, если они / выглядят очень по-разному. Если ваш первый язык - C #, я бы наверняка держался подальше от C, C ++, Objective C и Java; и, вероятно, Python, Ruby и Javascript. Я бы порекомендовал комбинировать C # с функциональным языком, таким как Haskell, Scheme, F #, Erlang, Clojure или, может быть, Scala.

sergut
источник
5

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

Тем не менее, изучение вашего первого языка требует огромных затрат времени и энергии, и у вас может просто не быть времени, чтобы заняться другим крупным проектом во время этого процесса. Если вы думаете о запуске другого языка, потому что устали от C ++ - не надо! Это побудит вас медлить. Если вы думаете о запуске другого языка, потому что продолжаете видеть упоминания о проектах, написанных на (скажем) Java, и вы разочарованы тем, что не можете легко прочитать и проанализировать код - делайте! Это отличная причина для изучения другого языка в любое время.

Arkaaito
источник
2

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

В моем случае я начал с C #, затем попал в Python и F #. Мне очень понравился функциональный стиль F #, который побудил меня попробовать Scala и Clojure. Теперь, благодаря изучению всех этих языков, я обнаружил, что Scala хорошо подходит для того, что я делаю. Кроме того, теперь я действительно уверен в ООП и функциональных стилях и могу грамотно читать и писать на нескольких языках. Это отличный навык, чтобы иметь.

Ричард Тодд
источник