0

我是一个完整的菜鸟,在 Mac 上使用 eclipse 学习 Python 2.7 不到四天,我已经设法在大约 20 分钟内从头开始编写了一个“FizzBang”,但是......我有一个见鬼基本算法的时代。我想知道这是否是我会及时加快速度的事情,或者是否有某种“逻辑思维”练习在我上面没有指导。到目前为止,记忆语法一直没有问题,当一切顺利时,我真的很享受这种感觉。

我的问题是,我是否应该绕开我目前的初学者书籍并阅读一些有关基本算法的内容(也许是 Python 算法特有的内容)?

如果是这样,你会推荐什么初学者文本?

我搜索了这个主题并没有找到任何匹配的东西,所以如果这是一个重复的帖子,或者你怎么称呼它,我的错。

我会很感激我从你那里得到的任何帮助。谢谢

4

3 回答 3

5

学习编程语言的语法来表达算法就像学习英语的语法来表达思想一样。
当然,英语中有一些细微差别可以让你比其他语言或其他语言更好地表达一些想法。但是,掌握英语并不会自动使您能够思考一些想法。

同样,如果你想买一本算法书,那就去吧!您对 python 的理解与您的开发能力和解决问题的算法之间的联系非常松散。

一旦你学会了如何解决问题,你将能够开发一种算法来解决手头的特定问题,然后选择最适合表达该算法的语言

……随着你设计的算法越来越多,你会越来越擅长开发更好的算法;随着你编写更多的 Python 代码,你会在编写 Python 代码方面做得更好。

我不知道您目前正在阅读什么书,但初学者书籍倾向于使用简单的算法示例来教授语言(语法、语义等)。如果您很难理解控制这些示例解决方案的算法,您可能应该对算法进行一些初学者阅读。真的,这有点像一个循环——为了学习算法,你需要能够表达它们(算法最容易用代码表达)。因此,要理解算法,您需要理解代码。
这并不完全正确——伪代码很好地解决了这个问题。但是您至少需要了解伪代码。

希望这可以帮助

于 2013-01-11T21:48:22.997 回答
1

请参阅免费提供的编程书籍列表。“Language Agnostic”部分中有很多很好的参考资料,可以帮助您进入编程格式塔。

练习、犯错误并让程序以当时对你有意义的任何方式运行是非常重要的。当您阅读更广泛并获得经验时,这将非常有价值,因为当您遇到更好的做事方式时,它将帮助您识别它。“嘿,这就像我之前试图解决的那个问题,这种方式更清晰/更短/更快/更灵活/更性感!”

于 2013-01-11T22:01:40.843 回答
0

我建议继续玩。逼自己,但要有耐心。找出你无法解决的问题并尝试解决它们。搜索 Google、Stackoverflow 等...也许 euler 项目会很好。欧拉项目

我认为“思考”部分是随着时间而来的。你看的语言越多,尝试的项目越多,你就越意识到如何实现想法。

我建议使用 Python 做的一件事是通读 pdf 库。查看 itertoolscollections模块,因为它们通常提供优雅的方式来实现想法。

我个人是从 Python 开始的,我喜欢它,但目前正在玩 Haskell。您不需要特定于 python 的教程来理解有效且更重要的是“新”思维方式。

所以......嗯......也许这有点漫无边际......但我认为我的情绪在那里。玩得开心!

于 2013-01-11T21:57:53.657 回答