实话实说,我在下载这本书的试读章节时候并没有抱读下去的希望,因为关于软件工程的书有很多,大多是枯燥而理论性极强的,读起来会颇感乏味,只是顺手把所有的试读书籍都下载下来。但是当我打开的时候,却不由自主的用了将近一个小时把试读的两章细细品味了两遍。
很少见到有讲工程的书能像本书的作者一样把软件工程讲的如此生动而有趣,也让我从另一个角度去反思,到底什么才是软件工程。我不得不承认,或许我现在还在停留在编程而不是工程阶段——研究学习各式各样的代码,讨论java和.net的优劣,甚至去争论linux的开源和android的非完全开源。
于是我发现,时间久了,编程已经不是那么复杂的一件事,有时候甚至不需要敲打很多行代码,只要从从前的项目中copy过来就可以了。想来这也是为什么程序员们的键盘上,“ctrl”、“c”、“v”这几个键是磨损最严重的。其实编程相对于软件工程来说只是最后的一环,软件工程不等于无休止的coding。
作者的“牛屎图”清晰而简明的归纳了什么是软件工程。从整体上来说可以从需求说起,对目标需求的描述和分析。在往前走,怎么去实现这个需求目标,便是“过程”(制定计划、角色间关系、划分职责)和“方法”(形成各种架构、设计)要去做的事情;最后用什么快速的去实现“过程”和“方法”,便是“工具”,从某种程度上说就是由程序员实现。
读到此处,一章终了,已经让我对软件工程有了全新的了解。所谓“大道至简”,其实的确并不复杂,作者仅仅用几个自己亲身经历的小故事而一些幽默简单的解说就让我对软件工程、对管理有了全面而深刻的认识。
继续读下去,走入了“工具”的世界。大多数的程序员们都是以钻研“工具”为重的,所以简历上最多见的永远是掌握了什么什么语言,精通了什么什么框架等等,并且以此为奋斗目标,却从来不曾想过到底这些都意味着什么。在本书里,作者用“秦统一六国”这样一个生动例子,告诉我们“秦不仅仅关注技法,而是关注法治”,引用原文一段话:
兵器只是作为一种征战的工具,在秦军中起着相当重要的作用。但秦国并不迷信兵器,而是把兵器作为工具取而用之,并透析剑、弩等武器的本质,了解具体特性的成因与功用,进而规范成方法技术(而非技法技巧)。这些构成了秦军的军事基础,成为战争——这个浩大工程的组成部分。
工具之于工程,本质在于关注并发挥有益于工程全局的那些特性。一人一技,一器一物,又岂能是工程的要义?因此,我们最终看到拥有利器巧技的六国都不在了,最后只剩下一个强秦统一了天下。
同样的反思我们的软件工程领域,很容易就发现举凡成功的大型公司,如google、facebook都不是因为“工具”(也就是说什么技术牛人)而闻名天下的,可以想见其他的未成功的公司未必就没有更厉害的“工具”使用者,他们依靠的是成熟的组织管理体系和创新精神。回归到刚才的“牛屎图”中,成熟的组织管理体系属于“过程”范畴,而创新精神则大多属于“实现对”范畴。所谓“工具”,有能力的高手或许大多也是“唯手熟尔”。
当然,我们也可以想见,作者并不是让我们完全抛弃“工具”,只是让我们换一个角度看问题。所谓“方法”、“过程”等等的思考也需要建立在“工具”的经验之上,没有人能跳过这个过程。所以现阶段的我们,要踏实的一步一个脚印的走在路上,静下心来研究代码,先成为一个“巧匠”。最后用作者的一段话结束这篇读书笔记,也是我想说想做的:
“必先是匠人,之后才会是艺人,再之后才会是艺术家。程序员就是程序员,如果不静下心来做代码,好高骛远则终将一无所成。”
- 大小: 30.1 KB
分享到:
相关推荐
竹林蹊径:深入浅出Windows驱动开发--试读样章
深入理解Android内核设计思想(第2版)(上下册)-试读版.pdf
这是《竹林蹊径--深入浅出Windows内核驱动开发》的三章试读内容,算是官方发布吧。内容是:第二章(64位编程)、第六章(内核C++)、附录2(虚拟机调试)。 本书由China-pub首发,目前在当当和淘宝上都有卖。价格低...
计算机图形学大作业终极版!!!包括2D和3D,2D包括直线、圆、多边形画法和填充、曲线、曲面的多种方法,弹球反射、图形变换(对称、旋转),亮点是,画完图形可以鼠标拖动修改;3D包括画小房子,灯光效果,这是我...
CAN总线嵌入式开发--从入门到实践试读,CAN总线,CAN通信,经典书籍
云计算:大数据时代的系统工程试读
试读-Docker 容器与容器云(第2版)-P469-浙大-人邮-2016.10
sunxin-Struts2试读sunxin-Struts2试读
其他工程领域中,经过验证的跟踪技术和常规监督程序,在软件工程中常常被认为是无谓的举动。 第五,当意识到进度的偏移时,下意识(以及传统)的反应是增加人力。这就像使用汽油灭火一样,只会使事情更糟。越来越大...
本书深入浅出,详细讲解了Android开发的知识,主要内容包括:Android的体系架构、Android Studio、项目的创建、Android工程目录、调试程序、界面的搭建;常用的控件和属性、提示信息Toast和Snackbar、点击事件3种...
作者根据自己的亲身经历和某些大型企业的案例,讲述了如何创建高稳定性的软件系统,分析设计和实现中导致系统出现问题的原因。本书分为四个部分,每部分内容都由一个研究案例引出。第一部分介绍了如何保证系统的生存...
竟成408-数据结构-部分试读,考研计算机408,真题,模拟题,考研408必备用书。
[试读]本书的一部分可在线获得。 文件组织 文件夹名称 描述 DeZero源代码 使用DeZero的实现示例 每个步骤文件(step01.py〜step60.py) 零单元测试 所需的外部库 本文档中使用的Pytnon版本和外部库如下。 NumPy ...
竟成408辅导书-数据结构-部分试读.exe
JSF第一步--JSF+Spring+ Hibernate+AJAX编程实践 试读
CompleteWebMonitoring的英文版,中文版的书实在太贵。老外的书讲的浅显易懂,虽然看不全,但至少还能了解个大概。
这是试读版,只有前两章,不过是原版不是扫描版。我会在我的博客记录我的阅读笔记。
本书以实际项目为原型、以关键理论与丰富实践为指导,贯彻了先进的项目管理理念与全程质量管理思想。