Learning Python for a .NET developer
几年来,我一直在C积极发展。我主要在.NET堆栈上构建企业应用程序和内部框架。
我从来没有必要为我的任务使用除C之外的任何其他主流高级语言,因为.NET是我们使用的标准平台。
有一些传统的python应用程序需要我继续支持,我一般不接触python和动态语言(尽管我已经做了一些javascript)。
我希望能得到一些指导/建议,以帮助您学习类似于Python这样的静态类型的语言。
编辑:使用Ironpython不是一个选项!
Food和Muirhead的《Ironpython in action》是一本非常好的书,非常适合向.NET人员教授python,以及向python人员教授.NET。我可能有偏见,因为我是一个技术评审员,福德是一个朋友,但我以前也有过其他的案例,一个朋友写了一本书,我技术评审了它——最后我认定这本书是错的,并公开说了这样的话(失去朋友的方式,但是,我就是说不出谎言,至少在Python关心的地方是这样的)。-)
编辑:如果你被禁止移动到Ironpython(这可能会很好地支持你的传统应用程序,顺便说一句),有更好的答案:Mark Pilgrim潜入python通常被认为是经验丰富的开发人员最好的python简介,我自己的python简而言之被称赞为是超级明星开发人员最快的登船方式。我当然偏向于这些——马克是一个同事,我妻子是他的书的关键技术编辑(也是我自己的),显然我也偏向于我自己的书;—)。但是,我确实倾向于对许多最好的Python书籍抱有偏见,因为我要么参与了他们的编辑工作,要么是他们的作者的朋友,要么两者兼而有之;-)。
我在使用Python时遇到的最困难的事情是正确地把我的脑袋包在鸭子打字上…一开始我觉得这很恐怖,只是把我脖子上的头发梳了一下。
接下来是按约定划分的范围,但是这个范围非常简单。白色空间的重要性给了我一些冲击。
然而,一旦你放松自己的语言的简洁和发展速度,你就会学会更多地欣赏它。过了一会儿,我觉得这是我所经历过的最好的事情!!)
以下是一些对我有很大帮助的事情:
首先,我从这本书开始,了解了语言的基本知识,对于日常使用,python快速参考卡非常有用。同时,控制台将是你最好的盟友,尝试快速的事情,巩固你的学习。
对于IDES来说,来自EclipseWorld的Pydev是我的一个自然选择,但是还有很多选择。但是,如果您对Visual Studio环境更熟悉,那么用于Visual Studio的Python工具也相当不错。
祝你好运,希望你能像我一样找到Python。
要适应动态输入有一个很大的初始障碍。第一步是,当您查看python代码并意识到变量没有在任何地方定义时,您只是凭空创建它们,这感觉像是跳崖。在你的悬挂式滑翔机正常飞行前有一小段时间。
在你相信你新发现的动态翅膀之前,这需要时间,而且你可能只能通过和它们一起做特技飞行来获得它们。了解Python如何处理引用,玩猴子修补方法,鸭子类型的各种动物。试着学习一些难看的技巧。
尽管你不能用Ironpython来学习这个,但是你没有理由不能用它来学习python。
从C到Python野外的野鸭,你将经历相当多的文化冲击。缺少类型和IntelliSense可能会让人望而生畏。你在javascript中的经验真是太好了。另外还要知道,由于缺乏经验,python的区分缩进的块规则可能会非常混乱(通常您要么喜欢它,要么讨厌它:—)
除此之外,从一种语言转移到另一种语言的最大挑战通常是框架。不幸的是,了解所有的类和函数只需要时间。
对于一个有经验的开发人员来说,深入了解Python是一本非常好的书。
WesleyChun的核心python编程书采用了一种更"深入"的方法,对于经验丰富的开发人员来说,这可能有点慢。但与其他语言相比,它允许非常容易地比较基本语法和运算符。韦斯利的写作风格很容易阅读,他的示例项目也不平凡,足以让人真正感兴趣。
《Python食谱》是学习"Python"式编程的绝佳参考。这本书有几百本(?)关于如何用Python解决日常常见问题的示例。一般来说,"食谱"系列会比其他任何一本书更快地向您展示该语言的习语。
每当我需要学习一种新的编程语言时,我就开始使用它来完成所有的"日常维护"任务——我通常用shell脚本或常用的Unix工具来解决的所有小问题——我开始使用新的语言来解决这些问题。因为您有.NET经验,所以Ironpython可能是学习Python时利用这些知识的一个好方法。即使您只在个人沙盒中安装Ironpython……并将其用于所有日常繁忙的工作编码任务,这也是学习python语法和习惯用法的好方法。
我建议你读一本关于它的书。初学者的书。它将包含许多你已经知道的东西,但是你不会错过关于使用动态语言的任何东西。我可以向您介绍一下Python,它看起来非常友好,或者Python教程,它看起来非常重要(这就是我学到的)。
如果你有时间的话,专业的Ironpython也是值得一读的。
我建议您使用Ironpython来帮助您学习。它是.NET框架上Python的实现。因此,您可以使用/学习访问.NET类库的python。
一个好的开始是通过下载Ironpython并查看实际中的Ironpython,这是一本在.NET框架中查看python的非常好的书。
编辑:因为Ironpython不是一个选项,所以忽略这个答案。谢谢。