从徒弟到专家
我一直在学习,工作和使用Python一年半。 作为一名慢慢转向生物信息学的生物学家,这种语言一直是我在实验室做出的所有主要贡献的核心。 我或多或少地爱上了Python允许我表达美丽解决方案的方式,以及语言的语义,从思想到可行代码的自然流动。
我想知道的是你对这个或其他论坛中很少见到的问题的回答。 这个问题对于我来说对于Python改进途中的任何人来说似乎都是重中之重,但是谁不知道他的下一步应该是什么。
让我总结一下我不想先问的问题;)
我想知道你的意见是:
你会推荐给一个Python熟练人员的步骤,从学徒到专家身份(随时随地停止,无论你的专业知识是什么),以便持续改进,成为一个更好,更好的Python编码器,一步一个脚印。 SO上的一些人几乎看起来值得他们的Python能力崇拜,请赐教:)
我会喜欢的那种答案(但可以让读者感到惊讶:P)的格式或多或少是这样的:
我真的很在意在不同阶段知道你应该注意什么,以便持续地进步(当然是有适当的努力)。 如果您来自特定的专业领域,请在此领域讨论适当的路径。
编辑:感谢你的伟大的输入,我回到了Python的改进轨道! 我真的很感激!
我认为Python掌握的过程如下所示:
进一步掌握Python知识的一个好方法是深入研究已经使用的库,平台和框架的源代码。
例如,如果你在Django上构建一个站点,可以通过查看Django如何实现相关功能来回答很多可能会影响你的问题。
这样你将继续选择新的成语,编码风格和Python技巧 。 (有些会很好,有些会很糟糕。)
当你看到源代码中不明白的Pythony时 , 跳到#python IRC频道 ,你会发现很多“语言律师”很乐意解释。
多年来对这些小小澄清的积累导致对语言及其所有细节的深入理解。
更深入地理解Python的数据类型及其与内存管理角色的关系
正如社区中的一些人所知道的那样,我教Python课程,其中最受欢迎的课程是综合性的Intro + Intermediate课程以及引入各种应用程序开发领域的“高级”课程。
很多时候,我会问一个类似于“我应该参加你的开场白还是高级课程?”的问题?我已经为Python编程了1 - 2年,而且我认为介绍对我来说太简单了,所以我会喜欢直接跳到先进的......你会推荐哪个课程?“
为了回答他们的问题,我探讨了他们在这方面的强大程度 - 并不是说这是衡量他们是否已经准备好接受任何高级课程的最好方式,而是看他们的基本知识对于Python的对象有多好,以及内存模型,这是由不仅是初学者而是那些超越这些的人编写的许多Python错误的原因。
要做到这一点,我将这些简单的两部分测验问题指向他们:
很多时候,他们能够获得产出,但为什么更难以及更重要的回应......我将权衡输出作为答案的20%,而“为什么”获得80%的信用。 如果他们无法理解为什么,无论Python具有怎样的经验,我总是会引导人们进入全面的介绍+中级课程,因为我花了一个关于对象和内存管理的讲座,以便您能够用产出和充足信心的原因。 (仅仅因为在1 - 2年后你才了解Python的语法,并不能让你准备好超越“初学者”标签,直到你对Python的工作方式有了更好的理解。)
接下来的询问需要类似的答案更加困难,例如,
例3
x = ['foo', [1,2,3], 10.4]
y = list(x) # or x[:]
y[0] = 'fooooooo'
y[1][0] = 4
print x
print y
我建议的下一个主题是理解引用计数,了解“实习”意味着什么(但不一定使用它),学习浅层和深层副本(如上面的例子3),最后是各种类型之间的相互关系和语言中的构造,即列表与元组,列表与元组,列表解析与生成器表达式,迭代器与生成器等; 然而所有这些其他建议是另一个帖子。 希望这有助于在此期间! :-)
PS。 我同意其他反馈,以获得更深入的反思,并研究其他项目的源代码,并为这两个建议添加强大的“+1”!
PPS。 好的问题BTW。 我希望自己一开始就有足够的智慧来问这样的问题,但那是很久以前的事了,现在我正在尝试用我多年的全职Python编程来帮助其他人!
链接地址: http://www.djcxy.com/p/7409.html