前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不该存在的语言之争

不该存在的语言之争

作者头像
用户1608022
发布2018-04-11 11:22:28
7270
发布2018-04-11 11:22:28
举报

G20在杭举行,各国首脑人物纷纷抵达。在二十国集团的领导人中,除我天朝首领习大大以外,最引人注目的莫过于美国总统奥巴马了。对于奥巴马的狗仔传闻,在峰会开幕前几天就已经有众多不同的多版本四处流传了。如在微信朋友圈和群聊中被刷屏的奥巴马坐着美国巨无霸军用飞机(带图片,非常酷)抵达萧山国际机场,习近平现场迎接接。离谱的还有如在每天我们村村口大树下纳凉的情报能力比特务还牛X的长辈们口中述说的,奥巴马抵杭自带八百保镖、二部飞机,专用的防弹汽车连导弹也轰不破等等传说。当时听到这些信息的时候虽然感觉是谣言居多,但也还是喜闻乐见的,毕竟奥黑长的虽然不帅,但其社会地位和硬实力在整个地球上都找不出几个人够格和他玩耍的。马上,我就要和这个地球上最强在男人处在同一坐城市之中了,最重要的是还能放几天长假,内心还是有一丝兴奋和激动的。为了能对他有更深的了解,去搜索引擎中查找了关于他的信息,在搜索结果的一个百科词条中有这样一段

2014年12月,奥巴马参加了由非盈利组织Code.org举办的编程大会。会上,奥巴马熟练地习得一小段JavaScript代码,并成功地画出了一个正方形。使得他成为了美国史上首位会编程的总统。

看到这样一段对奥总统的描述,我对于自己职业的自豪感由然而生,这个地球上最强的男人和我干着同样的事情,看来我对这个世界的贡献还是受到他那样的大人物认同的,而且,我俩要是加起来一平均,似乎我的社会地位也凭空提高了不少。然而,在意淫过后,理性思考下,却让人产生了一丝不安的感觉。奥巴马日理万机,自然不可能花时间在学习编程上面,他仅通过参加一次编程大会就可使用JavaScript画出一个正方形,绝顶聪明纵然是原因之一,更重要的一点是现下掌握编程技能门槛之低简直令人发指。

在普通大众眼里可能从事程序员职业的人群就是高智商强逻辑思维的代表,他们智商卓越前途光明,这其实只是幸存者偏差带来的假像。不可否认,的确有这样一群人,他们发明电脑,发明互联网,发明操作系统、编程语言和各种高大上的软件和游戏,他们拥有改变世界的能力,然而,这部份人占的比例在所有程序员的5%之内。绝大多数程序员也只是和普通电脑用户一样,在使用别人生产的软件而已,不同的是使用的软件难度稍微大一点,需要掌握更多的计算机知识。此外,普通电脑用户是利用软件协助工作,而我们是完全靠软件完成工作。换言之,就是,如果把工作看成是一个百分比尺度,普通电脑用户使用软件完成工作占30%,那么我们使用软件完成工作就占90%。这其实就好比开发手机app的是搞IT的,给手机贴膜的人也是搞IT,大家都落在同一个坐标轴中,只是XY值不同而已。编程语言也是一种软件,高端一点的Excel用户会到到函数和VBA功能,这其实和编程在本质上没有分别。

不管是程序员和非程序员,大家工作的目标就是为了解决问题,而解决问题的手段就是自身掌握的专业知识。程序员解决问题的手段就是编程技术,这一点毫无疑问,相信非本行业内的同学也了解。然而到具体实施的时候又会使用不同种类的编程技术去解决问题,同样是做一个网站,用php可以做,用java可以做,用.net也可以做。这就是好比写一份文档,用金山WPS可以,用Microsoft Word也可以,不同的是,Word和WPS互相兼容而不同的编程语言之间是互不相干的。这就导致了程序员之间也分为许多不同的职业,如Java程序员、php程序员、.net程序员,这些程序员之间大多数时候也是不兼容的,你让Java程序员去开发.net程序,妄想。从行业内企业的招聘情况来看也是一样,不同的公司会招使用不同技术的程序员,正因如此,在不同公司工作的程序员们纷纷给自己帖上了标签,写Java的、写php的、写.net的,写C++的等等若干种类不胜枚举。很大一部份程序员的整个职业生涯都不会撕下这个标签。而且帖着不同标签的程序员之间毫无例外的会存在互联鄙视的问题,极端情况下会因为语言之间特性的差异而争的口沫横飞、面红耳赤,就如同魔兽世界中部落和联盟玩家之间的关系一样。

