美文网首页编程之美E_Coder大学大学大学
如果要学一门计算机语言,就学这个吧

如果要学一门计算机语言,就学这个吧

作者: 意见狗威廉 | 来源:发表于2016-06-17 08:27 被阅读12663次

    作为一个专业修(漂亮妹子)电脑的,本狗很多时候被问到推荐一门易学好用又能装逼的计算机语言,于是今天我就来小小得罪你们一下:

    这门语言必须就是Python啊!(欢迎来战)

    作为现在美国顶尖大学计算机专业最受欢迎的入门语言,再加之搭上了现在机器学习的东风,Python之所以这么火,是有它的道理的。

    然而本狗今天推荐它的主要理由却是这个:

    我相信,大多数时下为了想要在目前火热的IT领域找一份工作而开始学习Python的人,都没有看过这个东西——The Zen of Python(Python禅道)。略懂Python的人只需要在命令行里输入import this,就能看到由Python领域著名的领军人物之一——Tim Peters写下的这一段阐述了Python禅道的文字,简单,却又略显晦涩。

    本狗非常非常喜欢这段文字,将浅显的理解翻译如下:

    优美胜于丑陋(Python以编写优美的代码为目标)

    简明胜于隐晦(代码应该是简洁明了,而不是复杂难懂的)

    简单胜于复杂(如果能有简单的方法实现,就不应该使用复杂的方法)

    复杂胜于繁复(如果必须要以复杂的方式呈现,需要尽量简化而不使其繁复凌乱)

    扁平胜于嵌套(优美的代码模块需要清晰,繁复的联系要尽量少)

    稀疏胜于紧凑(或许写的是代码应该稀疏,有条理方便阅读,而不是一行解决)

    可读性很重要

    任何特殊状况都不应该打破上述规则

    即使实用性重于(理论)的纯粹性(代码是用来解决实际问题的,纯粹的理论只存在于设计,有很多需要单独处理的边界情况)

    错误却不能在不被知晓的情况下包容(任何错误都需要被知晓)

    除非你允许它这样被包容(在被知晓的情况下如何处理是设计者的责任)

    当存在多种可能,放弃猜测

    在这里永远只有一种,而且是唯一一种明显的解决方案(奥卡姆剃刀的体现:如无必要,勿增实体)

    虽然这并不容易,因为你不是Python之父(这个Dutch荷兰人指Guido, Python的创造者)

    即刻动手胜于拖延

    审慎思考胜于鲁莽

    好的实现是容易被解释的

    反之亦然(好的代码永远是自解释的)

    命名空间是绝妙的理念,我们应该多使用

    以上便是Python禅道的19条内容,然而实际上它在官方的包描述里包含了20条内容,为什么如此呢?本狗先卖一个关子,说点有的没的,把彩蛋放在最后。

    之所以这是本狗推荐Python的最主要理由,是因为我认为在学习一样东西之前,你得明白它是干什么的,它为什么要这样做(设计)。

    然而本狗残酷地发现,现在大多数想要学习一门计算机语言的人,或者学习计算机这个邻域的人,纯粹是因为“编程好找工作啊”,“码农工资高啊”等这一些大同小异的理由,而不是对一个领域本身的爱好。仅仅是为了会使用这个工具,找一个能使用这个工具的工作,眼里看到的只是高薪和大量的职位需求——这也许就是你一辈子缘木求鱼的开端。

    如果我们简单地仅仅把这些语言当做工具使用,认为其它的东西(数学原理,业务逻辑)才是重要的;商学院的CEO们也仅仅把码农们当做工具使用,认为高大上的想法或者商业运作才是重要的——那么这两者并没有太大的本质区别。为什么?

    因为当你不用心对待一件事物的时候,这件事物也不会用心对你——对人也好,对物也罢,万事万物都是这个道理。

    还在上学的时候,语文课本上看过的两个小故事让本狗至今难忘,出自冯骥才先生的《俗世奇人》——泥人张贱卖海张五,刷子李刷墙没白星——这才是使用工具时需要的“工匠精神”,他们手中的伙计,都是有“灵性”的。

    真正出类拔萃的工匠,对他们手中的工具是有感情的,他们手中的工具,是比别人的工具都要有“灵性”的,因为他们比谁都了解他们手上的老伙计。在这个浮躁的世界中,我们仍然保持着对“工匠精神”的敬佩,看看火的不行的《我在故宫修文物》系列就知道了。

    学习编程语言嘛,自然也是这个道理。比如Python的禅道,比如与Python设计思想截然不同的Perl,比如瑞士军刀C++,他们都有自己设计的初衷,这些甚至也代表了在一个编程语言领域内的哲学意义。

    那么最后这第20条禅道是什么呢?本狗猜想是这个包源代码想表达的

    s ="""Gur Mra bs Clguba, ol Gvz Crgref

    Ornhgvshy vf orggre guna htyl.

    Rkcyvpvg vf orggre guna vzcyvpvg.

    Fvzcyr vf orggre guna pbzcyrk.

    Pbzcyrk vf orggre guna pbzcyvpngrq.

    Syng vf orggre guna arfgrq.

    Fcnefr vf orggre guna qrafr.

    Ernqnovyvgl pbhagf.

    Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.

    Nygubhtu cenpgvpnyvgl orngf chevgl.

    Reebef fubhyq arire cnff fvyragyl.

    Hayrff rkcyvpvgyl fvyraprq.

    Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.

    Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.

    Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.

    Abj vf orggre guna arire.

    Nygubhtu arire vf bsgra orggre guna *evtug* abj.

    Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.

    Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.

    Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""

    d = {}

    forcin(65, 97):

    foriinrange(26):

    d[chr(i+c)] = chr((i+13) % 26 + c)

    print"".join([d.get(c, c)forcins])

    这段杂乱无章的代码,用一个顽皮且混乱的ROT13加密算法实现加密了这19条Python箴言,在某种程度上提供了一个大反例,是不是就是Tim Peter给我们的现身说法呢?

    相关文章

      网友评论

      • ce490a6706a9:当我第二次来到这里, 居然把评论看完了, 一下子冒出这么多程序员,看来很多人默默的看着你的文章
      • 意见狗威廉:...一个大写的服字
      • 滑二稽:优美胜于丑陋(Python性能差)

        简明胜于隐晦(Python性能差)

        简单胜于复杂(Python性能差)

        复杂胜于繁复(Python性能差)

        扁平胜于嵌套(Python性能差)

        稀疏胜于紧凑(Python性能差)
        -------------------------------
        还治不了你了,#(滑稽)
      • bruce_zhou:之前用Python写过一个博客网站,因为要混饭吃,加之国内现在Python方面的机会太少,就没再继续深入了
        博客地址:http://52.193.105.230
        欢迎大家围观
        bruce_zhou:@Cybershu 欢迎围观 :smile:
        https://github.com/zhouxinkai/awesome-python3-webapp
        Cybershu:@bruce_zhou 源码有在git开源吗?
      • 小调儿:对数学有要求吗
        小调儿: @意见狗威廉 (⊙o⊙)哦我一直以为程序员数学都属于学霸
        意见狗威廉:@小调儿 就单程序来说,对数学没什么要求
      • 73269e277f2b:其实go lang也挺不错的,专门解决高并发
        73269e277f2b:@意见狗威廉 我也不知道😖
        意见狗威廉:@向右滑动解锁我的心 一般人初学语言根本不知道啥是并发
      • 话恁多:谢谢^_^
        意见狗威廉:@话恁多 多谢!要是喜欢可以关注我的公众号:意见狗威廉,有更多想分享的!
      • dudycoco:人生苦短,python为岸
      • 狮女柔心_Nicole陶:哲学很好你不能用心对待万事万物和人它们也不会用心对你我选计算机当时就因为热门而没多想
      • 凡人法相_仙逆遮天:java八年工作经验,最近也在抽空学python,中肯的说,每种语言都有独到之处,心中有编程思想,语言不是阻碍
        意见狗威廉:说得很对!
      • 每日好奇心:python怎么读啊 拍森还是fai森啊
        唤灵者:@意见狗威廉 拍桑点赞!:smiley:
        意见狗威廉:其实是拍桑
      • 86b5e2815a63:太难,
      • 向日葵的笑:必须是python呀学完python后可以学js很多都一样
        意见狗威廉:@向日葵的笑 学编程 从0到1比较难 从1到n蛮容易;要是喜欢可以关注我的公众号:意见狗威廉,有更多想分享的!
      • 年轻的傀儡:是啊~~总是眼红码农的高工资………而不是一门编程语言无限的可能性与创造性………
      • 71a113ff2549:有没有带带我的,节奏啊!(~˘▾˘)~
      • 倒立的笔杆:能给零基础的文科生一个视频教程吗?
        意见狗威廉:@倒立的笔杆 ...嗯...优酷上肯定有的 不信你搜...但是编程这东西真的不如看书加自己写
      • 4bb50c2b55ec:嵌套一多了你就要一块一块数了😂
        意见狗威廉:@冻酸奶泡芙 要是喜欢可以关注我的公众号:意见狗威廉,有更多想分享的!
        意见狗威廉:@冻酸奶泡芙 豆腐数起来比找括号爽...
      • f90fb92a67b0:《Java从入门到放弃》hiahia~
        a59ea467e7f9:@小小时光丶2c 加油
      • RingRun:94年明明是22岁,且Pyhone好像是91年的。
      • 对歌当酒:哈哈!“人生苦短,我用Python”
      • thepik:还行!
      • thepik:哈哈
      • Yaanco:弱弱问下,为毛没人提一下oc呢, :joy:
        mark666:@单线程 oc小众语言
      • 末无:我只会js啊。。。
        caf7aeb3ac1c:@末无 你会JS还学个P python js 全端通杀。 从客户端到服务端 从app应用到桌面应用
      • 嘿那小子好帅:大赞楼主,量化投资必修课啊
        意见狗威廉:@嘿那小子好帅 你怎么知道我做量化投资...可以关注我的公众号:意见狗威廉,有更多想分享的!
      • LinxsCoding:py+java
      • 奔跑的小草:语言真的是工具而已,非特定场景和需求下,语言是不分优劣的,能说菜刀的折叠刀哪个更好吗?那么在切水果的时候猜到和折叠刀哪个更好呢?应该也得看拿刀的人适合用哪种吧
        使用工具的人的关注点不同,对优劣的看法自然就不同,有人追求语法优雅,有的喜欢高效,有人喜欢简单易读,有的需要单线程,而有的需要并发
        奔跑的小草:@意见狗威廉 嗯哼 :sunglasses:
        意见狗威廉:@奔跑的小草 我觉得Python 好学,所以推荐
      • a73aeadef122:新手该从那学起呢
        意见狗威廉:@思诗不倦 要是喜欢可以关注我的公众号:意见狗威廉,有更多想分享的!
        意见狗威廉:@思诗不倦 请看 head first python
      • 开发之路:编程语言合适就好,语言只不过是表现层,真正起作用的还是得靠c/c++语言编写的框架和扩展,所以,为了提高技术,还不如把时间花在c/c+上面,为未来或许能成为架构师的你锦上添花
        开发之路: @意见狗威廉 做架构的不一定是架构师(⊙o⊙)哦,嘿嘿
        意见狗威廉:@php开发之路 虽然我很赞同你说的编程语言合适就好,我的意思是,语言都有其适合的方面,C++这种瑞士军刀可以做大项目,但是哪里有那么多大项目可以做呢?
        意见狗威廉:@php开发之路 嘻嘻...就问一句技术有什么用?别把技术看得太重要,真正重要的是做什么,而且我现在做的就是架构
      • 凌雪懿: :blush:
        意见狗威廉:@凌雪懿 没什么...因为你回我表情我也就表情回复你...
        凌雪懿:@意见狗威廉 ?
        意见狗威廉:@凌雪懿 :P
      • 意见狗威廉:喜欢的小伙伴们关注本狗公众号:意见狗威廉,有更多好文章等你去看:)
      • be8218fb001c:Swift不服
        意见狗威廉:@陈家崽里 嘻嘻
      • a2f1081c9701:php表示不服
        意见狗威廉:@傲娇的小情怀 嘻嘻
      • 一只大星星:有入门书吗,作者可以介绍一下吗。我想自学编程😁😁😁😁
        意见狗威廉:@一只大星星 要是喜欢可以关注我的公众号:意见狗威廉,有更多想分享的!
        意见狗威廉:@一只大星星 head first 系列都不错的...然而我觉得看官方文档最好
      • He110:我PHP不服
      • XXZC:c语言还没学完。。。
        a59ea467e7f9:@xxzc 😁😁😁
      • fb4020fff909:目前正在学 :stuck_out_tongue_closed_eyes:
      • 4a53bf1ae933:python 深入起来还是有点难的
        意见狗威廉:@不知漾 是的呐,任何东西深入起来都会比较难...要是喜欢可以关注我的公众号:意见狗威廉,有更多想与大家分享的!
      • 猫小喵ao:我们不缺少工匠,我们缺少匠人的精神。
        意见狗威廉:要是喜欢可以关注我的公众号:意见狗威廉,有更多想与大家分享的!
        意见狗威廉:@猫小喵ao 是的...大家都去关注挣钱了...
      • 7574971400bc:正在学,不过2和3的分裂很麻烦
        意见狗威廉:@臧sir 要是喜欢可以关注我的公众号:意见狗威廉,有更多想与大家分享的!
        意见狗威廉:@臧sir 其实还好,3更接近Python的设计理念
      • MMMMMMMe:编程语言就像工具,有人喜欢用C,效率高,有人喜欢用java,便携,有人喜欢用python,不用预先声明primitive data type。个人喜好,没法强求。
        但维护工具的编辑器显然是vim大法好,emacs就是渣 :baby_chick:
        gaffery:@MMMMMMMe emacs怎么渣了……
        奔跑的小草:我是spacemacs死忠粉,vim+emacs无敌
        意见狗威廉:@MMMMMMMe 同意。我也是vim 粉!
      • 学一点也好:学python前是不是得先学好数据结构
        意见狗威廉:@总想退却总是追 要是喜欢可以关注我的公众号:意见狗威廉,有更多想与大家分享的!
        布客飞龙:不学编程你就想直接学数据结构??
        意见狗威廉:@总想退却总是追 Python里面其实没什么底层的数据结构,抽象层次很高,不像c c++之类的
      • af0810390095:python确实不错,搭上机器学习的快车,这两年很火,还有js
        意见狗威廉:@小魂淡不喜欢冬天 要是喜欢可以关注我的公众号:意见狗威廉,有更多想与大家分享的!
        意见狗威廉:@小魂淡不喜欢冬天 nodejs 却是也是一把好菜刀
      • 同Young不同样:PHP是世界上最好的语言😂😂😂😂
        亦梦似幻空:@同Young不同样 :+1:
        开发之路:编程语言合适就好,语言只不过是表现层,真正起作用的还是得靠c/c++语言编写的框架和扩展,所以,为了提高技术,还不如把时间花在c/c+上面,为未来或许能成为架构师的你锦上添花
        意见狗威廉:@同Young不同样 嘻嘻
      • Shur:我想学python。有啥资源没有。
        意见狗威廉:@不知漾 要是喜欢可以关注我的公众号:意见狗威廉,有更多想与大家分享的!
        意见狗威廉:@Shur 看看官方文档,也有科学计算的python教程,现在搜索引擎这么发达,真的不愁找资源
        4a53bf1ae933:@Shur 去看廖雪峰老师的教程
      • kylesean:python很好,ruby也不赖
        凡卡的手写笔:@意见狗威廉 完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。
        意见狗威廉:@kylesean 这两个我都会,各有千秋,我还会Perl...总之不同的语言有不同的用法,但是Python真的很对我口味而已
        彼蓝:@kylesean 这话不能再赞同了!
      • a553bb57f5b2:感谢分享。
        意见狗威廉:@低头赶路 要是喜欢可以关注我的公众号:意见狗威廉,有更多想与大家分享的!
      • 繁华一途从此心淡情轻:生命很短暂,我想学python

        可以不可以留个联系方式 有一些python学习方面想请教一下
        本慈:666666
        cbw100:@繁华一途从此心淡情轻 6666
        意见狗威廉:@繁华一途从此心淡情轻 你就私信我好了~

      本文标题:如果要学一门计算机语言,就学这个吧

      本文链接:https://www.haomeiwen.com/subject/qjqvdttx.html