编程带给我的震撼

2022-07-14 post/life


有一句俗话叫做:人比人、气死人,不比不知道,一比吓一跳,今天我算是更加深刻的体会到了这句话的含义。
事情的背景是这样的:

今天早上上班的途中我浏览了一篇公众号的推文(麦叔编程),关于排序方法举了一个小例子,如果我的公众号当中有喜欢编程的小伙伴的话,可以先看一下这个题目

      cars = ['Toyota', 'GM', 'Volkswagen', 'Honda', 'Tesla', 'Benz'] 
      # 有如上的列表,按列表中每一个元素的最后一个字母进行升序排序,如果字母相同则继续按倒数第二位排序,以此类推,预期结果为
      new_cars = ['honda', 'tesla', 'toyota', 'gm', 'volkswagen', 'benz']

我在读了这个题目之后觉得非常有意思,于是到了办公室之后就把这道题目给办公室几位专业的程序员,看他们能在多久的时间内解答出来。这道题目Java程序员们看了之后表示比较简单,不过真正开始编码就洋相百出了,有的少则花了十几分钟,甚至有人花了半个小时才磕磕碰碰的做出来。我看了一下他们编写的代码,写的比较精炼的有三十来行的,写的比较复杂的甚至有五六十行之多的,当我给他们说,如果用python来解答这个问题的话,只需要一行代码就搞定了,他们听到这个消息都有点惊呆了。

      print(sorted(cars,key= lambda x :x[::-1]))

通过这个事情让我得到很深的体会,那就是本文开头的那句话,如果说人比人会气死人的话,那编程语言之间进行比较也出现了这种情况。今天如果不是亲身经历我不可能产生这么强烈的感受。以前在学校学习计算机的时候,我只是简单的知道语言有高低之分,汇编语言虽然执行的效率最高,然而编程的效率却是最低的,所以人们更加倾向于使用高级语言来进行编程,然而虽然Java和python都属于高级语言,但是在上面这个例子当中你会发现:在解决同样一个问题的时候用 Java来写可能要使用三四十行代码,要花费更多的时间,然而如果换一种语言可能只需要一行,一两分钟就可以顶得上别人二三十分钟。这让我同步想到了代码度量的老话题:

对于代码量的度量是业界一个大老难问题,也是充满争议的一个话题,首先代码量是在软件出现后在业内被广泛关注的一个指标,它有点像高考这个指挥棒一样,不同的人对于高考都有不满意的地方但在当前的形势下很难找到另外一个更为科学合理的指标去取代它,对代码量的度量也是一样。程序员对代码量的集中吐槽体现在:代码量并不能真实体现程序员的实际水平,而且在实际应用中大家将此工具做为度量程序员绩效的重要工具之一。
华为专家董庆阳认为“应将代码量度量视为解决复杂性、管理风险的方法,而不只是僵化的度量,用代码量来评价程序员的绩效,只是暴露了主管在能力和方法上的缺失。“
故事讲到这里还没有完。我在之前的文章当中提到我最近比较忙,其中有一个很重要的原因就是每周都会有1到2天的晚上被安排了面试。这一段时间以来我陆陆续续面试的人也有几十个之多,在这些面试的过程当中,既有去年刚本科毕业,考研未果重新找工作的计算机专业学生,也有工作了十几年的职场人,他们每一个候选人都有自己独特的故事,这其中有蛮多可以总结出来分享的,如果你关注大公司求职话题的话,欢迎你持续关注本公众号,我会在后面有空的时间把这些故事写出来,谢谢。

Comments
Write a Comment