2011-02-04 96 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將會使事情變得更困難,但可能並非不可能。