Python,超越基础
我已经掌握了Python的基础知识,并且度过了一个小小的假期,我想用其中的一些知识来学习更多的Python。问题是我不知道该学什么或者从哪里开始。我主要是Web开发人员,但在这种情况下,我不知道它将产生多少变化。
解决方案
我建议使用Django或者Pylons编写不平凡的Web应用程序,这需要进行一些数字运算。
学习新语言没有比致力于解决问题和随心所欲学习更好的方法了!
尽管不是项目,但很有意思的是Python挑战赛。我发现它在提高我的python技能方面非常有用,并且可以让大脑同时锻炼。
老实说,我喜欢《 Programming Python》一书。它有各种各样的小项目,其中大部分可以在一个晚上以轻松的速度完成。他们使我们熟悉大多数标准库,并且可能会引起兴趣。最重要的是,这些小型项目实际上在"日常"意义上是有用的。这本书几乎只是假设我们了解并理解Python作为语言的基本知识,而不是了解它庞大的API库。
我认为我们会发现值得一试。
根据我们"掌握基础知识"的确切含义,我建议我们通读Dive Into Python并键入/执行所有章节代码,然后获得诸如Programming Collective Intelligence的知识并通过它工作,我们将学习python很好,更不用说一些非常出色的算法,这些算法将对Web开发人员派上用场。
好吧,有大量用于高级Python编程的资源:
- 深入Python(免费阅读)
- 在线python食谱(例如在这里和那里)
- 奥莱利的Python食谱(请参阅亚马逊)
- 一个有趣的谜语游戏:Python挑战
如果想在履历表上写" Python",则必须掌握以下主题:
- 清单理解
- 迭代器和生成器
- 装饰工
它们使Python成为一种很酷的语言(当然还有我每天都会发现的标准库)。
编写一个网络应用程序,很可能在Django中,这些文档会教给我们很多不错的Python风格。
使用一些流行的库,例如Pygments或者Universal Feed Parser。这两个都提供了非常有用的功能,这些功能很难被正确使用,可在文档齐全的API中使用。
通常,我会远离没有充分记录的库
我们将把头撞在墙上,试图对它们进行逆向工程
以及围绕C库包装的库(如果没有的话)
任何C经验。我还在学习的时候就从事wxPython代码的工作
Python,这是我的第一语言,当时还很少
不只是wxWidgets的包装器。该代码很丑陋
我曾经写过。
除了动态导入一章没有在其他地方真正记录清楚的内容之外,我对Dive Into Python的了解不多。
人们通常会说"最好的学习方法是做事",但是我一直发现,除非我们专门学习某种语言来为某个项目做贡献,否则很难找到解决的小问题你自己去。
一个很好的解决方案是欧拉计画(Project Euler),其中列出了从简单到费力的各种编程/数学挑战。例如,第一个挑战是:
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
通过问题50,它已经变得有点困难了
Which prime, below one-million, can be written as the sum of the most consecutive primes
总共有208个,但我认为这里和那里添加了一些新的。
虽然在启动Project Euler之前我已经很了解python,但是我发现我纯粹是通过大量使用该语言学习了一些很酷的技巧。祝你好运!
我将在Python中插入Building Skills。另外,如果我们想更具挑战性,OO设计中的构建技能是一系列相当复杂的练习。
如果我们想掌握惯用的Python,那么Python Cookbook是绝对必要的。此外,那本书使我爱上了这种语言。
在Google视频中搜索" Alex Martelli"," Alex Martelli模式"和" Thomas Wouters"。关于高级Python,Python中的设计模式等,有很多有趣的话题。