私は愛好家のJavaプログラマーであり、CまたはC++とPythonを学習して、プログラミングスキルをさらに高めたいと考えています。
私は多くのC対C++の記事を読みましたが、それらのどれにも私が探している情報が含まれていません。
CとC++のどちらを学ぶ方が良いか知りたいのですが。ほとんどの記事で、ほとんどの人がC++がOOでGUIを記述しやすいためより優れていると言っているか、Cが悪いことを学ぶだろうと言っているFOを勧めています。 _習慣。
しかし、JavaであるOOでプログラミングできるので、FOの習慣は固執しません。 GUIに関しては、pythonのほうが適していると思います。
どちらがPythonに適しているかも知りたいです。つまり、pythonでより適切に機能するか、pythonなどでより高速に実行されます。
CとpythonとJavaまたはC++とPythonとJavaをお勧めしますか
追伸私はほとんどのプログラミングをLinuxで行っています。
Cを学ぶ。
あなたはすでにOOP言語を知っており、愛好家として学びたい場合はCがあなたをより興味を持ち続けます。いつでもC++を学ぶことができます。また、Cを学ぶことは、内部作業のより良いアイデアを与えるかもしれません。あなたが愛好家のプログラマーであることを掘り下げるかもしれないLinuxマシンの。
どの言語が良いかについて。私が選択した場合、それは悪い質問であり、おそらく最悪の答えになるでしょう。彼らは両方とも彼らがすることをすることに熟達しています。
正解は「主にあなたが何をしたいかによります」です。
「プログラミングスキルを向上させたい」という音から、これはどういう意味ですか?
物事を成し遂げるための優れたツールを見つけ、問題を解決したり、楽しい/便利なことをしたい場合は、Python)を選択する必要があります。パフォーマンスについてはそれほど心配しないでください。後でいつでも最適化できるからです。
Pythonは、他の言語の残骸の多くを気にする必要がないので、プログラミングをする喜びであり、通常はアプリケーションロジック自体に集中できます。 Pythonは主に、アプリケーション全体の設計/実装、OOの概念、機能の概念、および多くの構文を導入する分野でのプログラミングスキルを向上させます。砂糖。実行することをお勧めしますimport this
Pythonコミュニティが何であるかを理解するために。PythonはJavaとは異なる考え方であり、プログラマーは大人として扱われます。 Pythonは通常、言語が解決する必要のある問題の解決策を理解するための最も単純/最も簡単な方法を選択しました。 Java/C/C++との構文の違いを乗り越えれば、他のスクリプト言語に簡単に理解して読むことができます。Pythonには、多くのC/C++ライブラリへのバインディングもあります。/API。
Javaが作成された理由を確認したい場合は、C++でコーディングできます:)。多数の既存のC++プログラマーや優れたC++ライブラリ/ API(つまり、 http://qt.nokia.com/products/)を含まないC++の優れたユースケースは本当に考えられません。 )。私は個人的には、最も複雑なプログラミング言語の1つと考えています。ただし、単に学習することが目標である場合は、コードを適切に機能させるために解決すべき問題や知っておくべきことがたくさんあるため、これは非常に優れた言語です。
編集:[〜#〜] i [〜#〜]以降C++の良いユースケースを考えることができませんでした。C++プログラマーがなぜそれを使用するのかを述べる素晴らしいスレッドを見つけました:) http://lambda-the-ultimate.org/node/66 。しかし、私はC++を個人的に容認できないので、この面白いインタビューにもリンクする必要があります http://harmful.cat-v.org/software/c++/I_did_it_for_you_all
Cは、C++と同じ理由で学習するのに最適な言語ですが、言語自体はそれほど複雑ではありません。 CとCのコンセプトは至る所にあります。 CはPython、Java、C++を補完するので、純粋な学習体験のためには、CよりもCをお勧めします。メモリ管理とポインタは、完全に把握するための重要な概念です。
あなたが何を学びたいかによります。 C++はJavaとかなり「概念互換性」があるため、Javaをより迅速に理解することができます。しかし、Cを学ぶことで、ポインターとストレージ管理についてより迅速かつ深く学ぶ必要があります。
何をプログラムしたいかによります。
Cは、カーネル、UIツールキットなどによく使用されます。
C++は、ブラウザ、ゲーム、特別なパフォーマンス要件を持つアプリケーション(CAD、3Dデザインなど)に使用されます。
CプログラムはC++で記述できますが、考え方は大きく異なります。
Cとc ++はどちらも非常に優れた言語です。
私はあなたが最初にCを学びます。コンピュータプログラムがどのように機能するかをよりよく理解し、最終的にはC++がどのように機能するかをよりよく理解できるようになります。
私はC++から始めます。 Cと同じパワーを持っていると、Cの概念を正しく理解しないと理解できないエラーにさらされる可能性があるため、慎重に行う必要があります。一方、より安全なプログラムを作成するためのツール(例外、RAII、メモリ管理など)を直接利用できます。また、この言語の複雑さ全体に目を向けます。 C++はオブジェクト指向言語だけではありません。ジェネリックプログラミング、メタプログラミング、手続き型プログラミングなどが可能です。
私の個人的な見解では、Cを知らないとC++でプログラミングすることはできません。しかし、C++でCの方法をプログラミングすることは決してありません。
最後に、C、C++、およびJavaは、SWIGおよびJython(Javaの場合)を介してpythonとかなり互換性があります。
プログラミングスキルを向上させたいと思っていて、すでにJavaのスキルを持っているので、どちらでも使用できます。c++の方が簡単ですが、ここに学習したい理由のリストを示します。 C
したがって、低レベルの言語を学びたい場合はCを選択し、とにかく高レベルのスクリプト言語の場合はpython
一度にたくさんの言語を学びたいと思うので、Python、C、C++を学んでみてください。このようにして、あなたは経験からあなた自身の質問に答えることができるでしょう。
また、GUIにPythonを使用することを検討しているとのことですが、PythonのGUIツールがJavaのSwingライブラリよりも優れているとは聞いていません。あなたはそれをよく知っていて、良い効果に使うことができます。
私が間違っていることを示唆するハードデータを誰かが持っている場合は、リンクを投稿してください。私はすべて学習についてです。
CはC++のサブセットであるため、C++の学習だけに集中する必要があります。私は両方の言語を知っています。私は最初にCを学びました。今日は、C++の代わりにCを使用して新しいプロジェクトを開始することは絶対にありません。ポインタの使い方を学ぶことが重要であり、C++でも問題なく使用できます。最初にC++の非オブジェクト指向機能を学習して、それらをバイパスしないようにすることができます(ポインター、構造体、構造体へのポインター、配列、参照など)。次に、クラスとテンプレートに移動します。
ちなみに、C++をすでに知っているJava言語は、私が想像するよりも簡単です。これは主に、C++のポインタ演算機能によるものです。
Linux用の無料コンパイラがあります。