学习python的好方案是什么?

时间:2011-02-04 13:57:26

标签: python project pygtk

我是大学二年级学生,我认为扩展自己的能力是个好主意。我将在今年晚些时候使用python来完成一个C程序的gui(使用Tkinter),但是我想做一个侧面项目,而python似乎是一个很棒的语言。

我想要一个具有多个级别的项目来编写代码,所以它肯定会有一个gui和命令行版本,然后可能是一些数据库的东西(因为我想了解更多关于SQL和其他数据库技术) )。

我以为我可以制作一个音乐播放器。首先制作一个播放音乐文件的命令行程序,然后从那里展开它,可能使用pygtk作为gui。

考虑到我没有python经验,但我确实有很强的C和Java背景,是否会出现意外阻止我的任何困难?我之前从未制作过音乐应用程序,例如,我不确定是否会保留音乐库。

您是否还有其他可能推荐的项目,可以在一个晚上一个小时内完成,为期3个月? (或者从中获得一个重要的工作程序,即使它不完整)。

谢谢!

6 个答案:

答案 0 :(得分:10)

  

考虑到我没有python经验,但我确实有很强的C和Java背景,是否会出现意外阻止我的任何困难?

是。

  

我之前从未制作过音乐应用程序,例如,我不确定是否会保留音乐库。

那会阻止你。

想要建议吗?

步骤1.避免询问是/否问题。

步骤2.开始缩小。 [见下文]

步骤3.从Python教程开始。

步骤4.找到相关项目,下载代码并阅读。


开始更小。

“每晚约一小时,连续3个月”。 90个小时

分配40个小时来做​​足够的Python教程来理解语言。通常,我建议80小时,但你的预算很紧张。

再分配40个小时来确定声音播放API在您的平台上的工作方式。这可能是太多的时间,但总有一些奇怪的谜团。 OS API和设备驱动程序问题通常很难解决。

再分配40个小时来犯错误,以获得运行良好的PyGTK应用程序。通常,我会为此分配至少120个小时,因为GUI设计包含许多新概念,语言教程中没有介绍。同样,你的预算很紧张。

学习SQL和数据库设计以及ORM API。也许40个小时。你可以在这里犯很多错误,你需要时间来犯这些错误。

分配另外40个小时来创建基于现有文件系统API的某种“音乐库”。这涉及定义一些用于添加,更改和删除的用例,以及如何实现这些用例。

这是我建议你可能想要“开始变小”的理由。

答案 1 :(得分:2)

编写程序将帮助您学习语言,但IMHO加入开源python项目的开发团队将帮助您学习更多,因为阅读其他开发人员编写的高质量代码将向您透露你永远不会发现的语言。

所以,我的建议是寻找一个小而高质量的python开源项目,阅读它的代码,了解它的作用然后开始贡献。选择您使用或喜欢的项目可能会有所帮助。

答案 2 :(得分:2)

我没有任何好的项目创意,但是开始认识Python的一个很好的方法就是'Python挑战':http://www.pythonchallenge.com/

几年前我自己尝试过。这是一种习惯于pythonic way思考的好方法。

答案 3 :(得分:0)

看看XBMC,应用程序本身是庞大的,用C / C ++编写,但你可以用Python编写插件。有关开始使用wiki的大量信息。

HOW-TO write Python Scripts

HOW-TO write plugins for XBMC

XBMC是一个媒体中心,所以如果你喜欢音乐,肯定有可能。

答案 4 :(得分:0)

我很乐观地开始这个项目(从我的POV看它)。关于编写python,参数,文本等,{/ 3}}命令行客户端将很好地使用/ tutorials。我希望使用gstreamer或其他非常高级别的库,实际播放可能不会太难。< / p>

小步骤的数据库也应该是一个平易近人的项目。我做过类似的事情,主要是为了学习/尝试SQL(我通常从不使用),而且我不认为我在这方面有非常广泛的技能。

PyGtk(或gtk3)也是一个整洁的单位,本身就是一种体验。它可能是simple或者它可能会引导你击败事件和线程。 :)

如果你可以编程,我希望你能在一天内获得一个非常有用的python块,并且可以在工作周中编写许多实际有用的小工具。但是,将问题中的所有内容放在一起不会很快发生。无论如何,我认为这是一个好主意/概念,你可以逐个开始原型设计,并在受到自己兴趣的驱动下学到很多东西。

当然,使用Windows会让事情变得更难,但可能并非不可能。

答案 5 :(得分:0)

我将从几件事开始,以帮助您入门:

  • 关于为什么要构建此东西的特定目标
  • 一旦您实现了目标,那么我会将其设置为4-6周。您认为在该时间范围内可以交付什么?
  • 一旦有了最终目标,并且有了交付物的具体细节,就需要每天进行该项目的工作。不只是在周末,也不只是在您认为有时间的情况下,每天至少要抽出30分钟时间来完成项目。
  • 随身携带文件。你在学什么?是什么让你难过?确保保持最新状态,以便第二天回到您的项目时,它就新鲜起来,并且很容易再次出现。
  • 遇到问题了吗?请求帮忙。找到合适的论坛或小组,并询问有关您所面临问题的详细问题。大多数社区都很开放,愿意为正在学习的人提供帮助。

我已经将其中的一部分提炼成flowchart,以帮助人们选择辅助项目。其他部分实际上是我教的名为30 Minute Project的课程的一部分。