这本书的英文版是开源。我读了一些。但是,支持的英语水平不走太,然后还有那些谁译的书,但感觉不是太干脆翻译,在一些地方难以清除作者的思路,所以,我要揍很难理解他自己翻译一下原来的地方,这将更好地了解一点点。

Cha1 Introduction

我喜爱编程。我的目的不不过让程序执行起来。我热爱让程序有一定的风格。程序非常像诗。程序是一种信息的载体,不只向计算机,很多其它的向那些要改动和使用你程序的人传递信息。

有了程序。你能够使用自己的规则创建自己的世界。通过你对问题和解决方法的理解。形成一些概念。进而创建你自己的世界。水平高超的程序猿使用简洁清晰的程序来创建世界,如同诗歌或散文一样。

ps:

这一段讲述了“程序”的外在、本质、内在,外在就是“程序要像诗一样”。本质就是“信息的载体”,内在就是“在程序内创造世界”。

外在就是程序的风格。关于程序的风格,非常多编程书籍上都讲到过,要每一个编程人员都形成自己的程序风格。程序如诗,这是作者的风格。我的程序也有一定的风格,但还达不到“诗”这样的境地;希望通过这本书的学习,可以吸取到一点诗意吧。

程序本质是一种信息的载体。它表达出一定的信息,目标是计算机和其它人。

程序内构造世界,我也不是太明确。创建的世界应该是一种理念的世界。或者说是柏拉图式的思想世界。

最伟大的程序猿之中的一个Donald Knuth这样形容程序:程序不不过告诉计算机怎样做事,很多其它的是告诉人们他们是怎样指导计算机做事的。

这中间的差别是程序很多其它的是被人读的,而不是计算机。

在你移到其它项目上去时,你的程序会被别人改动和更新。

所以,编程不不过跟计算机交流,很多其它的是跟后来人交流。一个程序猿应该是问题解决者、诗人、指导者。

你的目的是解决手边的问题,使用协调、有品位的方式,而且把你的解决方式教给以后的人。

我希望这本书可以教给你一些诗意和魔力,可以让计算变得有趣一些。

ps:

程序猿应该是问题解决者、诗人、指导者。这三种身份,分别相应于程序的内在、外在和本质。

内在是解决这个问题,外在是程序风格。本质是信息载体。

这两段话就是作者对“程序”的理解。读了这两段话,能够加深了对“程序”的认识。

作者在书的開始就介绍了程序的共享性,即程序不不过给计算机看的。很多其它的是给其它人看的。其它人读了你的程序,就会了解你对问题的理解和你的解决方法。这样的分享的过程跟数学和科学的分享十分相似,数学家发现了现实中的一类问题,使用数学的方式进行描写叙述并找到解决方法,然后分享出来,这样以后针对这一问题就有了解决方法,科学也是类似(这样看数学家和科学家好无私啊)。程序猿发现了解决特定问题的方法。使用程序的方式解决掉它。然后分享出来。以后大家也就都可以这么来做了。

共享促进了数学和科学的发展。假设大家都将代码分享出来,也会促进程序设计的发展。使人们可以深入挖掘程序的奥秘,促进程序的繁荣。“开源”的本质也是代码的共享性。

这样的想法是很圣洁的,可以推动全人类的进步,不过因为商业利益的关系,共享代码眼下来说是很难做到的。

版权声明:本文博主原创文章,博客,未经同意不得转载。

