科普分享|原来这些图灵奖巨匠就藏在身边

前言

文章收录在github 欢迎回顾精彩

这是一个真实的故事,在笔者今年参加考研复试的时候,由于疫情原因是线上复试,但是一些流程还是没变的,机试+笔试完之后就是面试了。

然后就开始紧张的面试了,大家都知道面试在最开始就是英语部分,当老师说咱们开始英语口语,我把早已背的滚瓜烂熟的个人介绍藏在脑海中正准备一泄而出等待老师说"Please introduce yourself"的时候,事情突然发生反转,老师来了一句:"Do you know who won the Turing prize?". 我使劲皱着眉头假装自己很努力思考的样子(实际本来就不会嘛),说完还不忘用中文偷偷告诉我:图灵奖。我深沉的注视在场的面试官说了句:"Sorry, I don't know" (我只知道这个奖但我也不知道谁得过奖啊)。

img

老师说不要紧,再来一个:"Do you know who put forward the relational model of relational database?" ,我停顿半天皱着眉头假装没听清,老师直接说中文 "你知道关系数据库的关系模型谁提出的嘛?" 我眉头皱的更紧了,又说了句:"Sorry, I don't know" (这……)。

image

此时的我心情是觉得太倒霉了,咋问这个问题,不过还好后面老师问我加密算法有哪些,有一些爬虫的经验知道一些些加密算法我用英文踉踉跄跄的说了出来,并介绍了一些区别,还好后面回答的还行前面笔试机试也还行才很险的苟上岸。

最后老师说了一句关系模型的提出者也是图灵奖的获得者,我就很纳闷:"难道老师以为我知道谁提出关系模型但是不知道他拿过啥奖嘛!谁拿过图灵奖我不知道,谁提出关系模型我更不知道"!但我还是笑嘻嘻的和老师说道:"哈哈,这个触及到盲区了,回去了解一波" !不过具体了解没了解,你们都知道的。

什么是图灵奖

图灵奖(Turing Award),全称A.M. 图灵奖(A.M Turing Award),是由美国计算机协会(ACM)于1966年设立的计算机奖项,名称取自艾伦·麦席森·图灵(Alan M. Turing),旨在奖励对计算机事业作出重要贡献的个人 。图灵奖对获奖条件要求极高,评奖程序极严,一般每年仅授予一名计算机科学家。图灵奖是计算机领域的国际最高奖项,被誉为 "计算机界的诺贝尔奖"

图灵奖一般在每年3月下旬颁发。从1966年至2019年,图灵奖共授予72名获奖者,以美国、欧洲科学家为主。据统计,截至2020年3月,世界各高校的图灵奖获奖人数依次为美国斯坦福大学(28位)、美国麻省理工学院(26位)、美国加州大学伯克利分校(25位)、美国哈佛大学(14位)和美国普林斯顿大学(14位)。

2000年,华人科学家姚期智(生于上海)获图灵奖,是华人第一次也是唯一一次获得图灵奖。

Codd博士与关系模型

当然短期内没了解谁拿过图灵奖(复试完该玩的玩、搞毕设的搞毕设、开黑的开黑),但是这毕竟是一道曾经的坎,过了比较久的时间还是不甘心,打开了百度搜索 关系数据库 关系模型 关键字找到了答案:

image-20201123232045317

也从中找到了答案,顺便大家也科普一下:

1970年,IBM的研究员E.F.Codd博士发表《大型共享数据银行的关系模型》一文提出了关系模型的概念,论述了范式理论和衡量关系系统的12条标准,如定义了某些关系代数运算,研究了数据的函数相关,定义了关系的第三范式,从而开创了数据库的关系方法和数据规范化理论的研究,他为此获得了1981年的图灵奖。

后来Codd又陆续发表多篇文章,奠定了关系数据库的基础。关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。但是当时也有人认为关系模型是理想化的数据模型,用来实现DBMS是不现实的,尤其担心关系数据库的性能难以接受,更有人视其为当时正在进行中的网状数据库规范化工作的严重威胁。为了促进对问题的理解,1974年ACM牵头组织了一次研讨会,会上开展了一场分别以Codd和Bachman为首的支持和反对关系数据库两派之间的辩论。这次著名的辩论推动了关系数据库的发展,使其最终成为现代数据库产品的主流。

教你们一招:以后面试官问你熟悉关系数据库(MySQL)吗,你就往Codd博士 扯上一波,然后歌颂一波它的简要事迹再说他在1981年因为在关系数据库理论的研究获得图灵奖,并带上一脸赞叹和仰慕的表情。面试官肯定感觉不错:这小伙子底子可以啊,态度也挺好的,加分加分!不出意外稳妥拿到offer概率大大增加!(如果这招有用记得回来三连一波)。

算法大家与图灵奖

Dijkstra(迪科斯彻)

虽然心中图灵奖的获得者盲区已经打破,但是肯定止不住好奇去翻翻哪些人得了图灵奖,看了一下大部分都是人工智能数学领域还有一部分就是偏底层或者数据库相关都是陌生而难记的面孔,我有些失望。但突然找到一个熟悉的面孔:Dijkstra

image-20201124205039288

