情報
Dao Wei
プログラマーにとって、この急速な変化の時代において、1 つのプログラミング言語に固執することはおそらく非現実的です。
ある言語に習熟した後、突然別の言語で別のプロジェクトを作成する必要が生じるには、必ず何らかの理由があります。
多くのプログラマーは、新しいプログラミング言語を使い始めるときに、いくつかの共通の困難に遭遇するでしょう。たとえば、古い言語の習慣に慣れていると、新しい言語を使用するときに混乱してしまい、使用中に当惑してしまいます。
さらに、十分なスキルを持たず、アナロジーを使用して新しい言語の関節を広げたいと考えているプログラマは、しばらくの間途方に暮れるでしょう。
まだ倒れないでください。
新旧プログラミング言語を行き来するための武術秘伝の本です。ホリデー価格は 1 冊 5 セントです。ぜひ読んでみてください。
この問題を解決するために、ノースカロライナ州立大学 (NCSU) の 3 人のエンジニアが良い解決策を考え出しました。
彼らの論文の 1 つでは、学習転移に基づいた方法を提案し、アナロジー学習のアイデアを借用して、プログラマーが新しい言語をより速く学習できるようにする学習ツールを作成しました。
経験豊富なプログラマーが一般的に使用する類似学習方法は、新しいスキルを習得するのに適した方法です。プログラミング言語間の共通点を利用して類推することで、新しい言語のスキルを習得しやすくなります。
平たく言えば、既存の知識を活用して新たな知識を学ぶことです。
武侠小説のような、技術のない者でも容易に魔法のスキルが発現するような設定とは異なる。この方法では、より多くのプログラミング言語を習得すればするほど、推論を行う可能性が高くなります。
ただし、類似学習方法は、経験の少ない新人プログラマー、特に 1 つまたは 2 つのプログラミング言語をマスターしたばかりのプログラマーにとってはあまり使いやすいものではありません。十分なサンプルがないため、新しい言語と得意な言語との共通点を見つけるのが困難です。したがって、新しい言語に直面すると、常に頻繁に「壁にぶつかる」ことになります。
例えば、プロセス指向言語(C言語など)に慣れている人がオブジェクト指向言語(C++など)を学習するのは非常に困難です。 2 つの言語の考え方は大きく異なるため、類似した学習方法を使用して学習を推定することは困難です。
別の例として、VB プログラマーが ASP を学ぶのは非常に困難です。 1 つは C/S (クライアント/サーバー、クライアント/サーバー) アーキテクチャであり、もう 1 つは B/S (ブラウザ/サーバー、ブラウザ/サーバー) アーキテクチャであるためです。
この 2 つは構文的には似ていますが、アーキテクチャ上のギャップは大きく、経験の浅いプログラマーが類推学習を使用して飛躍を達成することは困難です。
さらに、新しい言語を学習した後、それを実際に適用するときに次の問題に直面することもあります。
複数の言語を学習した後、文法が混同され、同じ意味で使用されることがよくあります。たとえば、終了文字として「;」を使用する言語もあれば、「キャリッジ リターン」を使用する言語もあります。得意な言語が「;」で終わっていると、惰性思考で修正するのが難しくなります。
exe プログラムをコンパイルした後、すべてをすぐに実行できるわけではありません。言語によっては追加の構成が必要になる場合があります。たとえば、C 言語で書かれたプログラムは通常直接実行できますが、VFP で書かれたプログラムは VFP システムの DLL コンポーネントをインストールする必要があるため、VFP プログラムをインストール ディスクにインストールする必要があります。 C 言語に慣れているプログラマは、初めて VFP に直面したときにキーボードを落としたくなるかもしれません。
言語に関わる呼び出し関数は共通の方法ですが、言語が異なれば使用する関数も異なります。したがって、新しい言語を使い始めるとき、プログラマは新しい言語がどのように呼ばれるかに細心の注意を払う必要があります。
ほとんどの場合、熟練したプログラマーは経験に頼ってこれらの問題を解決できますが、初心者のプログラマーは絶望的な場合があります。
初心者プログラマーが類推学習方法を習得し、新しい言語の応用プロセスで発生する問題を解決するのを助けるために、ノースカロライナ州立大学の 3 人のエンジニアによって開発された学習ツール Transfer Tutor は、非常に優れた支援効果を発揮します。
このツールを使用すると、ユーザーは古い言語と新しい言語の共通点を見つけて、新しい言語によりよく適応できるようになります。ただし、このツールは現在有料です。
このアルゴリズムが使用する基本原理は、2 つの言語の違いを文ごとに識別し、比較とプロンプトを通じて新しい言語の学習と使用の困難を軽減することです。次の 3 種類の構文移行が定義されています。
新旧言語の詳細な説明を通じて、2つの言語の違いを明確にし、新しい言語を理解する際に他の言語の干渉によって引き起こされる間違いを回避できます。
2 つの言語間の共通要素を見つけることで、ユーザーは類推を通じて新しい言語をすぐに理解できるようになり、学習効率が向上します。
新しい言語の独特な文法については、Transfer Tutor が詳細な説明と例を提供して、覚えて学習時間を短縮できるようにします。
一般的な Python 言語と R 言語を例として、このツールがどのように機能するかを見てみましょう。
Python 言語と R 言語に詳しい人は、Python 言語と R 言語の間に類似点があることを知っているでしょうが、相違点もあります。
たとえば、テーブルを選択する場合、Python では行の選択に演算子「[ ]」が使用されますが、R 言語では列の選択に「,」を追加して行を選択する必要があります。インターセプトする場合、Python の添え字は 0 から始まる開区間 (つまり [0:5] 、結果は 0-4) ですが、R 言語では 1 から始まる閉区間 (つまり [1:5] 、結果は 0-4) になります。結果は 1 ~ 5 を選択することになります)。
Transfer Tutor は、この 2 つの間の障壁を取り除くのにどのように役立ちますか?
まず、Transfer Tutor は、Python と R 言語の類似した要素をすべてマークし、それらを比較して表示します。それらをクリックすると、次の要素を入力できます。この要素ごとの比較表示方法により、ユーザーは重要な知識をすべて得ることができます。
次に、Transfer Tutor が、さまざまな言語間の違いと新しい構文について詳しく説明します。
最後に、Transfer Tutor のセルフチェック機能を使用して、新しい言語で書かれたコードをシングルステップでデバッグできます。学習結果の正しさを検証し、2 つの言語の違いを個別に説明するために使用されます。
実験的な操作プロセスから判断すると、このツールは Python の学習と R 言語への移行において非常に効率的であり、プログラマーは 2 つの言語について「1 つ購入すればもう 1 つを無料」で利用できます。
ただし、すべての言語に適用できるかどうかは、詳細な実践的な検証が必要です。しかし、現在、それは複数の言語の学習に使用できます。異なる言語に悩まされている人間にとって、それは川の向こう側に葦を残すこととみなすことができます。
AI プログラマーがいつ登場し、仏陀の光のように世界中でコードを入力する何千もの生き物を救うことができるようになるかについては、この問題はコードを入力する偉い人たちに尋ねる必要があります。 AIが突破されるってどういうこと?