关闭

当你编码时你在做什么:谈编程的本质(零)

标签: 编程
2961人阅读 评论(2) 收藏 举报
分类:

当你编码时你在做什么:谈编程的本质(零)

编码时间也不算短了,一直想写这么一篇文章,但苦于知识面和功力不够。经过了一年的读研学习,终于对什么是计算、什么是编程的本质有了些领悟。于是断断续续花了几天时间,斗胆提笔来谈一谈自己的理解。写着写着就越写越多,于是干脆就写成一个系列吧。还没搞懂的就先放下,等搞懂了写好了再发,用这个系列先占个位置,督促自己不断地深入学习,不要停歇。

目前已经想到的比较重要的内容有:

  • State Machine:计算机的理论根基之一,从图灵机到何为计算。
  • Set & Function:与编码息息相关的集合与函数。
  • Tree (Graph):既能表示计算对象的执行空间,同时树在数据结构中的重要地位。
  • Top-down & Bottom-up Search:对搜索空间进行由上至下(Recursion & DFS)和由下至上(Dynamic Programming)的搜索。
  • Behind the Scene: Logic:编程的另一理论根基,为什么用计算机进行计算是“站得住脚”的科学。
  • Program & Data:代码与数据的完美统一。

相信对这些内容的梳理和学习,对代码的理解会加深一层,编程功力一定会有很大的提高。也正应了这个系列的标题:当你编码时你究竟在做什么?每一个想不断进取的程序员、工程师在整个职业生涯都可能都会反复问自己这个问题。但这个主题本身有些“硬”,可能感兴趣的人不是那么多。但尽管如此,本人依旧相信这是一件值得做的事!

关于学习素材的来源,主要有研究生期间学过的《Theory of Computation》、《Computing Logic》、《Analysis of Algorithm》等课,以及对应的经典书籍《Introduction to the Theory of Computation》、《Introduction to Algorithms》等。

最后,编码不是随便敲键盘,也不只是谋生的手段。“水滴石穿,绳锯木断”,不断研习,也许就能发现在其背后隐藏的秘密。不多说了,那就让我们一起来探索编程的本质吧。

8
0
查看评论

掌握所有的编程语言并非不可能的事 抓住编程语言的本质

这篇文章曾经叫做《初学者程序语言的选择》,但是后来我发现,这里给出的看法其实不只是给初学者看的,甚至可能会让初学者看不懂。而就我在 Google 实习的时候的观察看来,很多写了几十年程序的资深程序员,可能也没有明白这里指出的道理。所以我把题目改了一下,并且加入了新的内容,希望对新手和老手都有所帮助。...
  • wql19881207
  • wql19881207
  • 2012-07-26 19:45
  • 4641

编程的本质

记得清华出版社的《数据结构》里面说过,程序的本质是数据结构+算法。这实际上就是编程的本质,至少在目前主流的计算环境里是这样的。其实更通俗点说来,数据+计算构成了编程的本质问题。通常,数据就是现实世界的一些属性的集合,是完成某些计算所需要的输入,并且以另外一种形式作为这些计算的输出。无论所使用的算法如...
  • deluxeman
  • deluxeman
  • 2015-07-12 16:03
  • 419

当你编码时你在做什么:谈编程的本质(二)可爱的树

憋了好久的一篇,主题有点大一直没有写完,中间隔了很长时间现在已经有点捡不起来了,索性先发出来吧。至少个人觉得,完成的部分还是总结了一些有用的东西。关于Tree之上的属性、递归算法等,只能等状态回来了再补充了。 I think that I shall never see A poem l...
  • dc_726
  • dc_726
  • 2017-08-26 06:22
  • 1372

接口编程的好处

接口编程的好处在项目中的意义: <br />   在传统的项目开发过程中,由于客户的需求经常变化,如果不采用面向接口编程,那么我们必须不停改写现有的业务代码。改写代码可能产生新的BUG,而且改写代码还会影响到调用该业务的类,可能全都需要修改,影响系统本身的稳定性。而且...
  • Callo_xu
  • Callo_xu
  • 2011-01-21 08:22
  • 16635

当你编码时你在做什么:谈编程的本质(一)状态机

当你编码时你在做什么:谈编程的本质(一)状态机1.State Machine这学期学习了两门有意思的课,Theory of Computation和Distributed System,一低一高完全两个层次上的分支,却意外地发现两者在理论方面的重叠——那就是状态机。在Theory of Comput...
  • dc_726
  • dc_726
  • 2017-01-18 22:22
  • 3528

编程的本质(Elements of Programming)

  • 2010-04-02 09:28
  • 608KB
  • 下载

php的汉字转换: GBK->Big5

php的汉字转换一直是比较麻烦的事首先要说两点:1.GBK的繁体字并不是Big5,但一般繁体字都有对应的Big码2.一GBK码并不一定有对应的Big5码,所以一般是不可逆转换该类内置了三个函数qswhStr 格式化字符串qswhFile 格式化一文件qswhDir 格式化目录下所有文件(.qswh的...
  • qiushuiwuhen
  • qiushuiwuhen
  • 2002-09-10 13:38
  • 1323

当你痛苦时,想想别人更深重的痛苦吧!

        做任何事情,只要我们尽力而为了,事情的发展如何就不要再去作无谓的担心和揣测。   朋友们!当你痛苦时,想想别人更深重的痛苦吧!当你以为已经失去了生活的勇气时,想想世界上那些由艰苦中奋斗出来的人们吧!他们并...
  • daban1
  • daban1
  • 2006-06-27 15:33
  • 776

当你向上看的时候,也需要向下看

                昨天晚上一个同学和我聊起来很多家里的事情,让我想到了一些事情,也对自己的心态有了个总结。  ...
  • foodvc
  • foodvc
  • 2007-11-27 09:07
  • 493

当你编码时你在做什么:谈编程的本质(零)

当你编码时你在做什么:谈编程的本质(零)编码时间也不算短了,一直想写这么一篇文章,但苦于知识面和功力不够。经过了一年的读研学习,终于对什么是计算、什么是编程的本质有了些领悟。于是断断续续花了几天时间,斗胆提笔来谈一谈自己的理解。写着写着就越写越多,于是干脆就写成一个系列吧。还没搞懂的就先放下,等搞懂...
  • dc_726
  • dc_726
  • 2017-01-03 22:07
  • 2961
    个人资料
    • 访问:3388925次
    • 积分:24484
    • 等级:
    • 排名:第317名
    • 原创:314篇
    • 转载:56篇
    • 译文:3篇
    • 评论:1592条
    博客专栏
    最新评论