複数の言語を同時に学習する[終了]


35

新しい言語を学習するとき、ある言語に100%専念し、それを「習得」して別の言語に移動するのを待つか、同時に異なる言語の学習に取り組む方が良いでしょうか。

問題があれば、私は現在C ++を学んでおり、JavaとPythonも知りたいです。


12
多くの場合、100%の流encyさはありません。Jon SkeetもEric LippertもC#の100%を知らない。
ジョブ


3
言語を学ぶのではなく、言語を使用して特定のプログラムを実装する方法を学びます。つまり、プログラマーであれば、使用する言語は関係ありません。同じ結果を得ることができます。さらに悪いことに、ある言語を別の言語に「学習」させるとすぐに、前の言語を忘れてしまいます。

両方の言語を本当に学習する限り。
Tulainsコルドバ

@Maxpmあなたが一度に学習マルチラングとあなたの経験...だったか教えてもらえます
ラーフルパティル

回答:


31

一度に複数の言語を学習することに問題が見られないだけでなく、ある言語の何かが別の言語の問題領域を解決する可能性があるという点で、あなたに直接利益をもたらすと思います。たとえば、私の主な言語はC#であり、LINQを扱うときはSQL形式を使用しました(これはまったく問題ありませんが、「クールな方法」とは思えませんでした)。正直なところ、私はラムダを理解していなかったため、ラムダから離れました。また、私が見たC#のドキュメントは、明確な定義を提供していませんでした(私にとって)。それから私はF#に関するいくつかの本を取り上げ始め、それを学び始めました。それは、ラムダがどのようになっているかを理解する「あはは!」の瞬間を与えてくれました。

他の言語(およびフレームワーク)でより多くの経験を積むにつれて、C#(およびASP.Net)の方が良くなっていることがわかりました。だから、一度に複数の言語を学ぶことは決して悪いことではないと信じています!


1
私は完全に同意し、C#から始めました。私がその言語で出会った多くのことは、初心者の観点からは把握するのが非常に困難であり、私がそれらを理解した場合、それらが何のためであり、なぜ使用されたかを理解することも同様に困難でした。それ以来、私は他のいくつかの言語について学び、それが世界に大きな違いをもたらしました。特に、言語はそれぞれ異なるため、プログラミングのさまざまな側面を各言語から学ぶことができます。
fender1901

49

それがあなたの第一言語であるなら、プログラミング言語がどのように機能するかを理解するのに十分それを学ぶ方が良いと思います。

良い基礎ができたら、好きなだけ選ぶことができます。


2
+1最初の3つの言語と4番目、5番目、6番目などの言語を学習しているかどうかは大きな違いになると思います。
keithjgrant

12

プログラマーにとって重要なスキルは、新しいプログラミング言語を学ぶ能力だと思います。そのため、最初に単一の言語を学習してから、他の言語を追加することをお勧めします。

あなたの第一言語がどんな言語であっても、追加の言語を学習するプロセスは次のとおりです。

  • 新しい言語の適切な構文リファレンスを見つけます
  • 新しい言語の長所を特定します。新しい言語でコードを作成するのではなく、既に知っている言語で作成します(アクセント付きのプログラミング)
  • 以前に使用したことがある以前の言語にマップされない新しい言語の領域を探索する
  • コード例を探し、それらを確認せずに、同じことを最初からコーディングして、実装が例とどのように異なるかを確認してください

時間をかけて言語を蓄積していくと、独自の内部抽象擬似コード言語を作成して、知っている言語間の翻訳に役立てることができます。この内部言語は、新しい言語をすばやく学習するために使用するフレームワークです。


1
「新しい言語の長所を特定してください...」の+1。非常にいい
ニックバーンズ

8

並行して言語を学習することはごく普通のことです。たとえば、Webプログラミング。サーバー側(php、java、.net、ruby、python ...)、クライアントコード(javaスクリプトおよびhtml)、データベース(sql)の少なくとも3つの言語を扱っています。


