为什么要学编程为什么是Python
李学明 DevOps视角
作者介绍
comyn,李学明。python大神,原大众点评运维平台架构师,腾讯广告部核心运维专家,饿了么Python运维开发高级总监,现就职于海淘公司。多年一线运维经验,参与过架构改造、平台迁移、自动化建设等运维核心项目,对开源系统都有深入理解,如LVS、Haproxy、MogileFS、Varnish、Nginx等,曾修改iptables内核实现实时流量镜像复制,奠定了大型公司流量无损压力测试模型。被广大网友称之为“扫地僧”,无所不能,从装机、到写代码、到千万PV 架构细节、都有深入研究。
为什么是要学编程
君子求诸己,小人求诸人
不知道大家有没有感受到云计算的威胁?我已经深深的感受到了来自公有云的威胁,虽然国内云环境还不成气候,但威胁无时不在。
按照当前的发展趋势,运维,或者说中级运维的需求会越来越少,为什么会这样?因为随着自动化程度的提高,尤其像docker这样的容器技术的发展,更多的运维沦为操作工,而这是初级运维的事,我花5k请一个应届生能操作得很好,而且还听话,我干嘛要花15k去雇你。
然而,也并非所有运维都沦为操作工,那些在某一领域有深入研究的专家,在需要他的地方,永远是块宝,这样的人,无须我多说,属于行业里拔尖的那一小撮,不经过一番磨练,常人难以抵达那个高度。
说到这里,大家该开始灰心丧气了,其实没必要,我为什么不能成为拔尖的那一小撮呢?
成功没有捷径,但有的路好走一点,有的路难走一点,而通往高级运维的路,学一门编程语言可能是最好走的一条路。
因为它一步一个脚印,你看得到。这句话怎么理解呢?我说我的一个小故事,在我刚毕业那段时间,我花了两个月时间去优化一个系统,所有PHP模块静态编译,甚至操作系统都换成了getoo,能静态编译的都静态编译了,最终卓有成效,平均响应时间从3秒提高到了2.8秒。这是何等的沮丧。
后来,当我开始编程的时候,我每天,甚至每小时,我都能看到我的效果,虽然也有起伏,但一路上风景都很好。
编程是一种创造,在创造的过程中,你能体会到造物主的乐趣。而且能给你启发。当我在程序的世界里徜徉一段时间之后,回头看我当年所作的优化,很多曾经难以理解的原理,瞬间清晰明了,因为我真正从怎么创造它的角度去看,去思考了,当你真正的想过怎么去创造,那么你必然明白为什么会这样。
因为编程是一种创造,所以你总是能看清最本质的东西。
为什么是Python
Python是目前为止,上手最快的一门语言,而且它刚好够用
前面我们说了学习编程是一条通往成功的相对好走的路,然而,我现在要说的是,到目前为止,Python是这条路中最好走的一条。
Python不是最快的语言,Python不是功能做完备的语言,Python不是应用最广泛的语言,然而,Python是一门最容易上手的语言,而且它刚好够用。
我为什么说Python是一门最容易上手的语言呢?现存的编程语言种类不比自然语言少,然而常用的就那些,大家可以去看编程语言排行榜,虽然那个榜单没什么指导意义,但是,前50种语言,已经包括了你所听说过的大多数语言,而这50种语言里,有很多你可能是第一次听说。鄙人不才,我用来实际开发过最终用于生产环境的项目的语言,也就五六种,而以我浅薄的见解,这其中,Python最容易上手。
我初次接触Python,是我大学二年级的时候,那个时候我刚刚学完谭浩强版的C语言,对编程完全没有一点概念,当时所写的最复杂的程序就是遍历单向链表,在其中插入和删除节点了。
那个阳光明媚的下午,其他同学要么在泡妞,要么在打魔兽,当时流行的还是冰封王座,我既没有妹子,又实在不会玩游戏,百无聊赖,忽然看到一本讲蟒蛇的书,花了一个下午,匆匆看完一半,忽然感觉像进了一个新的世界。原来编程还能如此简单,原来列表是内置数据结构,逆天的是,连字典都内置了,而且整形永远不会溢出。
然后我就对Python着迷了,一个周之后,我已经能用web.py开发简单的网站了,我资质鲁钝,到这一步,花了一个周,聪明的你,也许三天就能搞定。
所以,在我看来,现存的语言里,上手最快的就是Python,虽然说是一家之言,但是从Python的使用者分布,也大致可以看出一些。Python在生物学,数学,经济学等科学领域使用非常广泛,而IPython notebook这一工具,逐渐成为数据建模领域的重要工具。
科学家们大多数精力在搞科研,所以当然要选择容易上手的语言,它们可没时间像程序员那般去调教编程语言。
你也许要说,bash不是更容易上手吗?对,你说得对,但是bash并不够用,虽然也有人用bash开发出了贪吃蛇,甚至还有bash的web框架,然而bash并不够用,这点你也许比我清楚。
然而,Python却不同,它刚好够用,这是多么美妙啊,然而更为美妙的是,它在很长一个阶段,都是刚好够用,无论是你刚刚学习编程,用它处理一些简单的事情,还是你已经很资深,用它开发诸如dropbox这样的应用,它都刚好够用。想一想,这是多么美妙的一件事啊。
一开始,我可以用它来开发一些简单的脚步,只为一些用bash难以实现的需求,慢慢的,我能把我的脚本组合起来,逐渐成为一个工程,在后来,我的工程逐渐变大,我开始抽象出标准流程,你在开始打造一个平台,看一步一个脚印,向着一开始你只能仰望的目标前进,而Python都刚好够用。
当有一天,你发现它不够用了,那么恭喜你,你已经到了一个新的台阶了,那时候,我们该探讨一些其他更好玩的东西了。