读书时做练习吗?[关闭]


14

当您从一本书(与编程相关的任何书籍)中学习时,实际上有多少人在练习这些练习,我目前正在学习一本C ++书,并发现我觉得自己可以轻松完成一些练习。大多数人都这样做吗?还是他们阅读了整本书,然后又回到了看起来很困难的练习中?



4
我喜欢在读书时骑固定自行车,在大学期间很容易进行一些体育锻炼和学习。虽然我怀疑体育锻炼不在这里。
克里斯,

抱歉,和其他人一样,我是从未在这些教科书上做过任何练习的少数人,我看了看后面的答案,试图理解他们说的是什么,为什么会这样。
Buhake Sindi

没有人发现将其从StackOverflow迁移然后立即在Programmers.SE上关闭是很有趣的。这是苏维埃官僚机构!XD
Drew

Answers:


17

我发现实际输入练习的解决方案并运行它们会有所帮助。有时您会在第一次尝试时得到答案,有时它会比初看起来要棘手一些。除非拥有有效的代码,否则您永远都不知道缺少什么。

如果您进行练习调试,则自己输入练习有一个巨大的好处。如果这是一种新的语言和新的环境,则不可避免地会犯错误。使解决最简单的问题的解决方案都可以正常工作


5

我发现我倾向于跳过一些琐碎的练习,除非我仍然处于一个困难的阶段,即使我将头放在新语言的语法上。他们在那里不仅可以给您一些实践知识,而且可以提供发人深省的挑战。


4

从书本,计算机语言或人类中学习一种语言非常困难,没有实践,您将永远无法掌握它。

我通常会发现,在这些示例中进行消费税和键入操作可以为您提供更多的上下文信息,并且即使是看起来很简单的理解,也可能会教给您一些有关编译器如何工作的知识,以及一些您实际需要使用编译器时需要知道的其他知识。语言。

另一方面,我几乎从来没有完成过有关新语言的书,因为花所有的时间来进行所有练习,但是我至少会尝试在每个主题上做一个总结。

正如“ thorstenmüller”所建议的那样,另一个重要的帮助就是要有一些项目要开始实施。B树排序或其他实现总是很有趣的:)。


4

这取决于书。例如,K&R中的难题非常具有史诗性和启发性,甚至有一本书,名为《The C Answer Book》,其中详细介绍了他们应得的练习。

如果您正在阅读Knuth,那么除非您与铅笔和纸一起阅读,否则您真的不会从中受益。当然,某些Knuth问题是众所周知的公开问题,因此您不会期望全部解决。

但是,作为一名讲师,我发现许多本来不错的书中的许多练习都是可怕的。其中一些只是BS,似乎在最后一刻才加入。结果,在课堂上分配问题时,我必须自己做。只要您专注于正确的书籍和正确的问题,就会从中学到很多。即使您的目标是学习C ++,我也建议您使用K&R中的方法。


+1对于K&R,我以非常快的速度阅读了该书,并做了大部分练习,实际上感觉就像我在每本书上都学到了一些东西。其他书籍看起来像我挑选和选择
亚当

2

只有那些看起来有趣和具有挑战性的人。如果我知道答案,则键入它没有多大用处。

在大多数时候,当我阅读有关一种新语言或新技术的书籍时,我都会尝试实施自己的小型项目。从Conway的Life游戏开始,然后是Sudoku求解器。这样做的好处是,我已经用其他语言解决了它们并可以比较结果。

尽管此刻我正在学习Racket,但是由于我在语法的某些细节方面遇到了一些困难,因此我要比平常做更多的练习来习惯它。


1

如果存在简单的练习,我就会脑海中快速地进行最简单的练习。我还尝试看看我是否有实现这些练习之一的想法,但是大多数时候都没有执行。实际实现的原因是看您是否真的做对了,因为编译器将比您的想法更加古怪,并且它将更好地了解该语言。但这有所不同,因为进行练习的原因是重复您从最新一章获得的知识并真正确保您了解这些知识。

如果不存在练习,我会自己补一些。我也总是至少尝试使用本章中的内容(将代码键入Vim,执行,更改等)。

有时,我会留一些练习供以后使用,或在阅读课结束时使用(如果我碰巧阅读了多章)。

那里的练习有助于学习,我在需要帮助时会使用它们。


1

除非您了解并记住所写内容,否则读书会浪费时间。锻炼可以确保自己做到。此外,有时候锻炼很有趣!


1

不。我只阅读书中的代码,有时甚至不这样做。认为没有必要。毕竟我不会读这本书来学习如何编写代码。我读了这本书以学习概念并获得新的想法。


0

这取决于我要读的书。但是,通常,如果遇到我以前没有玩过的功能,我将输入并运行示例。


0

我喜欢在这些运动上锻炼。这些问题使我们进行了更多的思考和分析,并且此练习的结果也表明了我们的理解程度。您了解得越多,以后需要记住的精力就越少。


0

如果我正在学习一门新语言,并且知道自己会为此做很多工作,那么我会认真地进行每一项练习。通过这样做,我“吸收了”该语言,并且我的基本语法变得很强。同样,您不仅可以学习编码,还可以“思考”特定语言。第二次修改时,我可能不需要做运动。

同时,对于所有语言,IMO都不相同。例如,对于C / C ++,我不必太努力地练习SQL,而对于C / C ++,我已经练习了至少四次(包括我的大学课程)以熟练掌握它。


0

决不。但是,我确实尝试根据过去的大量经验(换句话说就是失败),用这种解决方案来编写一些东西,然后尝试解决它。当我将新事物与现有环境联系起来时,这似乎确实将新事物吸引到我的大脑中。


0

至少不是第一次读好书,因为大多数时候我迫不及待地想学习下一章的内容。


0

没有。

有些人具有纪律性,可以实际阅读书籍和进行练习,但是我不是其中之一,我怀疑其中许多是相同的方式。

我认为读书学习的模式已经过时了。我会尝试在网上找到讲座/实验室,然后做这些。

例如,我通过参加Google Code University课程学习了Python的基础知识。

最后,没有什么可以替代现实世界的经验,而最重要的是您实际上是在学习材料,而不是如何学习。我的建议是最快/最简单的方法而不是惩罚自己。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.