【发布时间】:2011-05-20 07:59:46
【问题描述】:
我目前是一名大学新生,主修计算机科学。我的“计算机编程入门”课程即将完成。我喜欢它,感觉我学到了很多东西。
几天前,我阅读了 Joel 的 The Peril Of Java Schools。 “链接列表?”我想,“这些都不难。我们已经在我现在所在的班级里完成了很多。”这是正确的,因为在 Java 中,它们并不难。但无论如何,我试着用 C 写一个。
这太难了!
Joel 是对的,我认为……Java 为您处理了这么多琐碎的小事,实际上并不难。但我决心克服我学校的 Java-tude 并学习如何用 C 编写这个该死的链表。
所以我想,与其试图问很多很多小问题,我想问的是,有人知道学习 C 的好的(免费)在线教程吗?具体来说,学习如何处理指针和所有这些符号(&、*、**、[] 以及它们如何协同工作)我想我已经非常精通 Java,所以我不需要关于如何编写“Hello, World!”的教程。程序。但是我肯定还没准备好学习任何超高级的 C 或 C++,因为我只知道 Java。
任何帮助表示赞赏!
【问题讨论】:
-
在线教程的问题是它们几乎总是质量很差并且存在有害的技术错误和其他错误,或者推荐一般风格差的编码(我对在线C资源的熟悉程度不如我使用 C++,但对于 C++,没有好的、免费的在线教程)。如果您想学习 C 以及指针和数组以及该语言的其他方面的工作原理,请帮自己一个忙,get a good beginner book。
-
不过,Alf Steinbach's Pointers Tutorial 可能对您有用。它写得很好,但侧重于 C++,而不是 C。不过你仍然需要一本好书。
-
虽然我同意 Joel 的观点,即有很多东西被教得很糟糕(或根本没有教),但总的来说,我强烈反对如何教它们。我不认为让孩子编写所有低级代码是一项富有成效的练习。最好是在课堂上作为一个小组来制作它,讨论它,让每个人讨论错误等。这样,至少教授可以在那里喊“omfg for the N+1th at least 阅读该死的错误!”。让学生在零理解的情况下独自坐着并四处游荡并不会导致更多的理解;它会导致剽窃。
-
+1 表示希望成为一名称职的工程师,而不仅仅是勉强完成你的课程。