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

原创 2017年01月03日 22:07:18

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

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

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

  • 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》等。

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

版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎访问 http://blog.csdn.net/dc_726

相关文章推荐

LeetCode | Reverse Words in a String

题目: Given an input string, reverse the string word by word. For example, Given s = "the sky is bl...

Struts2 Action的访问路径

1.     Action的访问路径 扩展名缺省以.action结尾,请参考:default.properties文件,可以通过配置改变这一点:  上述配置,将使得可以通过.action或.do或.w...

LeetCode | Path Sum II

题目: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the gi...

LeetCode | Minimum Window Substring

题目: Given a string S and a string T, find the minimum window in S which will contain all the ch...

interview experience

interview experience

LeetCode | Substring with Concatenation of All Words

题目: You are given a string, S, and a list of words, L, that are all of the same length. Find all s...

欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...

LeetCode | Multiply Strings

题目: Given two numbers represented as strings, return multiplication of the numbers as a string. N...

LeetCode总结

最近完成了www.leetcode.com的online judge中151道算法题目。除各个题目有特殊巧妙的解法以外,大部分题目都是经典的算法或者数据结构,因此做了如下小结
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)