学习C需要多长时间?

我是一名C#程序员,我在学习C的好处上卖了。我想深化我对底层操作系统和CPU的了解,理解垃圾收集所包含的内存管理的痛苦,并且通常会改进我的高级程序感谢您对编译器代表我处理的低级问题的理解。

我的问题是,我希望花多长时间学习C语言以获得这些好处?

是否有几个周末花在阅读K&R书籍上从封面到封面足够,或者我是否需要安排时间来削减一些代码? 我是否需要花时间钻研任何库,或者是否理解语言中的一阶概念足以改进我的C#代码?

为了清楚起见,我不打算用C语写任何重要的程序。我的目标是学习语言而不是成为语言专家。

C需要一周的时间来学习,并且需要一辈子才能掌握。

阅读K&R书籍而不是编写代码就像读一本关于武器的书,从不实际拍摄。 是的, 你已经在一本书中读过 ,它以这种方式工作,但你从未遇到过这样做时出现的典型问题。 没有实践,这种“知识分子”的价值很小。

计划花费2 – 3年慢慢地编写小程序来解决C中的不同任务。这将被视为真实的经验。 C为您的努力提供延迟的满足感。

我不确定学习一门语言需要多长时间 – 这可能归结为个人。 但我非常有信心,如果不编写和调试代码,你就无法学习。

十年

如果您能阅读K&R并了解所有内容,那就非常好,因为K&R几乎涵盖了所有语言。

然而,阅读它并理解它们都是非常不同的。 你可能应该通过K&R几次通过并做所有相关的练习,以确保你真正了解它。

即使在阅读了所有这些内容之后,您也会花费更多时间来学习指针。 期待很多seg故障。 从好的方面来说,你会非常擅长阅读hex!

这个语言有一些警告,你也会发现。 曾经给我带来麻烦的是所有指针大小相同(x86上为4个字节),无论它们指向什么 。 char *与void *和int *的大小相同。

你肯定需要写一些代码 – 我不相信你可以学习任何语言而不这样做。 K&R有很多你可以练习的练习。 很难知道在获得良好的工作知识方面需要花费多长时间 – 我过去常常在4.5天内教授整个语言,但这是非常密集的。 如果你每天工作一个小时,我建议大约一个月。

编辑:我必须承认,我觉得有点令人沮丧的是,很多人都认为C太难了。 在我的副本中,K&R的长度为272页,基本涵盖了您需要知道的所有内容,包括标准库。 是否有任何其他编程语言的书,如此简洁地涵盖了整个shebang? 我不这么认为,原因不是K&R在某种程度上被压缩(Brian Kernighan是最伟大的技术作家,恕我直言),但语言简单易懂。

如果你只是坐在那里询问抽象问题,而不是真正潜入并做到这一点,那将需要更长的时间。 你有截止日期吗? 学习钢琴需要多长时间? 谁在乎,我只是想制造一些噪音。 这就是孩子们如此快速学习的方式。 他们不关心成为专家,甚至不是好人。 他们只是喜欢玩。

无论如何,如果你想学习一些有趣的东西,也可以尝试一些汇编程序。 很多人真的讨厌它,但那只是因为他们不喜欢花费无数个小时没有完成。 我很喜欢它。

我阅读了K&R的书籍封面,并且不会说我对C有很好的理解。有时候在K&R中进行练习会非常有益。

我相信C库可以让你更有效地编写程序,但如果它只是学习你感兴趣的C,那么你可以自己实现你需要的任何东西。 http://www.projecteuler.net是一个很好的问题来源(尽管略有数学性),如果你想在K ^ R练习之外尝试一些编码,你可以开始使用它。

在几个周末,您将获得两个主要结果:

  1. 你好,世界
  2. 很多分段错误

C并不容易,特别是如果你不习惯它的硬核概念。 你将不得不投入数周甚至数月来修补它,以掌握最晦涩(但仍然不是太多)的本质。

40天40夜。

如果你不能顺序完成日夜,那么这将是42个周末。

但严肃地说,没有任何关于你学习其他主题的速度的背景,没有人能给你一个与你相关的真实答案。 我们可以说我们花了多长时间才能将它学到令人满意的水平,但这与你学习它需要多长时间无关。

如果你说花了6个月才擅长C#,那么也许我们可以说它应该花费你6个月* X(其中X仍然是一个猜测,但比现在更好的猜测)。

然而,我们都同意,仅仅阅读这本书是不够的。 当然你必须编写代码。 这就是我们最好的学习方法 – 阅读,写作,教授它。 如果你真的想学点东西,那就去教吧。

要了解内存管理的痛苦,只需使用堆栈,链接列表,二叉树等编写示例程序。您将看到您正在进入的内容。

在学校,我被教导C作为入门语言,并且随着指针的推出,一大批人都放弃了课程,因为坦率地说这是一个难以理解的概念。

正如许多其他答案所述……计划不仅要阅读而且要练习。 毫无疑问,你没有从C#中学到很多东西,只是在编码和犯下’啊哈’时犯错误。 时刻。

IMO:3到4年才能真正理解大多数概念。 一本书将帮助您了解该语言的function。