2011-02-04 92 views
2

我是二年级的大学生,我认为这是一个不错的主意,可以扩展我的能力。我将在今年晚些时候使用python为C程序完成一个gui(使用Tkinter),但我也想做一个侧面项目,python似乎是一个伟大的语言。学习python的好方案?

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

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

考虑到我没有python的经验,但是我在C和Java方面确实有很强的背景,会不会有任何困难会意外阻止我?例如,我从来没有制作过音乐应用程序,但我不确定保留音乐库涉及什么。

有没有其他项目可以推荐,可以在一个小时内完成,一个晚上,3个月? (或者从中得到一个重要的工作计划,即使它没有完成)。

谢谢!

回答

10

考虑到我没有python的经验,但是我在C和Java方面有很强的背景,会不会有任何困难会意外阻止我?

是的。

我以前从未做过音乐应用程序,例如,我不确定在保存音乐库时涉及什么。

这会阻止你。

想咨询?

第1步。避免询问是/否问题。

第2步。开始小一点。 [见下文]

第3步。从Python教程开始。

第4步。找到相关的项目,下载他们的代码,并阅读它。


开始时小一点。 “每晚约1小时,3个月”。 90个小时。

分配40个小时做足够的Python教程来理解语言。通常情况下,我会建议80个小时,但您的预算紧张。

分配另外40个小时来计算声音回放API在您的平台上的工作方式。这可能是太多时间,但总会有奇怪的奥秘。 OS API和设备驱动程序问题通常是难以解决的问题。

分配另外40个小时以使得运行良好的PyGTK应用程序发生足够的错误。通常情况下,我会至少分配120小时,因为GUI设计包含许多新的概念,但在语言教程中未涉及。再次,你的预算紧张。

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

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

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

+0

我肯定会从python的基础开始。但我不相信我开始太大了。它只是我希望实现的一个总体目标。正如我所说,基点只是一个播放音乐文件的命令行程序。可能类似.ogg或.flac我可以让我的手。 – Blackbinary 2011-02-04 15:04:50

+0

我很欣赏你从小开始的扩张。但是,正如我所提到的,到3个月末我不需要一个完整的工作项目。只要我有一些工作,即使不是所有的功能都在那里,那也没关系。在这种情况下,我可以有一个GUI应用程序,可以一次加载和播放单个文件。没有库,没有数据库,非常有限的文件支持。同样,我大部分时间都在学习python,我可以从类似的FOSS项目中看到代码。 – Blackbinary 2011-02-05 16:47:13

+0

@Blackbinary:“完成...... 3个月”是在问题中。 “在3个月结束时不需要完整的工作项目”在您的评论中。请考虑**更新**问题以澄清此问题。 – 2011-02-07 17:58:18

2

编写一个程序将帮助你学习语言,但是恕我直言,加入开源python项目的开发团队将帮助你学习更多,因为阅读由其他开发人员编写的高质量代码将向你披露你永远不会单独发现的语言。

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

2

我没有什么好的项目设想你,但一个很好的方式,开始在了解Python是“Python的挑战”:http://www.pythonchallenge.com/

我没有尝试过自己在几年前。它是习惯在pythonic way中思考的好方法。

0

我会非常乐观地开始该项目(从我的POV看它)。命令行客户端在关于编写python,参数,文本等的tutorials之后会很好。我期望使用gstreamer或另一个非常高级的库,实际的播放可能不会太难。

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

PyGtk(或gtk3)也是一个整洁的单位,它本身就是一种体验。它可能是simple或者它可能导致你失望事件和线程的拉比。 :)

如果你可以编程,我希望你可以在一天中选择一个非常有用的python块,并且可以获得大量实际有用的工作周内编写的小工具。但把你问题中的所有事情放在一起不会很快发生。无论如何,我认为这是一个好主意/概念,您可以逐个开始原型设计,并在受到自身利益的驱使下学习很多东西。

使用Windows将会使事情变得更困难,但可能并非不可能。