这一切都显的那么自然,似乎已经成为了行业的标准,但如果真的是合理的,那为什么还会出现语言之争?我们的生活已经被手机、平板、PC等计算机设备占领,它们能实现各种各样的功能,满足我们生活工作中的各种需求,事实上在计算机的眼里这一切只是0和1的世界。计算机的运行其实只是一个解码的地程。电影「寒战」相信不少人看过,里面多处出现「摩尔斯电码」这样一种秘密的交流方式,声音一短一长代表a,两短一长代码u,两长一短代表g(欲知更多规则请自行网上搜索) ,通过这样的组合方式可以表示所有的英文字母和数字,剧中的暗号im black jack就是通过许多这样一短一长的音符拼凑出来。计算机也是同样的方式运行,只不过由._(短长)这两种表示方法换成了0和1。我们使用的编程语言的源代码最终也会通过编绎器(有时是虚拟机)转换成0和1。就如同维持我们身体正常新成代谢所需要的元素是维生素、蛋白质、脂肪,而不是我们吃下去的各种食物,假如计算机就是我们的身体,那么编程语言就是我们吃下去的食物,而编绎器就是我们的消化系统。不管我们吃下何种食物,我们的消化系统总能把它们转化成维持我们生命体征的必备元素,使我们拥有能正常工作、学习、生活的能量。只使用一种编程语言在我看来就如同一个挑食的孩子只吃他喜欢吃的食物,这样肯定不利于身体的健康发育成长,那么只使用一种编程语言也不利于程序员提升自身解决问题的能力和职业的发展。

毕竟我们赖以生存的编程语言、开发环境、操作系统、CPU、内存等技术和工具都只是别人的工作成果而已,如果我们称自己为程序员,那么他们就是程序员中的程序员,这也就是上面说的5%以内的那帮人,如果他们称自己为程序员,那我们就什么都不是了,或者真的只是我们平常用以自潮的“码农”了。换句话说就是那些底层的复杂的高难度的技术已让那帮厉害的程序员给包了,我们广大“码农”只是玩一些简单的没有多少技术含量的东西,而且还执行不悟,搬个砖非的分是地砖还是墙砖。

在计算机世界从来就没有万能的编程语言,让c++程序员去写个网站能要了他半条命,因为c++不擅长处理字符串。java也不可能去写嵌入式程序,因为根本不够内存能把虚拟机跑起来。我们“码农”要做的事情是去如何以最优的方案最高的工作效率去解决问题,而不应该纠结倒底使用何种语言去解决。有的程序员会抱怨,别的语言我使不顺手啊,这其实就是刚才所说的标签问题,因为你为自己帖了的标签,我是XXX程序员,虽然只是个标签,但对其它语言却有排它的作用,久而久之就会导致无法客观的看待编程语言与需要解决问题之间的关系,甚至于会有使用不同的语言编码属于不同的职业这样的歪曲观念。人都有爱偷懒和喜欢简单这两个天性,所以才会发展出那么多方便好用的app和软件,编程语言在某个层面上来说也是最简单的东西,编程语言的设计者看待我们这些“码农”的方式不正是我们看待那些使用我们开发的软件的用户方式吗?用户可以使用多种不同类型的软件,而我们码农也同样应该会使用各种不同类型的编程语言。我相信能把“码农”作为职业的人虽然不一定算的上是绝顶聪明,但是举一反三的能力肯定是具备的,不同编程语言之间并不存在如同不同职业之间那样的鸿沟,语言之间的差异不需要多少学习成本就能抹平。需知,写代码思路永远排第一。此外,还有很重要的一点是,请撕掉贴在自己身上的那张“xxx程序员”的身份标签。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 带你撸出一手好代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档