具体还看想学些那方面了,也要看自身的基础如何,同时也建议分阶段来看。
不过具体的话还是依题主的情况来说好了,不然这个问题也就没有具体的答案。
首先可以说点不想干的话题,比如:
由此似乎可见:
然后,作为一名从web开发起步的老菜鸟,先分享下大概的学习经历好了。
鄙人大概也是大二的时候(2012年秋)真正开始用python的,当然前面有玩flash的背景,所以对同类的脚本语言,上手还算比较习惯。比如当时的ActionScript2.0的水平大概是这样子的(300行左右代码):http://koalangelion.deviantart.com/art/Restend-379547522
中间的过程还是从略好了,毕竟是业余玩家。到现在零零碎碎也有两年了吧,现在的python水平… 还真不好说,简单举个粒子大概是这样的:https://gitcafe.com/restait/buffer/tickets/22
所以回答这个问题的话,首先我觉得这些编程的东西,对于题主来说,需要学习的还有很多。。。
当然能在大二就用python写个mac上用的小工具还知道放到github上,且不说代码水平,至少这种意识还是挺不错的。然而人和人之间,时代与时代之间自然是有差别,自然同为大学生,我还买不起mac,自然同为大学生,我也不能和那些初二就混IRC还发pull request的中学生相比…
所以我觉得题主可能更在意的是怎么组织一个大型的软件项目,以及如何造一个复杂的UI。而这些东西,其实github上面不是很多,能作为学习参考的就不多了,而使用python作为主力语言的就更少了... 原因大家懂的,至少开源出来的不是很多。
而且这里有两点提示:一是python不太适合用来构造一个完整的大型项目,二是python在图形界面这边确实还是短板。
然后有了上面这些铺垫,感觉再推荐些好的github项目也不迟。这里我觉得其实可以避免一个误区,就是很多好的python项目,恰恰不在github上面,比如SQLAlchemy(bitbucket,你懂的),比如BeautifulSoup(lauchpad)。所以这两个虽然也是适合研读的好项目,不过因为不符合github这个约束,类似的也就不涉及了。
先说些个人觉得对自己学习python比较有益的且在github上托管的项目好了(web开发向top6,下面的条目不含http://github.com/前缀):
这些项目大多是看过源码的,不过主要还是有文档的看文档。不过要说简单的,适合题主水平的,可以看下redis-py、requests和douban-client,pyramid这种结构比较庞大的,一开始上手看源码可能会有点吃力(依赖zope.interface的项目大多都这样,比如twisted,scrapy)。bottle的话虽然简单,但是没有什么太多实际可以借鉴的地方,毕竟把全部代码揉在一起,在IDE还没有智能到可以自动分页的时代,看起来实在是太恶心了...
其他有些项目也是不错的,不过本人毕竟没有细看过源码(比如shadowsocks),这里也就不做推荐了。所以真要推荐的话,题主可以在上面的六个里面随机选两个了解下。有时候上手难点也无所谓,只要不是太恶心的项目,也还是能摸透的(实不相瞒,pyramid从入门到玩转大概有一年的时间间隔)。
而django之流,拿来用还可以,深入的话其实也是个巨坑,当然这里我还是不黑django了...
最后留点相关提示,有时候学习一个项目,具体的代码实现不是重点,而是如何一步步演进且维护到现在,那些最初留下来的,以及后来被舍弃掉的,这些决策,其实也可以理解为一种潜在的设计模式,而所有这些潜藏在项目之下的,才是更值得学习的地方。至于为什么前面说六选二呢,因为单从一个项目去认知整个python世界,也是片面的,于是乎这里就不嘲讽django和tornado了。所以进而推广,题主要是有志于做点大项目,有空应该多了解些工业上常用的语言,参与些实战项目攒攒经验,毕竟单从python去了解这个编程世界也是片面的,于是乎这里我就不黑js了。
n0tr00t/Sreg · GitHub