我学习、工作和使用Python已经有一年半的时间了。作为一名慢慢转向生物信息学的生物学家,这种语言一直是我在实验室所做的所有主要贡献的核心。我或多或少爱上了Python让我表达美丽的解决方案的方式,也爱上了这种语言的语义,它允许从思想到可行的代码的自然流动。

有一个问题,我很少在这里或其他论坛看到,我想听听你的回答。在我看来,这个问题对于任何走在Python改进道路上的人来说都很重要,但他不知道下一步应该做什么。

让我先总结一下我不想问的问题;)

我不想知道如何快速学习Python 我也不想找出熟悉这门语言的最佳方法 最后,我不想知道“一个技巧可以解决所有问题”的方法。

我想知道你的意见是:

从学徒到大师,你会向Python熟练者推荐哪些步骤,以便一个人不断提高,成为一个越来越好的Python程序员,一次一步。SO上的一些人几乎因为他们的Python能力而值得崇拜,请启发我们:)

我喜欢的那种回答(但请随意给读者惊喜:P),格式或多或少是这样的:

阅读这个(例如:python教程),注意那种细节 这么多时间/问题/行代码的代码 然后,读这本(例如:这本或那本书),但这次,注意这本 解决一些现实生活中的问题 然后,继续读取Y。 一定要掌握这些概念 X时间的代码 回到这样那样的基础或进一步讨论…… (你懂的)

我真的很想知道你对一个人在不同阶段应该注意什么问题的看法,以便不断进步(当然,要付出适当的努力)。如果你来自一个特定的专业领域,讨论一下你认为适合这个领域的道路。

编辑:感谢您的大力投入,我又回到了Python改进的轨道上!非常感谢!


当前回答

我第一次自学python是在一个夏天的时候,只是在python网站上做教程(遗憾的是,我似乎再也找不到它了,所以我不能发布链接)。

后来,在我大学一年级的课程中,有人教了我python。在接下来的夏天,我用PythonChallenge和谷歌Code Jam中的问题进行了练习。 从算法的角度,从学习Python可以做什么以及如何操作它来充分利用Python的角度,解决这些问题是有帮助的。

出于类似的原因,我听说code golf也可以,但我自己从未尝试过。

其他回答

下载Twisted并查看源代码。他们采用了一些相当先进的技术。

教那些刚开始学习Python的人总是让你的想法清晰的好方法,有时,我通常会从学生那里得到很多简洁的问题,让我重新思考关于Python的概念。

彻底理解所有数据类型和结构

对于每种类型和结构,编写一系列演示程序来练习类型或数据结构的各个方面。如果你这样做了,在博客上记下每一个笔记可能是值得的……它可能对很多人有用!

如果你在科学中使用python(看起来你是这样),其中的一部分将是学习和理解科学库,对我来说,这些将是

numpy scipy matplotlib mayavi / mlab 查科 Cython

了解如何使用正确的库和向量化代码对于科学计算是至关重要的。

我想补充一点,用常见的python方式(面向对象的方法、列表、迭代器)处理大型数字数据集的效率非常低。在科学计算中,有必要以与大多数常规python编码员处理数据的方式截然不同的方式构建代码。

查看Peter Norvig关于在10年内成为一名大师级程序员的文章:http://norvig.com/21-days.html。我敢打赌这对任何语言都适用。