新しい言語を学習するとき、ある言語に100%専念し、それを「習得」して別の言語に移動するのを待つか、同時に異なる言語の学習に取り組む方が良いでしょうか。
問題があれば、私は現在C ++を学んでおり、JavaとPythonも知りたいです。
新しい言語を学習するとき、ある言語に100%専念し、それを「習得」して別の言語に移動するのを待つか、同時に異なる言語の学習に取り組む方が良いでしょうか。
問題があれば、私は現在C ++を学んでおり、JavaとPythonも知りたいです。
回答:
一度に複数の言語を学習することに問題が見られないだけでなく、ある言語の何かが別の言語の問題領域を解決する可能性があるという点で、あなたに直接利益をもたらすと思います。たとえば、私の主な言語はC#であり、LINQを扱うときはSQL形式を使用しました(これはまったく問題ありませんが、「クールな方法」とは思えませんでした)。正直なところ、私はラムダを理解していなかったため、ラムダから離れました。また、私が見たC#のドキュメントは、明確な定義を提供していませんでした(私にとって)。それから私はF#に関するいくつかの本を取り上げ始め、それを学び始めました。それは、ラムダがどのようになっているかを理解する「あはは!」の瞬間を与えてくれました。
他の言語(およびフレームワーク)でより多くの経験を積むにつれて、C#(およびASP.Net)の方が良くなっていることがわかりました。だから、一度に複数の言語を学ぶことは決して悪いことではないと信じています!
それがあなたの第一言語であるなら、プログラミング言語がどのように機能するかを理解するのに十分それを学ぶ方が良いと思います。
良い基礎ができたら、好きなだけ選ぶことができます。
プログラマーにとって重要なスキルは、新しいプログラミング言語を学ぶ能力だと思います。そのため、最初に単一の言語を学習してから、他の言語を追加することをお勧めします。
あなたの第一言語がどんな言語であっても、追加の言語を学習するプロセスは次のとおりです。
時間をかけて言語を蓄積していくと、独自の内部抽象擬似コード言語を作成して、知っている言語間の翻訳に役立てることができます。この内部言語は、新しい言語をすばやく学習するために使用するフレームワークです。
一度に複数の言語を学習するのに問題はありません。実際、言語を真にマスターすることは決してないので、実際には、複数の言語で作業するときはいつでも、両方の言語を学んでいるでしょう。
2つの言語を混同しないようにするために、1つの言語に集中して基本を習得することもできます。これは、JavaやC#などの類似の言語を学習している場合に特に当てはまります。
私は数年前からプログラミングを教えてきましたので、私の経験を皆さんと共有できます。私はC#があなたの第一言語だと思うので、これまでプログラミングしたことがない人にプログラミングを教えた私の経験は役に立つかもしれません。
まず第一に、複数の言語を学ぶことはすべてのベテランのプログラマーがすべきことであることを話しましょう。しかし、これは、始めたばかりの場合に複数の言語を同時に学ぶ必要があるという意味ではありません。
長年にわたり、学生は言語が頭の中で(少なくとも最初のもの)固まるのに約1年、時にはもう少し、時には少し少なくなることを示してきました。1年で複数の言語を教えようとすると、生徒はそれらを混同し、概念と言語を混同する傾向があります。生徒は進歩しますが、後で取り除くのが難しい多くの悪い習慣になります。自分で学習している場合、このリスクは高くなります。
ただし、2つの言語を非常に異なる構文で教えると役立つことがわかりました。2つのプログラミング言語が実際に異なるように見える場合、お互いを汚染することなく、それらを実際に異なるエンティティとして見ることができます。(あるプログラミング言語が別の言語で難しい概念を理解するのを助けるとき、それは良いです;ある言語があなたに別の言語で悪いコードを書くようにするとき、それは悪いです)。
したがって、最初の1年間は1つのプログラミング言語に固執することをお勧めします。または、2つの言語が非常に異なる/見た目が異なる限り、同時に学習することをお勧めします。あなたの最初の言語がC#である場合、私はC、C ++、Objective C、およびJavaを避けます。おそらくPython、Ruby、およびJavascript。Haskell、Scheme、F#、Erlang、Clojure、またはScalaなどの関数型言語とC#を組み合わせることをお勧めします。
複数の言語を一度に学習する方が、実際に一度に1つの言語を学習するよりも優れていると思います。言語が十分に異なる場合、それぞれが他の言語から休憩できるからです。前のステージの「絶対初心者」ステージを通過したら、新しいステージで開始するように、それらをずらしてみてください。これにより、言語について学んだことだけでなく、新しい言語を学んだ方法を保持できる可能性がはるかに高くなります。(一般的な言語学習スキルは、プログラミングの後半で非常に感謝するものです。)
とはいえ、母国語を習得するには時間とエネルギーの多大な投資が必要であり、このプロセスの間に別の大きなプロジェクトに取り組む時間がないかもしれません。C ++にうんざりしているために別の言語を開始することを考えている場合は、しないでください。先延ばしになります。(たとえば)Javaで書かれたプロジェクトの言及を見続けるために別の言語を開始することを考えていて、コードを簡単に読んだり分析したりできないことにイライラしている場合 これは、いつでも別の言語を学ぶ大きな理由です。
複数の言語を同時に学習すると、明らかに特定の言語を学習するのに時間がかかることがわかりました(実際に言うまでもなく)。しかし、私の場合は、どの言語を好み、最も好きなコーディングのスタイルを決めることができました。
私の場合、C#から始めて、PythonとF#を使い始めました。私はScalaとClojureを試すようになったF#の機能的なスタイルが本当に好きでした。今、これらすべての言語を習得しているため、私はScalaが私がしていることにぴったりであることがわかりました。さらに、私はOOPと機能スタイルに本当に自信があり、複数の言語を適切に読み書きできます。持っているのは素晴らしいスキルです。