哇,这个算法不是我们上数据结构与算法图论中必学的嘛,图论算法掐指可数,Dijkstra、prim、floyed再加上经典的dfs和bfs嘛!我兴致勃勃的点开Dijkstra大佬的介绍,Dijkstra大佬被称为结构程序设计之父 ,他有以下的成就:

知晓的:goto有害论(耳熟);第一个Algol 60编译器的设计者和实现者(厉害啊);THE操作系统的设计者和开发者(真大佬啊!);

熟悉的:Dijkstra最短路径算法(以它而闻名);银行家算法的创造者; 解决了“哲学家聚餐”问题;提出信号量和PV原语;

此时的我已经很震惊了,我知道pv信号量和原语,也知道银行家算法,哲学家进餐问题都是操作系统很经典的问题,没想到都是Dijkstra大佬提出和发现的,真的强强强!并且Dijkstra和与D. E. Knuth并称为我们这个时代最伟大的计算机科学家的人。

Floyd(弗洛伊德)

Dijkstra是经典的单源求最短路径,而与之对应很流行的多源最短路径算法—Floyd(弗洛伊德)算法,该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。此外在算法方面,弗洛伊德(Floyd)和威廉姆斯(J.Williams)在1964年共同发明了著名的堆排序算法heapSort(笔者前几天刚写的竟然没发现)!

Hoare(霍尔)

谈起排序,那快排肯定不可缺少啊,霍尔爵士(英国计算机科学家)就是快速排序的发明者,巧的是霍尔爵士在1980年获得图灵奖。

Niklaus Wirth(沃斯)

凭借一句话获得图灵奖的Pascal之父——Niklaus Wirth(沃斯) ,让他获得图灵奖的这句话就是他提出的著名公式:"算法+数据结构=程序" ,作为程序员,上大学第一节c语言或者数据结构与算法课堂的时候我们就听老师讲过这句话。这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的“E=MC^2”—一个公式展示出了程序的本质。

结语

通过一件小事发现了有趣的联系。都有着共同的联系—图灵奖,在以前,我的认知是这样的:

image-20201126195319305

通过本篇的整理和学习,现在对一些知识有着更条理化的认识:

image-20201130170148223

当然,图灵奖的得主非常多,每位得奖主都是了不起的人才,都是我辈楷模,这里仅列举所联系到、熟悉和数据结构与算法相关的得奖主,其他的就不一一列举啦!

虽然这并不是一件非常大的事情,源于复试的一个提问,但通过后来的查找总让我对熟悉的算法和人物有着焕然一新的感觉:原来还是这样啊! 而生活中、工作中、再或学习中有很多类似的地方,我们可能只差一步就能发现更多、建立更多有效的联系以及知识体系结构。而我们常常都是浮于表面,希望在日后的学习生活中能与大家同作一个有心人

最后给你一个问题,你知道图灵奖杯🏆为什么是个银碗嘛?

原创不易,bigsai请你帮两件事帮忙一下:

  1. 一键三联、分享支持一下, 您的肯定是我在思否创作的源源动力。
  2. 微信搜索「bigsai」,更多精彩等你!

bigsai
微信搜索一艘:bigsai 欢迎叨扰!
667 声望
12.2k 粉丝
0 条评论
推荐阅读
再见2022
看了上一篇更新时间,大概已经停更近10个月,在2022的最后一天,这一篇也算是对这一年做个总结。期间也收到一些朋友的问候和鼓励,确实自己在读研期间的前两年在写东西上面确实花了不少时间,也算是用心了吧对一...

bigsai2阅读 1k

封面图
一次偶然机会发现的MySQL“负优化”
今天要讲的这件事和上述的两个sql有关,是数年前遇到的一个关于MySQL查询性能的问题。主要是最近刷到了一些关于MySQL查询性能的文章,大部分文章中讲到的都只是一些常见的索引失效场合,于是我回想起了当初被那个...

骑牛上青山6阅读 1.5k评论 2

Mysql索引覆盖
通常情况下,我们创建索引的时候只关注where条件,不过这只是索引优化的一个方向。优秀的索引设计应该纵观整个查询,而不仅仅是where条件部分,还应该关注查询所包含的列。索引确实是一种高效的查找数据方式,但...

京东云开发者2阅读 688

封面图
MySQL 数据库索引技术原理初探
一本书 500 页的书,如果没有目录,直接去找某个知识点,可能需要找一会儿,但是借助前面的目录,就可以快速找到对应知识点在书的哪一页。这里的目录就是索引。

mylxsw1阅读 1.2k

Mybatis源码解析之执行SQL语句
通过调用 session.getMapper (AccountMapper.class) 所得到的 AccountMapper 是一个动态代理对象,所以执行 accountMapper.selectByPrimaryKey (1) 方法前,都会被 invoke () 拦截,先执行 invoke () 中的逻辑。

京东云开发者3阅读 782评论 1

封面图
2023最新MySQL高频面试题汇总
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~

程序员大彬3阅读 770

第十六届中国大数据技术大会五大分论坛顺利举办!
1 月 8 日下午,由苏州市人民政府指导、中国计算机学会主办、苏州市吴江区人民政府支持,CCF 大数据专家委员会、苏州市吴江区工信局、吴江区东太湖度假区管委会、苏州市吴江区科技局、苏州大学未来科学与工程学院...

MissD阅读 5.7k

667 声望
12.2k 粉丝
宣传栏