您现于de位置乃:亚博 > APP心得

亚博 2015-12-03 APP心得 807

计算机科学家谈科研心得 思考比编码重要

  莱斯利·兰伯特乃1名计算机科学家 他提出了分布式系统 时序逻辑和并行算法等系列计算机理论.兰伯特乃微软研究院首席研究员 美方国家工程院和科学院院士 2013年 他获得了有着"计算机界诺贝尔奖"之称de图灵奖.近日 这位世界好的科学家应邀走进了北京大学 与学子交流科研心得.

  "怎样才能保证编码少出错?""您怎么看待计算机科学和数学之间de关系?""您提出过很多计算机理论 哪个乃最钟爱de‘孩子’?"……近日 北京大学斯坦福中心 于莱斯利·兰伯特(Leslie Lamport)de报告结束后 学生们de问题接踵而至.于近1个小时de时间里 他接受了学生们de"考问".

  台上de兰伯特身着1件浅蓝色条纹衬衫 1条深蓝色牛仔裤 1双黑色运动鞋.像着装1样 他de话语简洁中透着随性.于回答感兴趣de问题时 他de语速并不快 引经据典 侃侃而谈 让现场充满笑声和掌声.尽管浓密de花白胡须隐藏了他de面部表情 但于思考问题时鼻梁上金边眼镜后de目光却总喜欢凝视着空间中de某1点 让人不免产生1丝神秘感和距离感.当然对于不感兴趣de问题 他也不敷衍 只乃简单1句:"不了解."

  兰伯特现任美方微软研究院首席研究员 也乃2013年有着"计算机界诺贝尔奖"之称de图灵奖获得者.此次他经北京大学"大学堂"好的学者讲学计划de邀请 与该校师生开展了交流 而此次交流de核心则乃:思考 比写代码更加重要.

 "嗦胍残攵土"肌肉"

  如何才能写出更优质de程序呢?这乃记者和很多现场学生关心de1个话题."工程师于砌砖建房之前会画1张建筑蓝图;但程序员和软件工程师往往不会这样做.这乃不乃房屋很难倒塌而编程经常出问题de原因呢?"报告结束后 于接受《中方科学报》记者采访时 兰伯特对比说 很多程序员于开始编写程序之前 往往不愿意勾勒哪怕乃1个最简易de程序轮廓.

  蓝图可以帮助工程师保证计划发挥作用."‘发挥作用’不只意味着让大楼不倒塌 还意味着为所需要de目de服务 比如让建筑师和客户于施工之前了解他们打算建造什么样de工程."兰伯特如乃说 "蓝图可以帮助我们考虑清楚 我们于编写什么."

  为编写软件所描绘de蓝图就乃规范(spec).然而 "计划赶不上变化 就像没有哪1场战争真正能够按计划进行1样 您做出de规范也有可能发生程式错误."兰伯特说.比如 或者乃必要条件发生了改变 或者乃出现了错误 可能于您写完程序之前 就需要改变原来de规范.

  事实上 于真实世界中 代码可以修补 而规范也可以更新 这些都很普遍.那么 如果修补和更新不可避免 那么为什么要描绘这张蓝图呢?对此 兰伯特表示原因有2:其1 无论乃谁于修补代码 都会由衷感谢规范中de每个词 每个公式de作者;其2 代码每修复1次 就会"变丑1点 更难理解1点 也更难维护"."因此 如果不从思考规范开始 那么程序员所写de代码de每个片段就都乃补丁.这样就会让1开始编写de程序变得丑陋 难以理解和维持下去."兰伯特说.

  "为什么编码难?因为编码需要思考 思考存于难度 而很多人往往低估了思考de难度."他说 "正如漫画家迪克·金敦(Dick Guindon)所说de那样 ‘写作乃让您知道您de思想有多么混乱de根本方法.’"

  "思考不能保证您不犯错误 但乃不思考通常1定会犯错误."没有什么简单de方法可以保证1个4芄恍闯龊胐espec 兰伯特说."编码就像跑步 您跑得越少 跑得也就越慢.所以必须经常反复锻炼您de编码‘肌肉’ 而不乃像很多4茄医杩诓欢土."

  数学让编程事半功倍

  "能和这样de‘大牛’交流非常激动."北京大学信息科学技术学院智能科学系大4学生金晓晗于接受《中方科学报》记者采访时说 "兰伯特教授说 数学可以帮助我们分析 简化我们de思维 给我留下了深刻de印象."

  于兰伯特看来 编写spec并不能保证人们编写de代码永远不会坍塌 所以仍然需要利用1些方法和手段消除编程过程中de错误.于他看来 理解编码复杂性de好的方法就乃抽象化 而最简练 好的de抽象化语言就乃数学 即那些于基础数学课堂上所学到de数学课程 如集合 函数和简单de逻辑."它可以帮助我们提高编写能力 理解正于做de事情 消灭错误."兰伯特补充说.

  "于数学和计算机de关系上 兰伯特认为数学无疑乃计算机科学de基础."兰伯特de回答给北京大学信息科学技术学院de刘垚留下了深刻印象 "思考比写代码更加重要.而数学对于我们严谨 有效地思考问题非常有帮助."尽管如此 兰伯特也表示 数学很难直接成为人们解决问题de方法.它更多地乃帮助分析问题 或乃评估提出de解决方案.

  "于您提出检验编码de模型之后 数学能够帮助您检查模型乃否正确 这正乃为什么我提出了TLA+(1种可以帮助程序员进行模型检测de新de计算机编程语言)."兰伯特举例说.亚马逊公司和英特尔公司de很多程序员发现 TLA+检测模型可以提高他们de排错效率."处理硬件错误时 成本往往很昂贵 因为如果出现问题就要重新生产所有de芯片 而检测模型可以帮助他们发现错误 大幅降低成本."

  "借助数学de思考方式来关注问题de核心 从而看到问题背后de深层原因 再去寻找解决方案.作为数学专业de‘码农’ 我对此体会尤为深刻."北京大学数学院学生李屹对此次交流深有所感 "数学之于计算机 不仅乃1种工具或者方法 而乃1种哲学.以数学de思想作为指导 有时即便不掌握具体de数学工具 都可以使得编程工作事半功倍."

  大学教育要立足长远

  "兰伯特讲到de‘多思考 少编程’对我启发莫大.""他讲de要学会抽象对我们掌握正确de科研态度非常重要.""通过兰伯特de介绍 我认识到如果把TLA+语言投入到本科或更早de教学中 将会使更多人受益于数学精练 严谨de逻辑锻炼 节约很多时间 因为未来普通de编程工作注定要被机器代替."……和金晓晗1样 于此次采访中 很多学生都表示与这位计算机学界"大牛"进行de交流让他们受益匪浅.

  于计算机领域 兰伯特确实乃位名副其实de传奇人物.他de分布式计算理论奠定了这门学科de基础 并被称为"分布式计算原理之父";他于1978年发表de论文《分布式系统内de时间 时钟事件顺序》成为计算机科学史上被引用最多de文献;他为"并发系统de规范与验证"研究贡献了核心原理……

  为此 美方计算机协会将2013年度图灵奖颁发给了他."如果您喜欢使用互联网 那么就该感谢莱斯利."施乐帕洛阿尔托研究中心创始人兼经理 数字设备公司系统研究中心创始人兼经理鲍勃·泰勒(Bob Taylor)曾如乃评价 "因为互联网建立于分布式系统技术de基础知识之上 而后者又建立于莱斯利所发明de理论基础之上."

  对于自己de研究成果 兰伯特表示 我希望它们都能发挥作用 "因为个人对美有着不同de理解 所以人们究竟会更喜欢哪个理论也乃‘仁者见仁 智者见智’".于提及成功de秘诀时 他认为 每个人de研究道路都会因人而异 由于现于de计算机科学环境已经和他开始起步de时代发生了天翻地覆de变化 他de经验可能并不适用于每1个人.

  如果1个人"最终想要成为自己想成为de人 就要做自己最严格de裁判".他指出:"同时 不要忽视您de批评者 不要因为观点相左就认为批评者‘太愚蠢’ 他们会推动您不断进步."

  于他看来 现于很多教师和学校希望按照他们所想象de那样教导学生 然而这些想法可能对学生不1定适用."比如 现于经常通过就业率判定学校乃否成功 而大学不应该把让学生就业作为办学目de."他说 以编程为例 编写"种子"编码很重要 尽管它可能不会马上产生作用 但可能于10年 15年之后产生更重要de应用."教育目标也应该思考得更长久 更远大1点."


评论