
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
作为现在最热的语言, 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++ ,你还会蛋疼到为了排个数组而写快排么?中学时我能把 Splaytree 背得滚瓜烂熟, 10 分钟能用 Pascal 敲 400 来行写一个 Splaytree ,但是那又如何?单调重复的代码背下来写一万遍并不会提高编程能力,甚至算不上多写。
相反,现在别人都造好了轮子等你来用,一方面能更快实现目的,同样的时间里你能写更多的不同的程序,另一方面能针对自己的需求对轮子进行改造,有信心的话把个轮子改造成直升机螺旋桨都不成问题。 Python 给予了更大的创造的空间,与多写多想并不矛盾。
非要说 Python 的问题,那就是执行效率了。不过好歹效率还没差出两三个数量级,做做原型啊思想验证啊什么的,效率也不是最重要的问题。原型验证了,有继续开发的价值,影响效率的部分用别的语言写一遍编译一下就好了嘛! Python 就像画速写和素描,或许比不上油画,后续最终不能挂上画框开展览,但一定是锻炼基础的有力工具。
要明白一点,编程并不是搬砖的活计,不把自己当艺术家,好歹也要当自己是个工匠,而不是个苦力小工。
更多Python学习技能培训在东莞达内百IT培训~