Programming from the ground up(0)的更多相关文章

  1. Asp.Net Core 项目实战之权限管理系统(0) 无中生有

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  2. 《HiWind企业快速开发框架实战》(0)目录及框架简介

    <HiWind企业快速开发框架实战>(0)目录及框架简介 本系列主要介绍一款企业管理系统快速开发框架,该框架旨在快速完成企业管理系统,并实现易维护可移植的目标. 使用逐个系统模块进行编码的 ...

  3. [.net 面向对象程序设计深入](0) 开篇

    [.net 面向对象程序设计深入](0)开篇        [.net 面向对象编程基础]和 [.net 面向对象程序设计进阶]在15年底写完了,群里也加进来不少热爱学习的小伙伴.让我深切感受到在这个 ...

  4. exit(0)与exit(1)、return区别

    exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: return():返回函数,若在主函数中,则会退出函数并返回一值. 详细说: 1. return返回函数值,是关键字 ...

  5. 【转】winform退出代码:Application.Exit和Environment.Exit(0)

    Application.Exit和Environment.Exit(0)有什么退出方面的区别吗? Application.Exit:通知winform消息循环退出.会在所有前台线程退出后,退出应用 强 ...

  6. Net Core 项目实战之权限管理系统(0)

    0 前言 Net Core 项目实战之权限管理系统(0) 无中生有   0 http://www.cnblogs.com/fonour/p/5848933.html 学习的最好方法就是动手去做,这里以 ...

  7. Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋

    Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋 Common Lisp学习笔记(0):从SLIME开始

  8. 《Programming Hive》读书笔记(一)Hadoop和hive环境搭建

    <Programming Hive>读书笔记(一)Hadoop和Hive环境搭建             先把主要的技术和工具学好,才干更高效地思考和工作.   Chapter 1.Int ...

  9. 《Programming Hive》读书笔记(两)Hive基础知识

    <Programming Hive>读书笔记(两)Hive基础知识 :第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结 ...

随机推荐

  1. Unity3D中的Update, FixedUpdate, LateUpdate的区别

    MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用. MonoBehaviour.FixedUpdate 固定更新 当MonoBehavi ...

  2. 集成框架 javaweb开发平台ssmy_m(生成代码) java struts2 mybatis spring maven jquery

    网页地址 http://blog.csdn.net/lpy3654321/article/details/31841573 项目设想,在项目开发中,我们的开发者大多数时间都在反复开发 相同的keywo ...

  3. bootstrap在 刷新页面,tab选择页面不会改变。

    您可以直接复制代码 注意在同级别文件夹中引用 相应js 和 css. 实现tab影响 关键看bootstrap的 data-toggle= tab <html lang="en&quo ...

  4. 疯狂Java学习笔记(84)----------大约 Java 对象序列化,你不知道 5 事

    几年前,.当一个软件团队一起用 Java 书面申请.我认识比一般程序猿多知道一点关于 Java 对象序列化的知识所带来的优点. 关于本系列 您认为自己懂 Java 编程?其实,大多数程序猿对于 Jav ...

  5. Git代理服务器设置和访问Github

    因为现在工作的网络环境有着非常严格的限制,.可以说,在最近的访问通过代理Github它采取了一些曲折的.也积累了一些相关经验.我们认为有必要注意什么. 符合"不要再发明轮子"宗旨, ...

  6. 玩转web之ajax(一)---使用表单的serialize()方法中文乱码解决

    有时候我们需要使用ajax提交去提交form的值,这样就需要使用serialize()去获取form的值,但这样获取的值如果有中文,会乱码,原因和解决方法如下: 原因:.serialize()自动调用 ...

  7. ESFramework 开发手册(07) -- 掉线与心跳机制(转)

    虽然我们前面已经介绍完了ESFramework开发所需掌握的各种基础设施,但是还不够.想要更好地利用ESFramework这一利器,有些背景知识是我们必须要理解的.就像本文介绍的心跳机制,在严峻的In ...

  8. 编译Android源代码与内核总结

    这些天花了些时间自己下载了android源代码来编译,当中走了一些弯路导致耗了些时间,如今又一次梳理总结下,让有同样想法的人自己编译的时候能少走些弯路,官方指导文档在http://source.and ...

  9. MVC快速分页

    .NET手记-ASP.NET MVC快速分页的实现   对于Web应用,展示List是很常见的需求,随之而来的常见的分页组件.jQuery有现成的分页组件,网上也有着大量的第三方分页组件,都能够快速实 ...

  10. 【原创】leetCodeOj ---Construct Binary Tree from Preorder and Inorder Traversal 解题报告

    原题地址: https://oj.leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 题目 ...