这周上了本学期的第一节java课程。课件上说了一些学习java的基本思想。举了个“愚公移山”的例子。这可能就像刚接触一门新的语言,来练习输出“HelloWorld”一样,已成惯例。

  “愚公移山”的这个例子引用于大道至简这本书。我几个月前在老师的推荐下就读了一遍,感受还是有些的。整篇不长的文章,移山的工程与编程的分工几乎一致。以下:

  原始的需求——惩山北之塞,出入之迂;

  项目沟通的基本方式——聚室而谋曰;

  项目的目标——毕力平险,指通豫南,达于汉阴;

  技术方案——扣石垦壤,箕畚运于渤海之尾;

  三名技术人员和一名工程管理人员——愚公率子孙荷担者三夫;

  外协人员——邻人京城氏之孀妻,有遗男,始龀,跳往助之;

  工程的实现程序——虽我之死,有子存焉;

  分支结构——子又生孙,孙又生子;……子子孙孙,无穷匮也;

  完成条件——山不加增。

  这里包含了编程的精义,就是“再难啃的骨头也是可以通过人和人的分工一点一点啃完的。”此是我根据自己的理解说的“大白话”。

  理解是理解了,不过最开始的时候还是有些觉得不对的地方。故事和现实,也就是理想和实践之间,还是有些出入的。比如说,愚公没有考虑子子孙孙的意愿,他们会不会因不愿意而放弃这庞大的工程或在劳动中死于非命。如果子孙们在这种情况下都死了,那么工程也就是循环也就提前终止。程序员不愿意,跳槽,可以再招人,愚公可不行。

  问题想深了,就会产生新的问题。反过来一想,我的想法也有点牵强,用愚公移山的例子作比喻真是再恰当不过了。

  接下来,书中有提到了技术员的基本素质:折衷。折衷意味着判断事物的准则。好像谁心里都有衡量事物的一把尺子吧,如此说来,岂不是谁都可以做程序员了?只要他会一种语言。

  这样,就又提到了语言。以前再帖子中看到程序员们都在维护自己喜欢的语言,什么java好,PHP好的。不过作为半个局外者,我还是感觉语言各有各的优势,不然怎么会有那么多种语言正在被使用呢?

  书中说:程序 = 算法 + 语言。这个等式几乎在每节理论课上都会被提到。而我自己在编程时也感受到了算法的重要性。算法不好的话,一个简单的问题电脑都需要很长时间才运行的出来。又或者是,时间不长,而别人用了几十行,我却用了几百行。所以一下子就能想出一个很好的算法,一方面是依赖于先天的思维逻辑,另一方面就是后天的训练和经验的积累。很庆幸,我自己的脑子没有被僵尸吃掉。

  说到底,我还不了解java,也不清楚工程的具体含义。提前被告知那么多,提前想了那么多,也只能是一知半解。未来的路还是要自己欣赏的。对此,我很期待。

大道至简第一章和java理论学时第一节。感受。的更多相关文章

  1. Java理论学时第一节。课后作业。

    设计思路:用nextFloat()函数将从键盘输入的值分别赋给多个变量,然后直接输出相加结果. 流程图: 源代码: 实验结果:

  2. Java理论学时第二节。课后作业。

    枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象,相同的值则引用同一个对象. 可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals ...

  3. 《大道至简》第一章读后感--JAVA语言伪代码形式

    import.java.大道至简.*; //一·愚公移山 import.java.愚公移山.*; public class YuGongYiShan { //原始需求:惩山北之塞,出入之迂 //项目沟 ...

  4. Java 面向对象编程——第一章 初识Java

      第一章    初识Java 1.  什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...

  5. 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)

    编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...

  6. Java 学习笔记 第一章:Java语言开发环境搭建

    第一章:Java语言开发环境搭建 第二章:常量.变量和数据类型 第三章:数据类型转换.运算符和方法入门 1.Java虚拟机——JVM JVM(Java Virtual Machine ):Java虚拟 ...

  7. 大道至简第一章读后感——java伪代码形式

    大道至简这本书第一章在向读者展示编程的精义.开篇以愚公移山的例子来描述软件工程项目.愚公,作为一名工程名家,集项目组织者.团队经理.编程人员.技术分析师于一身,来领导工程的进行.下面我们来看看这个项目 ...

  8. 大道至简第一章读后感JAVA伪代码形式

    观看了<大道至简>第一章后,从愚公移山的故事中可以发现愚公移山其实可以看作是一个一个项目,下面用JAVA伪代码形式编写: Import java(愚公移山) //愚公移山 public c ...

  9. 大道至简第一章读后感 Java伪代码形式

    观看了大道至简的第一章之后,从愚公移山的故事中我们可以抽象出一个项目, 下面用Java 伪代码的形式来进行编写: import java(愚公移山的故事) //愚公移山 public class yu ...

随机推荐

  1. PAT 1042 字符统计(20)(思路)

    1042 字符统计(20)(20 分) 请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过1000的字符串.字符串由ASCII码表中任意可见字符及空格 ...

  2. Numpy 基础运算

    numpy的几种运算 1.一维矩阵运算 >>> import numpy as np >>> a=np.array([10,20,30,40]) # array([ ...

  3. BZOJ1057或洛谷1169 [ZJOI2007]棋盘制作

    BZOJ原题链接 洛谷原题链接 设\(L[i][j],R[i][j],H[i][j]\)表示点\((i,j)\)向左.右.上尽量拓展的左端点.右端点.上端点的坐标. \(L,R\)直接初始化好,\(H ...

  4. CODE[VS]4228 小猫爬山 小猫爬山

    原题链接 第一眼还以为是贪心,然后随便找了几组例子瞬间推翻贪心的想法.发现\(n\leqslant18\),显然是用爆搜+剪枝. 爆搜主体我是对小猫进行枚举,判断增添缆车,其实这是一个比较慢的搜法,而 ...

  5. Python 环境安装教程(Windows 10)

    Python编程语言非常强大,非常容易上手,版本更新也不慢,在win10 x64中兼容性也很好,直接安装不需另外配置,虽然Python2和3有点异同.学习的话选择最新的 python 3.7.1版. ...

  6. mongo数据库的y2038问题

    查阅mongo for c driver 驱动源码, 发现其 _id 是 12byte  ,其中头4字节,调用time(NULL), 这个函数存在y2038问题. 建议是修改为16byte ,前面8b ...

  7. [Robot Framework] 如何在Setup中用Run Keywords执行多个带参数的关键字

    参考文档:http://www.howtobuildsoftware.com/index.php/how-do/bZ7q/robotframework-setup-teardown-robot-fra ...

  8. Spring IOC(二)beanName 别名管理

    Spring IOC(二)beanName 别名管理 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 一.AliasReg ...

  9. jquery全选反选

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. ubuntu14简介/安装/菜鸟使用手册

    Linux拥有众多的发行版,可以分为两大类商业版和开源社区免费版.商业版以Radhat为代表,开源社区版以debian为代表. 简单的比较ubuntu与centos.    Ubuntu 优点:丰富的 ...