私はプログラミングに比較的慣れておらず、LinuxおよびWindows用のネイティブC++プログラムを作成できるようにしたいと考えています。
初心者として、まずCやvimでのアセンブリなどの低水準言語を学ぶべきか、それともC ++を使用するIDEですぐに始めるべきか、疑問に思っています。
C ++を学びたい場合は、C++を学びましょう。Cまたはアセンブリ言語を最初に学習することは時間の無駄であるだけでなく、通常、C++を上手に使用する前に非学習で作業する必要がある比較的貧弱な習慣を教えます。
それは、Cまたはアセンブリ言語を知っているとC ++をうまく使用できないということではありませんが、それぞれが明らかに異なる考え方を必要とするため、余分な作業が発生します。
最終的な目標が C++ を学習することである場合、最初に C を学習する必要はありません。できますが、そうする必要はありません。
肝心なのは、あなたが最も快適だと思うことをすることです。
C++ は (実際には) 高水準のプログラミング言語ではありません。小さなプログラミングミスを犯すたびに、メモリを手動で管理し、未定義の環境固有の動作を取得しています。それに加えて、C++ は非常に複雑で (私の意見では) ひどく設計されているため、新しいプログラマーにとって非常に不親切な言語です。
Java、Python、C# などの実際の高水準言語と、派手な IDE の組み合わせから始めることをお勧めします。一般的なプログラミング手法やパラダイムよりも低レベルの側面に集中したい場合は、C から始めることも選択肢の 1 つです。
また、プログラミングを開始する場合でも、vim を学習する必要はありません。gedit や Notepad++ などの単純なエディターでも問題なく動作します。ただし、使用する言語用に特別に設計された IDE がおそらく最も快適です。
EDIT : Jerry Coffin が正しく指摘しているように、C++ アプリケーションをプログラムすることが目標である場合、このアドバイスはあまり役に立ちません。ただし、C++ を始める前に、一般的なプログラミング スキルを習得するために、より簡単な (高水準) 言語から始めることをお勧めします。達成したいことに対して C++ が絶対に必要でない場合、その言語を実際に使用するかどうかを再考することも悪い考えではありません。
C++ を学びたい場合は、C++ から始めてください。最初に C を学ぶ必要はありません。C++ に移行するときにいくつかのことを学ば なければならないため、実際には多少逆効果になります。
C と C++ は異なる言語であり、異なる目標と哲学を持っています。適切に作成された C++ プログラムは、適切に作成された C プログラムのように見えたり動作したりしません。
高レベルの C++ 機能に慣れたら、低レベルの詳細を掘り下げることができます。
「私がさらに先を見たとすれば、それは巨人の肩の上に立ったからです。」――アイザック・ニュートン卿
できるだけ高く、コアから抽象化して開始し、他に進む方法がない場合にのみコアを再訪します。
あなたの質問は、プログラミングの学習に関するものに思えます。言語の選択は、プログラミングのパラダイム/概念の学習に次ぐものかもしれません。
したがって、プログラミングに関心がある場合は、最初にオブジェクト指向プログラミング (OOP) の概念を学ぶことができます。そうすれば、手続き型アプローチから来た人々がよく行う方法でオブジェクト指向プログラミング (OOP) を「採用」する必要がなくなります。次に、必要に応じて、手続き型の方法といくつかの C のイディオム/トリック、および低レベルのアプローチを掘り下げることができます。
OOPは、JavaなどのようにC++で教えることができます。その段階では問題ありません。
考え方が「指向」になると、実際のプログラミングは既存のライブラリ (API) を使用することになり、実際には言語自体よりも多くの学習が必要になります。
したがって、私のアドバイスは、最初に OOP の概念を学び、それから将来の言語の好みを確認することです。楽しむ!!
Javascript は私が最初に学んだ言語であり、幸運だったと感じています。これにより、静的型付け、ポインター、コンパイルなど、他の言語の複雑さと障壁の多くをスキップすることができました。JavaScript を使用すると、何もインストールする必要さえありません。ここにアクセスするだけで、http: //jsfiddle.net/X4PpW/を試すことができます。
Javascript をしっかりと理解した後は、C でポインターとクラスを使用する概念を理解するのは簡単でした。始めるのに適したもう 1 つの言語は Python です。
また、何を作るつもりですか?すべてのデスクトップ アプリを C で記述する必要はありません。実際、新しいフレームワークの中には、Web アプリケーションからアイデアを取り入れたり、Web サイトの HTML をアプリに埋め込んだりできるものもあります。