《大道至简》之从编程到工程

很多开发人员都热衷于争论语言之间的孰优孰劣,但这对于一个专业人员来说很重要吗,语言其实就是一种工具而已,重要的是代码,方法,过程,工程与组织之间的关系。“程序=算法+结构”,这是程序的本源定义,也是原始的状态。与代码相关的任何工作,最终仍旧会落足于这样的一条规则。

推动程序逻辑向前发展的是“方法”和“方法论”的出现。长期的编程实践,自然的归演与总结,必须沉淀为某种方法,于是“过程”出现了,于是“对象”出现了,于是相关的方法论出现了。方法不是某个人创建的,而是经过长时间的实践而总结出来的。我们总觉得那些提出方法和模型的人很了不起,其实如果我们耐心的去总结何尝得不出方法和模型。

过程伴生工程出现。过程解决的实施工程角色间的关系问题。很多人如何组织在一起进行开发的问题,他首先把工程中的环节分解出来,这样就有了环节,就有了角色,有了角色就有了沟通。角色的确定,以及角色间的沟通问题,在项目中是非常重要的。工程组织的安排,工作的协调是至关重要的。而“合作无间”是书面上的说词,而真正的沟通的结果是“无间”。

最狭义的工程是描述“是什么”和“做什么”。也就是说,是对目标的描述和成果的检验,而目标的实现,是“过程”和“方法”的事,而“工具”就是最有效,最快速实现“过程”和“方法”需要的。对工程而言,就是一个复杂而庞大的项目,其中需要很高要求的人力和技术,期间团队合作也是必不可缺的。

工程理论是包含组织学的。如果工程关心的是“需求”,“配置”和“文档”等这样一些元素,那么这样的工程只能停留在技术层面,关注的还是工程实现细节,而不是目标。这些是项目接力和技术经理所需要关注的。然而除此之外项目经理和技术经理还需关注人力资源,项目资金以及多个项目之间的协调等。但这些与项目本生并没有直接关系,却与“组织”有关。所以在工程环节中“文档管理”和“配置管理”的词中的管理,是管理的具体技术和方法,而“组织”中管理是管理学上的词。

真正的BOSS是经营者,他决定了一个方向,组织者保证决策与这个方向是同步的,而工程是在这样一个方向,决策的构架下的一个具体行为。所以工程中没有BOSS。

从最简单的编程开始,到现在工程团队的组织开发,实现都是最终目的。所以实现,是软件开发的本质需求。在软件工程系统中,“实现”就如同上帝之手在推动这几十年来的软件工程理论体系的形成。

时间: 2024-10-11 09:25:55

《大道至简》之从编程到工程的相关文章

大道至简读后感---从编程到工程

从编程到工程 语言只是一种工具.在人们的认知中,语言就是一种工具,他是思维的工具,是交际的工具,语言的工具性价值已经得到了人们的广泛认可和普遍使用.对于一个程序员,或者以程序员自居的人来说看清楚一切的第一步只是“语言只是工具”! “程序 = 算法 + 结构”.这是编程的本源定义,也是原始的状态.与代码相关的任何工作,最终仍然会落足于这样的一条规则.编程的精义在于此,从有开发行为开始,他就存在了.愚公在数千年前就用雷同的行为做编程实践了,而几十万年前智人也在循环和分支所构成的逻辑中打转. 所谓的方

读《大道至简-软件工程实践者的思想》

一直心里有一个矛盾:究竟是完成工程任务重要还是让自己掌握好技术更重要? 这矛盾是否无法调解?作为公司.老板,当然希望完成工程,赚到钱:而作为员工拿着固定的月薪,当然希望充实自己,即使项目失败.公司倒闭,无非就是挪个窝,说不定还涨薪升职.这点我相信在任何的行业都是适用的. <大道至简>里提到了工程成本的问题,周爱民认为做一个软件项目,关键还是完成它.拿到钱,而至于过程,都是可以忽略的,这也是项目经理的职责,但不一定是技术经理的期望.往往,技术经理更倾向于使用最新的技术.最酷的框架.最潮的方案,而

《大道至简》随笔

本来听说<大道至简>这本书,以为是老子的道教,心里还纳闷,这跟我们学计算机的有什么关系.难不成计算机专业如此神秘,如此高深莫测.后来还是明白了,这是写编程的思想的,讲述的是编程的精要和内涵的. 作为一名计算机类专业的大学生,我接触编程刚一年,而且只学了一门c语言.说来惭愧,初入大学难免会有些放松,所以c语言学的并不怎么样.<大道至简>在最前面就以愚公移山为例,在愚公的论述中,我们看到了编程的根本:顺序.分支和循环.庞大若“愚公移山”这样的工程,都是可以通过这样简单的编程来是想的.这

