学过了7门编程语言后,我为什么还是最喜欢Python?

作为现在最热的语言,Python自有其强大之处。Python的哪些特性更容易让小白快速入门、让有经验者提升算法能力?今天我们就来分享一位大神的回答。

既然Python那么简单易如门,学Python会降低编程能力吗?

作为一个做科学计算的码农,这里必须答!不会!

首先我们来定义一下什么叫编程能力。私以为应该同时包含两个部分:写代码的能力,以及算法、数据结构设计能力。

从小学四年级开始学QBasic,到中学学Pascal和C,本科时一发不可收拾,干挺C++、Java的同时搞定Obj-C,读研前又很快的掌握了Python,最近又学了Swift,用过这么多语言的唯一感想只不过是一个高级语言除了区分是对象化的还是过程化,其余什么的区别不大,它就是个语言而已。

用QB同样可以写个平衡树,C没有STL的话要用到的功能自己写一遍就好,也不会太复杂。

Python是个解释语言,同时还是个语法自由度相当大的语言,这就意味着写程序时绝大多数错误是只有当你的程序跑到出错语句的时候才会提示出来的,这一点与其他编译语言差别非常大,以至于当你用Python写个不太小的玩意时,必须有非常清晰的概念、对语言和对程序流程的掌握

Python里任意变量都是对象指针的设计,使得编程的人必须了解解释器运行机制。从这一点看,Python对于建立编程概念,了解程序运行机制是有很大帮助的。比起无脑Debug-Watch,缜密的思维以及看着代码就能准确分析运行情况的能力,更有助于写出优秀的代码,也是对代码能力的锻炼。

至于算法能力的锻炼,与语言本身毫无关联,Python相比C++一辈最大的好处就是在编程之时不需要为诸如变量申请之类的问题操心,可以更加流畅地实现心中所想。我喜欢用Python做算法和思想的验证,就是因为省事,学习、理解算法,甚至设计新的算法,重要的还是个量的问题。

思考够了,就要迅速实现,然后尝试更多方案。因此,Python这样一个编程省时的语言是提高算法能力的好工具。

总体来说,无论写代码能力还是算法设计能力,都是靠多写和多想来锻炼的。Python会不会降低编程能力,也就看会不会减少你写和想的机会。

老一派的程序员可能会觉得Python这种玩意有大量模块,很多代码不用自己写,减少了写复杂内容的机会。事实上是一个程序好不好并不是由手写快排或者捏个平衡树之类的玩意确定的。

面对有STL的C++,你还会蛋疼到为了排个数组而写快排么?中学时我能把Splay tree背得滚瓜烂熟,10分钟能用Pascal敲400来行写一个Splay tree,但是那又如何?单调重复的代码背下来写一万遍并不会提高编程能力,甚至算不上多写。

相反,现在别人都造好了轮子等你来用,一方面能更快实现目的,同样的时间里你能写更多的不同的程序,另一方面能针对自己的需求对轮子进行改造,有信心的话把个轮子改造成直升机螺旋桨都不成问题。Python给予了更大的创造的空间,与多写多想并不矛盾。

非要说Python的问题,那就是执行效率了。不过好歹效率还没差出两三个数量级,做做原型啊思想验证啊什么的,效率也不是最重要的问题。原型验证了,有继续开发的价值,影响效率的部分用别的语言写一遍编译一下就好了嘛!

Python就像画速写和素描,或许比不上油画,后续最终不能挂上画框开展览,但一定是锻炼基础的有力工具。

要明白一点,编程并不是搬砖的活计,不把自己当艺术家,好歹也要当自己是个工匠,而不是个苦力小工。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190926A09C5400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券