新しい言語を学ぶのは早すぎますか?[閉まっている]


11

個人的な状況:私は大学で過去6か月間、正式にC ++を学んでいます。これに先立ち、私は1年間JavaScriptに手を出しました。今、私は1か月の休学中にPythonを学ぶことを検討しています。

学習プロセスの早い段階で焦点を分割することにより、学習の効率が低下しますか?C ++を続けて1か月過ごす必要がありますか?または、新しい言語を学ぶのに早すぎることはありませんか?


6
プログラミング全般を理解しているなら、新しい言語を学ぶことはあなたがより良いプログラマになるのに役立つはずです。あなたがプログラミングに不慣れで、フロー制御、データ型、関数/メソッドなどのようなものを把握していないなら、私は他の言語を学ぶのを待つでしょう。
マフィンマン

私はあなたが言及したすべてのものでC ++に非常に満足しています。
予想

1
あなたの質問を視点に入れます。大学に入学してから最初の6か月以内に、5つの異なるプログラミング言語にすでに触れていました。アセンブリ(以前のMotoプラットフォームを忘れていた)、C、C ++、Visual Basic 6、およびJava。その後、基本、C#、Visual Basic .NET、x86アセンブリについて学びました。大学卒業後、最初の2年間で少なくとも5つの追加プログラミング言語を学びました。
ラムハウンド

2
マルチタスクを行い、優先順位を付けて学習への規律あるアプローチをとることができる場合は、ぜひ第2言語を学習してください。通常、第一言語に焦点を合わせて習得するのが最善です。ただし、さまざまなプログラミングパラダイムを学ぶことも重要です。:私が何を意味するか確認するために、以下のリンクのプログラミングセクションを読んでどのようなすべてのコンピュータサイエンスの主要することがわかっているプログラマーズ・コンピテンシー・マトリックス
アンソニー・

回答:


8

Pythonでの私の経験は、hello worldよりも若干複雑なプレイコードに限られているため、これは特にPythonの詳細な答えにはなりませんが、次のように伝えることができます。

言語間の違いは詳細に構文のようにあり、特定の言語仕様は異なります(エラーの処理方法、I / O機能、コンパイラーが入力を実行可能なものに変換する方法など)が、C ++とPythonは同じ機能を提供しますパラダイムなので、問題解決は両方の言語でほぼ同じ方法で行うことができます。C ++とPythonはどちらも命令型でオブジェクト指向であるため、C ++で習得した問題解決手法を使用して新しい構文を習得した後、C ++に慣れていれば、おそらくPythonを非常に高速に習得するでしょう。必要に応じて、関数型プログラミングにもPythonを使用できますが、その部分には触れたことがないため、詳しく説明することはできません。

早すぎますか?私はあなたの話から決定的なyesまたはnoで本当に話すことができません。C ++で完全な(GUI)アプリケーションを作成するのに十分な自信がありますか?(つまり、ライブラリ、ジェネリックやテンプレートなどのより複雑な言語機能を使用します。)新しい言語パラダイムを学ぶことは、同じパラダイムファミリで新しい言語を学ぶよりもはるかに難しいと思います。新しいパラダイム領域に足を踏み入れると、そのパラダイムの問題を解決する方法についての良いアイデアを得るために、より多くの時間を費やす必要があります。OO言語間では、継承に対処する方法と、パフォーマンスに影響を与える関数にパラメーター/引数を渡すときにメモリにデータを渡す方法に違いがあります。しかし、これらを始めるには、通常、最初はささいな関心事です。

私の推測では、もしあなたがC ++を使ってハローワールド以上のことを素晴らしい方法でできると確信していれば、ローンチしても大丈夫だと思います。多くの言語を表面的に学習すると、使用する言語に関係なくコードサンプルを理解するのに役立ちますが、独自のコードを作成するには、言語がどのように機能し、どのように互いに異なるかをもう少し理解する必要があります。

PS新しい言語を表面的に使用する方法を学びたいときは、通常、次のことを試して、言語の構文と表面的な動作を感じます。

  • Hello world(画面上のテキスト)
  • ファイルに書き込まれたHello world(その言語のファイルI / Oの基本を教えます。他の種類のI / Oも同様です)
  • 整数と浮動小数点の両方の異なる基数(10、16進数、8進数)でいくつかの標準計算を実行します。(切り捨てと数値表記について説明します)
  • いくつかのグラフィカルライブラリを使用して、おしゃれなダイアログでハローワールドを表示してみてください。(ライブラリと外部コードの使用方法を教えます)