プログラミング言語htmlsqlありません。
エイド

文字lは言語を表す
ボリスパブロビッチ

7

一度に複数の言語を学習するのに問題はありません。実際、言語を真にマスターすることは決してないので、実際には、複数の言語で作業するときはいつでも、両方の言語を学んでいるでしょう。

2つの言語を混同しないようにするために、1つの言語に集中して基本を習得することもできます。これは、JavaやC#などの類似の言語を学習している場合に特に当てはまります。


JavaScript / Pythonは違いがあるため、良い選択かもしれません。例として。
ニックインディアナンス

6

私は数年前からプログラミングを教えてきましたので、私の経験を皆さんと共有できます。私はC#があなたの第一言語だと思うので、これまでプログラミングしたことがない人にプログラミングを教えた私の経験は役に立つかもしれません。

まず第一に、複数の言語を学ぶことはすべてのベテランのプログラマーがすべきことであることを話しましょう。しかし、これは、始めたばかりの場合に複数の言語を同時に学ぶ必要があるという意味ではありません。

長年にわたり、学生は言語が頭の中で(少なくとも最初のもの)固まるのに約1年、時にはもう少し、時には少し少なくなることを示してきました。1年で複数の言語を教えようとすると、生徒はそれらを混同し、概念と言語を混同する傾向があります。生徒は進歩しますが、後で取り除くのが難しい多くの悪い習慣になります。自分で学習している場合、このリスクは高くなります。

ただし、2つの言語を非常に異なる構文で教えると役立つことがわかりました。2つのプログラミング言語実際に異なるように見える場合、お互いを汚染することなく、それらを実際に異なるエンティティとして見ることができます。(あるプログラミング言語が別の言語で難しい概念を理解するのを助けるとき、それは良いです;ある言語があなたに別の言語で悪いコードを書くようにするとき、それは悪いです)。

したがって、最初の1年間は1つのプログラミング言語に固執することをお勧めします。または、2つの言語が非常に異なる/見た目が異なる限り、同時に学習することをお勧めします。あなたの最初の言語がC#である場合、私はC、C ++、Objective C、およびJavaを避けます。おそらくPython、Ruby、およびJavascript。Haskell、Scheme、F#、Erlang、Clojure、またはScalaなどの関数型言語とC#を組み合わせることをお勧めします。


5

複数の言語を一度に学習する方が、実際に一度に1つの言語を学習するよりも優れていると思います。言語が十分に異なる場合、それぞれが他の言語から休憩できるからです。前のステージの「絶対初心者」ステージを通過したら、新しいステージで開始するように、それらをずらしてみてください。これにより、言語について学んだことだけでなく、新しい言語を学んだ方法を保持できる可能性がはるかに高くなります。(一般的な言語学習スキルは、プログラミングの後半で非常に感謝するものです。)

とはいえ、母国語を習得するには時間とエネルギーの多大な投資が必要であり、このプロセスの間に別の大きなプロジェクトに取り組む時間がないかもしれません。C ++にうんざりしているために別の言語を開始することを考えている場合は、しないでください。先延ばしになります。(たとえば)Javaで書かれたプロジェクトの言及を見続けるために別の言語を開始することを考えていて、コードを簡単に読んだり分析したりできないことにイライラしている場合 これは、いつでも別の言語を学ぶ大きな理由です。


2

複数の言語を同時に学習すると、明らかに特定の言語を学習するのに時間がかかることがわかりました(実際に言うまでもなく)。しかし、私の場合は、どの言語を好み、最も好きなコーディングのスタイルを決めることができました。

私の場合、C#から始めて、PythonとF#を使い始めました。私はScalaとClojureを試すようになったF#の機能的なスタイルが本当に好きでした。今、これらすべての言語を習得しているため、私はScalaが私がしていることにぴったりであることがわかりました。さらに、私はOOPと機能スタイルに本当に自信があり、複数の言語を適切に読み書きできます。持っているのは素晴らしいスキルです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.