web-dev-qa-db-ja.com

複数の言語を同時に学習する

新しい言語を学ぶとき、1つの言語に100%コミットし、それを「習得」して別の言語に移るまで待つか、同時に異なる言語の学習に取り組む方が良いですか?

それが重要な場合、私は現在C++を学習しています。JavaおよびPythonについても知りたいです。

36
Maxpm

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

他の言語(およびフレームワーク)での経験が増えるにつれて、C#(およびASP.Net)が得意になっていることがわかりました。だからこそ、一度に複数の言語を学ぶことは決して悪いことではないと思います。

31
Jetti

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

基盤が整ったら、好きなだけ選ぶことができます。

49
OscarRyz

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

最初の言語が何であれ、追加の言語を学習するプロセスは次のとおりです。

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

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

12
Jason Aller

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

8
Boris Pavlović

一度に複数の言語を学習するのに問題はありません。実際、言語を本当に習得することは決してないので、実際には、複数の言語で作業するときはいつでも、おそらく両方の言語を学習しています。

2つの言語が混同されないようにするために、基本を理解するために1つの言語に集中することをお勧めします。これは、JavaやC#などの同様の言語を学習している場合に特に当てはまります。

7
Paul Whitehurst

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

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

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

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

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

6
sergut

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

とはいえ、母国語を学ぶには時間とエネルギーの莫大な投資が必要であり、このプロセスの間に別の大きなプロジェクトに取り組む時間がないかもしれません。 C++にうんざりしているので別の言語を始めることを考えているなら-しないでください!それはあなたが先延ばしすることを奨励します。 (たとえば)Java)で記述されたプロジェクトについての言及が頻繁にあり、コードを簡単に読んだり分析したりできないことに不満を感じているので、別の言語の開始を考えている場合は、実行してください。これは、いつでも別の言語を学ぶ大きな理由です。

5
Arkaaito

複数の言語を同時に学習すると、1つの特定の言語を学習するのに明らかに時間がかかる可能性があることがわかりました(本当に言うまでもありません)。しかし、私の場合は、自分が好む言語と最も気に入っているコーディングスタイルを決定することができました。

私の場合、C#から始めて、PythonおよびF#に入りました。F=の機能的なスタイルがとても気に入ったので、ScalaおよびClojureを試しました。今はこれらすべての言語を学習したため、Scalaが自分の仕事に適していることがわかりました。さらに、OOPと機能的なスタイルに自信を持っていますいくつかの言語を上手に読み書きすることができますそれは素晴らしいスキルです.

2
Richard Todd