学习理论的实用意义
来源:互联网 发布:php base64 解码失败 编辑:程序博客网 时间:2024/04/28 01:00
为什么要学CS理论呢?成天研究MSO=MSO0一类的问题对一个程序员的职业发展到底有什么好处呢?知道Ranked Tree Automata和Unranked Tree Automata的互换又怎么样呢? 不知不觉学习形式化方法一年多了,学了一大堆数理逻辑和自动机理论,可计算性和复杂性理论也多学了不少。 这些理论除了有趣,有没有什么实用的价值呢?我不过是一小小程序员,没有能力也没有打算在CS理论方面一展身手。既然这样,难道这一年多来在工作之余狂读论文不过是出于个人兴趣?我好像还没有那么纯洁吧? 还好,随着学习的逐渐深入,我好像悟到了一些理论的现实意义:
1。学习理论能拓展我们总结一般规律的能力。一个优美的理论总能用很少的元素涵盖广泛的现象,包括理论产生时还没有出现的情况(实际上,合格的理论必须有预见能力)。比如虽然Lambda Calculus只有7条公理,但它的表达能力和图灵机等价。换句话说,实现了Lambda Calculus的编程语言(比如LISP)尽管句法简单,却能和基于图灵机的语言(比如C++)一样强大。而在程序设计方面,一个好的设计也应该能处理一般情况,而不是一堆特例。比如如果一个程序里有大量分散而臃肿的case..switch或者if..else,这个程序多半有问题。进一步说,理论学习能训练我们抽象的能力。关于抽象能力和理论的关系,这篇文章说得很清楚。
2。学习理论能训练我们洞察不同事物间联系的能力。很多时候,我们编程的目的无非是把一种形式的信息转化为另一种形式的信息,而且这种转换往往受到计算资源的限制。理论恰恰关注事物间的联系。比如讨论树的时候,能不能只讨论二叉树,或者NFA是否很DFA等价。
3。学习理论让我们能迅速掌握计算机的前沿动态。没办法,现在发表的论文往往用形式化的方法表达研究结果。没有一定的理论只是,还真看不懂,更不用说和论文的作者讨论了。别告诉我看论文不重要。要开发出别人开发不出的软件,广看Dr. Dobb's Journal 是远远不够的。
嗯,能想到就这么多了。哪位高人来指点一下迷津就好了。
- 学习理论的实用意义
- 补充:学习理论的意义
- 统计学习理论的本质
- 学习理论的一些总结
- 学习理论的一些言论
- 学习理论
- GRE issue写作范文之实用的意义
- 认知学习:当代学习理论的主流
- 加涅的信息加工学习理论
- KNN演算法--通俗易懂的机器学习理论介绍
- 关于深度学习理论方面的一些疑问
- 【深度学习理论3】ALexNet模型的详解
- 关于JS的初具实用意义的小型框架结构的思路
- 看数据结构写代码(7)具有实用意义的双向链表
- 终于明白了虚函数、纯虚函数和接口的实用方法和意义
- 终于明白了虚函数、纯虚函数和接口的实用方法和意义
- 终于明白了虚函数、纯虚函数和接口的实用方法和意义
- 终于明白了虚函数、纯虚函数和接口的实用方法和意义
- 开源集合
- 君生我未生,我生君已老。恨不生同时,日日与君好
- 生于七十年代的尴尬完全版
- 学习顺便翻译:理解jsp模式2架构——MVC设计模式探险
- C++基础[总]
- 学习理论的实用意义
- SQL注入天书—ASP注入漏洞全接触 (转XFOCUS)
- 《天下无贼》与《功夫》经典台词及其妙用
- 在eclipse 3 上配置jsp开发环境
- .NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现(二)
- Lua学习记录
- Linux 中 RPM 命令参数使用详解
- 浮点数的比较
- Linux系统命令整理:磁盘管理篇