これがこの質問をするのに間違った場所である場合、私に知らせてください。
私は職業別のPythonプログラマーです。私はCを学びたいと思っています。実際、私は何度も試みましたが、私はいつも落胆しています。Pythonでは、数行書くだけでプログラムは驚異的です。Cでは、役に立つことは何もできないようです。
インターネットに接続することさえ非常に複雑なようです。
Cを学ぶために私ができることについて何か提案はありますか?良いウェブサイトはありますか?クールなプロジェクトはありますか?
ありがとう
これがこの質問をするのに間違った場所である場合、私に知らせてください。
私は職業別のPythonプログラマーです。私はCを学びたいと思っています。実際、私は何度も試みましたが、私はいつも落胆しています。Pythonでは、数行書くだけでプログラムは驚異的です。Cでは、役に立つことは何もできないようです。
インターネットに接続することさえ非常に複雑なようです。
Cを学ぶために私ができることについて何か提案はありますか?良いウェブサイトはありますか?クールなプロジェクトはありますか?
ありがとう
回答:
がっかりしないでください。
Pythonは高度なプログラミング言語です。Cと比較すると、わずかなコードで驚異を生み出すことができます。Pythonの結果をCで模倣しようとすることから始めないでください-すぐに失望します。Cでのプログラミングでは、より親密なレベルでコンピューターと対話するため、異なるスタイルの思考と理解が必要です。Cを学ぶための良い出発点は次のとおりです。
Cを学びたいなら、インターネットへの接続から始めないでください。それは他の言語でもできます。それはCで最も重要なことではありません。
代わりに、このCチュートリアルのポインター、配列、参照、構造体を見てください。これは、メモリ管理と「マシンに近づける」機能の多くを理解するのに役立ちます。
この資料を学習して理解できる場合は、可能なプロジェクトへの展開を検討してください。これらの概念は、実際のプロフェッショナルCプログラミングの基本です。
このポインターチュートリアルも参考になります。
C_Tutorialリンクが...壊れている
されて非常にインターネットに接続するためには複雑!それについて考えてください:
お使いのコンピューターには、WLAN、Bluetooth、イーサネットなど、複数の接続方法があります。それぞれに独自の設定があり、設定する必要があります。幸運なことに、これらの標準とドライバーが既に存在します。これらを使用することは、現在よりもはるかに困難です。
IPアドレスはIPv4でもIPv6でもかまいませんが、両方を処理できる必要があります。
システム用に構成されたプロキシがある場合とない場合があります。
FTP、HTTP、またはその他のプロトコルをサポートする必要があります。
ダイヤルアップを使用する必要がある場合があるため、まだ接続していない場合は、パスワードと電話番号を含む電話帳を指定する必要があります。WLANユーザー名/パスワードを使用した同上。
Cookieを使用する必要がある場合があります。
システムは一部のデータをキャッシュする可能性があるので、キャッシュを使用しますか?
そしてリストは延々と続く。
したがって、Pythonを使用してこれらを簡単に実行できるということは、必然的にこれらの多くがあなたから隠される(または設定するのが難しい)ことを意味します。Cライブラリには反対である:それはあなたが必要とするすべての電力を(あなたは簡単にシステムコールを実行することができます)が、いずれのデフォルト(または、実際には、持っていない任意のインターネットに接続するための機能を)。
Cを退屈だと考えるのではなく、強力だと考えてください。しかし、いずれにせよ、それでインターネットに接続しようとしないでください-それは非常に難しいことです。代わりに、より基本的なタスク(例えば、ファイルI / O)用のライブラリを使用する方法を学び始める、どのように実際のポインタと配列は、仕事について学び、あなたはすべてのそれらを学ぶとき、その後、大規模なプロジェクトに取り組んでみてください。あなたもPythonにもっと感謝します。:)
編集:
個人的には、暇な場合は、代わりにC#を最初に学習することをお勧めします。unsafe使い始めたらすぐに、キーワードとポインターの使用方法について学習を開始し、C#でマーシャリングを行います。Pythonのように、本当に大きなライブラリを使用できますが、Cでできることの多くを行うことができます。次に、システムAPIの手動呼び出し(InternetOpenなど)に移行し、学習します。それらを機能させる方法。あなたはまだ多くの柔軟性を持っていますが、低レベルの概念の素晴らしい入門書を得るでしょう。これらを実行したら、 Cの学習を開始すると、簡単に理解できるようになり、高レベル言語と低レベル言語の長所と短所がわかるようになります(C?ニーズに合ったものを見つけるために。
とはいえ、Cのクラッシュコースは、海 C に飛び込む出発点として役立つと思います。
Cを学習しているときはカーネルコードを読み取らないでください。パフォーマンスの最後のビットをすべて圧縮するのは、コツです。その一部は非常に非標準です。それはあなたを夢中にさせます。
代わりに、小規模でコード品質の高いプロジェクトをいくつか見てください。