这周上了本学期的第一节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. overflow visibility opacity(透明度) vertical-align 等等

     一,overflow属性:   1,四个值:    visible     默认值.内容不会被修剪,会呈现在元素框之外.    hidden        内容会被修剪,并且其余内容是不可见的.   ...

  2. Jmeter常用脚本开发之Java请求

    Java请求:就是用来对java项目的类进行压测 例子:将输入的两个参数通过IO存入文件 1.创建Java工程,工程目录如下 2.将Jmeter-lib下面的所有jar包导入java工程, 3.创建一 ...

  3. appache压力测试

    apache自带压力工具测试说明: Usage: ab [options] [http[s]://]hostname[:port]/pathOptions are: -n requests Numbe ...

  4. Partition Array Into Three Parts With Equal Sum LT1013

    Given an array A of integers, return true if and only if we can partition the array into three non-e ...

  5. ceres入门学习

    转载自https://www.jianshu.com/p/e5b03cf22c80 Ceres solver 是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographe ...

  6. .NET获取城市信息(将三字代码转换成城市名)

    整理代码,发现有一个从两张表里读取城市列表,然后linq和lambda表达式来获取城市名的函数,代码如下: public static string GetCityHotelText(string c ...

  7. PHP + Redis 队列实战

    环境 centos6.5 PHP5.3 Redis安装 #yum install redis 1.redis配置认证密码 #vi /etc/redis.conf requirepass mypass ...

  8. 【机器学习】从分类问题区别机器学习类型 与 初步介绍无监督学习算法 PAC

    如果要对硬币进行分类,我们对硬币根据不同的尺寸重量来告诉机器它是多少面值的硬币 这种对应的机器学习即使监督学习,那么如果我们不告诉机器这是多少面额的硬币,只有尺寸和重量,这时候让机器进行分类,希望机器 ...

  9. 【Game】2048小游戏

    每个男孩都有一个游戏梦吧,本例简单讲述一款很火的游戏<2048>的制作. 本例参考地址:https://www.imooc.com/learn/76 游戏准备 1.游戏的逻辑(2048大家 ...

  10. AJAX-URL-HTTP协议-缓存-DOM操作-HTML元素事件

    1.URL 1.URL的作用 用于来表示任意一个资源的位置(互联网上). 协议+主机名+文件目录结构+文件名称 2.详解 格式: <scheme>://<user>:<p ...