7

我的主要语言是 PHP,但我用其他语言做了一些(不是很多)编程。

我用 C 为 Apache 编写了 2 个模块。我用 C 编写它们,因为这是性能确实很重要的事情之一。(动态生成世界的投影地图并输出到.png)。

这些模块可以工作,这是我能保证代码质量的程度。不要误会我的意思,我已尽力编写正确的代码,但我确信它还有很大的改进空间。

我正在考虑将当前模块更改为线程化的想法,但没有线程化软件的经验,并且像追查错误这样的事情仍然需要我很多时间。

我的问题是:
我应该先学会正确地用 C 编程(获得一份The C Programming Language的副本)还是你推荐另一种方法。

注意:
我目前没有将 C 用于 Apache 模块的计划

4

14 回答 14

10

如果你对编程很认真,我认为学习 C 语言真的很重要。它是许多语言的基础,你会遇到很多用 C 编写的源代码。但是,我们可以看到 Java、C++ 等。

恕我直言,我认为您应该继续编写模块并根据需要学习新事物。这是学习事物的最佳方式

于 2009-02-06T16:27:29.273 回答
4

听起来你已经做得很好了。开源这些模块并征求社区的反馈呢?

于 2009-02-06T16:28:22.140 回答
4

只学习尽可能多的知识。

您无需花时间阅读 The C Programming Language 并学习该语言的每一个特性,它就会变得有用。根据需要使用 C 编程语言作为查找工具。如果您更频繁地开始使用 c 编程,那么花时间更彻底地学习这门语言。

于 2009-02-06T17:09:10.077 回答
3

学习编程语言的最好方法是使用它。因此,向前迈进并实际用 C 编写 apache 模块是一个好方法。但是,如果您想深入了解该语言,您应该做几件事:

  • 使用语言。你已经这样做了:)
  • 了解语言。“圣经”K&R 是你至少应该有一些知识的东西——你不需要知道这本书的每一点,但你应该使用它来至少了解未使用的语言特性太频繁。总有一天会有所帮助的。
  • 与他人合作。与其他人一起参与一个项目,让其他人阅读您的代码并阅读他们的代码。开源通常是这样做的好方法,尽管也有其他选择。

从我的“职业生涯”来说,我也是从 PHP 开始的,最后是 C。阅读书籍(我强烈推荐 Peter van der Linden 的“Expert C Programming”,遗憾的是已绝版)会让你更深入地了解语言的内部,从而使您成为更好的程序员。我不知道 K&R 的每一页,但我从不后悔使用它并习惯它(我想我宁愿使用它也不愿阅读它——它不是教科书,而是我认为的参考)。

于 2009-02-06T19:32:08.587 回答
2

我强烈推荐那本书。即使您将来不会看到自己使用 C,您也永远不知道是否必须这样做,这是一本完美的书,可以让您获得更多的 C 经验/知识。

如上所述,C 是许多其他流行语言的基础,因此即使您最终没有更多地使用 C,您也可能最终使用其中一种继任者。

于 2009-02-06T16:27:41.907 回答
1

即使您将来没有使用 C 编程的计划,或者即使您确定永远不必使用某些与 c 相关的语言进行开发,出于历史原因,我还是会推荐 K&R 书:这是一个学习的好习惯众所周知的艺术大师。

于 2009-02-06T16:38:58.233 回答
1

我认为您在这里面临的真正问题是:

1) C 适合你正在做的任务吗?
2)随着需求的变化,您是否应该增加对 C 语言的了解?

对于问题 1,您的应用程序可能有 C 的替代方案。您需要输出 .png 图像,并且需要管理线程:也许 Java 或 Python 是 C 的更好替代品(.png 输出在两种语言中都只有几行,而我认为您需要 C 中的外部库等。同样的事情用于穿线。

对于问题2,如果您坚持使用C,如果您想避免随着复杂性增加而陷入陷阱(尤其是对于像C这样的低级语言),那么最好更深入地研究该语言。

于 2009-02-06T18:12:21.603 回答
0

我会说正确地学习一些东西永远不会有害。对 C 的扎实理解肯定会加深你对编程的理解。

将来您是否会使用该语言本身并不重要,但为了了解幕后发生的事情,它是无价的。

于 2009-02-06T16:31:10.560 回答
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)。这是对 C 的非常简洁和有用的参考。如果你觉得从 K&R 学习有点困难,我会毫不犹豫地买一本关于语言的更温和的书,但 K&R 是当你有东西时你会回来看的书'不确定。

此外,值得指出的是,线程编程打开了一个充满潜在问题的全新世界,所以我绝对建议你买一本书来学习如何正确地做到这一点。

于 2009-02-06T17:44:22.627 回答
0

读了这本书。你会很高兴你做到了。它将向您介绍很多您不会遇到的东西。您将被介绍该语言的所有功能,而不是在您认为需要它们时偶然发现它们。

于 2009-02-06T18:09:12.670 回答
0

也许我有点现代主义者,但如果你要正确学习 C,我不建议从 K&R 开始。为什么要研究过时的标准?拿起一本教你 C99 标准的书,然后从中学习。因为你已经有点熟悉了,可能是 C Primer Plus 或类似的东西。

于 2009-02-08T01:55:47.063 回答
-2

如果您不打算将 C 用于其他任何事情,我建议您切换到 Java,因为它的并发性要容易得多(至少在我看来)。

它还有一个非常大的标准库,非常易于使用,并且可能会大大加快您的开发速度。

于 2009-02-06T16:26:18.243 回答