《大道至简》第一章 读后感

大一刚上c++时,感觉写程序是一件很复杂甚至无聊的事,整天对着黑乎乎的屏幕,敲着甚至一些自己都不太懂的代码,仅仅知道的就是我们需要学习各种编程语言,学习如何在计算机上如何将代码编出来得到正确的运行结果.一门技术一门学问,弄得很深奥是因为没有看穿实质,搞的很复杂是因为没有抓住程序的关键.在搏击较量中,出招过多就是多余无效的招数太多,有效的招数少:医生开的药方越多,就越是把握和好方法,用那些判断不准的药来试.博大精深就是没有认清实质.没有抓住关键,反而陶醉在自我制造的纷繁复杂中不能自拔.可是我们并不

大道至简第一章观后感(伪代码)

1.编程的精义(愚公移山) 在两千年的寓言中,愚公这一工程名家,通过移山这一浩大的工程,为我们讲述一些最简单的编程根本:顺序,分支和循环.用这些根本他叙述了整个工程的实现,子孙无穷,是为循环,山不增,是为条件,条件成立,循环就不会死.把大的工程细分,用最简单的编程实现,在我看也许这就是编程的精义. Import.java.大道至简.*; Import.java.愚公移山.*; Punlic class yishan { Public static void main (string [] arg

大道至简第一章读后感----伪代码实现

import.java.大道至简.*; import.java.愚公移山.*; public class Yugongyishan { public static void main(String[] args) { while(山不平) { if(愚公未死) 叩石垦壤,箕畚运于渤海之尾; else if(愚公死) { if(子孙存在) { 子孙继续完成先人的移山; 叩石垦壤,箕畚运于渤海之尾; } else   { System.out.println("子孙断代,山不平!"); b

读《大道至简—是懒人造就了方法 》有感

读了大道至简第一章编程的精义之后,我觉得感触颇深,于是乎我又读了第二章是懒人造就了方法 ,之后果然没有让我失望,第二章写的也是非常的好,非常的吸引我. 第二章的开头便引用了李冰凿山的故事,在战国时代,李冰作为蜀国的成都看守,他自身的手下有非常之多,但是他也使用了一个非常省力的方法,那就是“积薪而烧之”,而不是像愚公那样“碎石击壤”,引出了标题懒人造就了方法.前面第一章提到了程序设计师的一个基本素质,折衷,也就是用更容易的方法实现要求重要李冰就是想到了用火烧的方法,只用了不多的人,不多的时间就烧平

读《大道至简》之从编程到工程

读<大道至简>第六章之从编程到工程 “得其精而忘其粗,在其内而忘其外:见其所见,不见其所不见,视其所视,而遗其所不视.” -------<列子·说符> 上文是取自秦穆公与伯乐之间关于九方皋相马的对话,直译是,天地间的奥妙:得到了它的精微,而放弃了它的粗略,省察它的内部而忘却其表象,看见了他所应当看见的地方,而没有看见他不必看见的地方,考察了他所应当考察的地方,抛弃了他所不必考察的地方.这则故事教给我们一个道理:认识一件事物就要像九方皋相马一样,避开纷繁复杂的表象的迷惑,先抓住事物最

大道至简—实践工程者的编程思想

大道至简—实践工程者的编程思想 提到编程,很多人都会发怵,是一门高难度的工作,当然我也不例外,这可以说是没有清楚地认知编程其中包含的思想,还没有真正地入门.程序是什么?是要写的一大堆复杂的代码?是熬夜通宵也弄不出来的东西?其实,就我而言,我认为程序的根本在于思想,只有想明白了才能写出来,想不明白自然就写不出来,正如<大道至简>这本书所写的,要把东西简化,这样使人才能一目了然. 愚公移山都不陌生,其实从这中间可以提炼出有关项目的实际执行,这其中有原始的需求:“惩山北之塞,出入之迂也”: 项目沟通

大道至简:软件工程实践者的思想——第六章感想 从编程到工程

从编程到工程 语言只是工具 语言对于一个从事IT相关行业的程序员.技术人员来说,语言仅仅只是工具,从事IT相关行业的人来说,看清楚大的程序来说这一切的开始,就是源于“语言只是工具”! 猿之于为人,“学会制作和使用工具”是最重要的标志,所以从事IT相关行业的我们也被业外的人称为程序猿,当然这里更多的是读音有点相似.因而我不知道“语言只是工具”这句话,究竟是对语言的膜拜,还是漠视.  然而从那一刻开始,我才真正地知道工程.我们学过的吃.#c++\还有现在所学的java,可能有些人说这是几门技术课程,