7

私の主な言語は PHP ですが、他の言語で (あまり多くはありませんが) プログラミングを行ったことがあります。

私は C で Apache 用の 2 つのモジュールを作成しました。C で作成したのは、パフォーマンスが問題になるものの 1 つだったからです。(オンザフライで投影された世界地図を生成し、.png に出力します)。

これらのモジュールは機能します。これは、コードの品質を保証できる限りです。誤解しないでほしいのですが、私は正しいコードを書くために最善を尽くしましたが、改善の余地がたくさんあると確信しています。

現在のモジュールをスレッド化するように変更することを考えていますが、スレッド化されたソフトウェアの経験がなく、バグを追跡するなどの作業にはまだ多くの時間がかかります。

私の質問は、
最初に C で適切にプログラミングすることを学ぶべきか ( The C Programming Languageのコピーを入手する)、それとも別のアプローチをお勧めしますか?

注:
現在、Apache モジュール以外に C を使用する予定はありません。

4

14 に答える 14

10

プログラミングに真剣に取り組むなら、C の学習は非常に重要だと思います。これは多くの言語の基盤であり、C で記述された多くのソース コードに遭遇します。ただし、Java、C++ などについてはそう言えます。

私見ですが、モジュールを書き続けて、必要に応じて新しいことを学ぶべきだと思います。それが物事を学ぶ最良の方法です

于 2009-02-06T16:27:29.273 に答える
4

必要なだけ学びましょう。

Cプログラミング言語を読んだり、言語のすべての機能を学んだりするのに時間を費やす必要はありません。必要に応じて、Cプログラミング言語をルックアップツールとして使用します。より頻繁にcでプログラミングを開始する場合は、時間をかけて言語をより徹底的に学習してください。

于 2009-02-06T17:09:10.077 に答える
4

あなたはすでにかなりうまくやっているようですね。それらのモジュールをオープンソース化し、コミュニティからのフィードバックを求めるのはどうですか?

于 2009-02-06T16:28:22.140 に答える
3

プログラミング言語を学ぶ最良の方法は、それを使用することです。したがって、一歩進んで実際に C で Apache モジュールを作成することは、良いアプローチです。ただし、その言語をさらに深く掘り下げたい場合は、いくつかのことを行う必要があります。

  • 言語を使用します。あなたはすでにそれをしました:)
  • 言語を知る。「バイブル」である K&R は、少なくともある程度の知識を持っている必要があるものです。本のすべてを知る必要はありませんが、使用されていない言語機能について少なくともアイデアを得るために使用する必要があります。頻繁すぎる。いつか役に立つ日が来ます。
  • 他のユーザーと協力します。他の人と一緒にプロジェクトに参加して、他の人にあなたのコードを読んでもらい、彼らのコードも読んでもらいましょう。オープンソースは通常、これを行うための良い方法ですが、他のオプションもあります.

私の「キャリア」から言えば、私も PHP から始めて C にたどり着きました。言語の内部を学び、より優れたプログラマーになります。K&R のすべてのページを知っているわけではありませんが、使用して慣れたことを後悔したことはありません (読むよりも使用したと思います - これは教科書ではなく、私の意見では参考文献です)。

于 2009-02-06T19:32:08.587 に答える
2

その本を強くお勧めします。将来 C を使用する予定がない場合でも、C を使用する必要があるかどうかはわかりません。この本は、C に関する経験や知識をさらに得るのに最適な本です。

上記のように、C は他の多くの一般的な言語の基盤であるため、C を使用しなくなったとしても、その後継言語のいずれかを使用することになる可能性があります。

于 2009-02-06T16:27:41.907 に答える
1

ここで直面している本当の問題は次のとおりだと思います。

1) あなたがしているタスクに C は適切ですか?
2) 要件の変更に伴い、C 言語の知識を増やす必要がありますか?

質問 1 については、アプリケーションに C の代替手段があるかもしれません。.png 画像を出力する必要があり、スレッドを管理する必要があります。おそらく Java または Python が C よりも優れた代替手段です (.png 出力は両方の言語で数行ですが、C では外部ライブラリなどが必要だと思います。同じことです。スレッド用。

質問 2 については、C を使用し続ける場合、複雑さが増すにつれて落とし穴を回避したい場合 (特に C のような低レベル言語の場合) は、おそらくその言語をより深く研究する方がよいでしょう。

于 2009-02-06T18:12:21.603 に答える
1

将来 C でプログラミングする予定がない場合や、C 関連の言語で開発する必要がないと確信している場合でも、歴史的な理由から K&R の本をお勧めします。あなたの芸術の有名な巨匠。

于 2009-02-06T16:38:58.233 に答える
0

すべてのプログラマーにとって、ポインターや手動のメモリー管理など、Cで重要な低レベルの概念を習得することが重要だと思います。これにより、物事が実際にどのように機能するかについての素晴らしい洞察が得られ、より高いレベルでプログラミングする場合でも役立ちます。ただし、Cを定期的に使用しないのであれば、言語全体を真に習得する意味はありません。たとえば、標準ライブラリや、Cで重要なプロジェクトを設計する方法を学ぶことにあまり時間をかけません。重要な概念に固執するだけです。

于 2009-02-06T16:45:58.190 に答える
0

私はBASICからFORTRAN、そしてJavaに進み、現在は主にPHPとPerlの組み合わせを使用しています。私はApacheモジュールをいじり回すことを除いて、実際にCを使用したことはありませんが、どの言語を学習する場合でも、学習するための最良の方法は実行することです。

本を使ってあなたにその言語を紹介しますが、実際にそれを学びましょう。

于 2009-02-06T16:51:25.137 に答える
0

私は少しモダニストかもしれませんが、Cを正しく学ぶつもりなら、K&Rから始めることはお勧めしません。なぜ時代遅れの基準を研究するのですか?C99標準を教えてくれる本を手に取り、そこから学びましょう。あなたはすでに少し慣れているので、おそらくCPrimerPlusまたは同様のものです。

于 2009-02-08T01:55:47.063 に答える
0

何かを正しく学ぶことは決して悪いことではないと思います。また、C をしっかりと理解することで、プログラミングの理解が確実に深まります。

将来その言語自体を使用するかどうかは問題ではありませんが、内部で何が起こっているかを理解するためには、非常に貴重です。

于 2009-02-06T16:31:10.560 に答える
0

The C Programming Language (K&R) を取得することを強くお勧めします。これは非常に簡潔で便利な C のリファレンスです。K&R から学ぶのが少し難しいと感じた場合は、この言語に関するより穏やかな本を購入することを躊躇しませんが、K&R は、何かあるときに戻ってくる本です。よくわかりません。

また、スレッド化されたプログラミングは潜在的な問題のまったく新しい世界を開くことを指摘する価値があるので、それを適切に行う方法を学ぶためにも本を入手することを強くお勧めします.

于 2009-02-06T17:44:22.627 に答える
-2

他の目的で C を使用しない場合は、Java に切り替えることをお勧めします。Java の方が並行性がはるかに簡単だからです (少なくとも私の意見では)。

また、非常に扱いやすい非常に大規模な標準ライブラリがあり、おそらく開発を大幅にスピードアップできます。

于 2009-02-06T16:26:18.243 に答える