最後の段落の結論は素晴らしいです。私はC ++で完全なアプリケーションを提供するわけではありませんが、表面的なだけであっても、私が精通している範囲を広げることについてのあなたの議論に感謝します。
予想

6

まあもちろんです。

それについて疑いの余地はありません。新しいプログラミング言語を習得するには時期尚早かもしれません。

最も単純なケースは、エルスティンコ言語が出てきて、だれかがその不適切さを指摘する前に、それを学ぶことによってあなたの脳を傷つける場合です。思い浮かぶカップルには、BASIC、FORTH、およびAPLが含まれます。

より複雑なケースについては、偉大なコンピューター科学者の1人がこの問題を非常に簡単に述べていますが、実践は永続的であり、コンピューター言語を学ぶ前に学ぶべき多くの分野があり、言語がより基本的な理解を歪めないようにします。彼の言葉で:

私たちが使用するツールは、私たちの思考習慣、ひいては私たちの思考能力に深遠で不正な影響を及ぼします。

プログラミングに飛び込んだだけの相手はエドスジャー・ダイクストラと呼ばれ、非常に傑出した経歴がありました。彼は、次の引用でACMチューリング賞を受賞しました。

高度な知的挑戦としてのプログラミングへの基本的な貢献。プログラムを正確にデバッグするだけでなく、正しく構成する必要があることを雄弁に主張し、実践的にデモンストレーションするため。プログラム設計の基礎における問題の認識を明らかにするため。

彼がプログラミング言語の時期尚早な学習を批判している論文は次のとおりです。

「コンピュータサイエンスを実際に教えることの残酷さ」 http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF

また、私に火をつけないでください、私はただのメッセンジャーです。


「私はBASICから始めて、一生傷ついた」-そのようなことはあなたの主張を反証しませんか?早い段階で他のプログラミング言語に慣れていたら、BASICはそれほど大きな影響を与えなかっただろうか?
tdammers

絵文字が必要だと思います。それが役立つ場合、私はその文を削除しました。
DeveloperDon

3

新しい言語を学ぶのは早すぎますか?

はいと言うでしょう。コンピュータが実際にあなたが言うことを実際に行うかもしれないというまさにその概念に頭を包み込んでいるなら、第二言語を学ぶことはおそらくあなたを混乱させるでしょう。

しかし、あなたがコンピューターがあなたの言うことを正確に実行していることに気付いた時点を過ぎたら、どんなに愚かであっても、第2(および第3 !)言語はあなたの焦点を壊しません。


2

両方できない? 私はC ++でプロジェクトを行い、Pythonのビットを学びます(それはとても素晴らしいからです)、Pythonを使用してProjectEuler.netで問題を解決できます

一般的に、私は言語を学び、それを離れて新しい言語を学び始めるのは悪い考えだと思います。早い段階でさまざまなパラダイムを柔軟に扱う必要があります。しかし、それはまさに私が思うことです。


ProjectEuler.netはすごいですね!推薦してくれてありがとう。
予想

2

実践的なプログラマーにとって、新しい言語を学ぶことは決して悪い考えではない、と断言できません。大学生には、どのクラスが予定されているかに応じて、少し注意を促します。その理由は、学校の試験では、間違いを簡単に指摘するコンパイル/実行環境の利点なしに、言語の詳細を暗唱する必要があることが多いからです。

特に、数か月しか経験していない場合は、心の中で詳細を混ぜることは非常に簡単です。成績に関心があり、そのような試験でクラスを受講している場合は、注意が必要です。現実の世界では、それは問題ではありません。

編集:私はもともと構文を言ったが、非構文の詳細は教授と同じくらい重要であり、それらの多くがあります。


学生として、言語間の構文の違いを思い出せない場合、問題があります。構文をチェックするコンパイラーが常にあるとは限りません。このフィールドには、その場で構文を思い出す必要がある非常に現実的な状況がいくつかあります。
ラムハウンド

覚えるのが不可能だと言っているのではなく、初心者にとってはそれがずっと難しくなっているというだけです。大規模な構文の違いはかなり簡単ですが、教授はなどの詳細についてはうるさくうるさいことができるappend()push_back()であっても、経験豊富なプログラマは、彼らはしばらくの間、特定の言語で特定の機能を使用していない場合は、ルックアップする必要が何かあるのリスト、ため。シンタックスをその場で思い出すことができるのは間違いありませんが、ほとんどのジョブでは必要ありませ
カールビーレフェルト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.