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