提出问题
快速通读教材《构建之法》,并参照提问模板,提出5个问题。
在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文,列出一些事例或资料,支持你的提问。
说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?
Q1.
P55第三章“软件工程师的成长”里举例
很多学生学了一些编程语言,读了一些技术博客,一般都豪情万丈,做一个项目恨不得展现平生所学,再加上前沿技术,做一个轰动的创新。
每天都有很多宏大的新想法,惊世骇俗的评论冒出来,争论美女/张飞/巨石的重构问题,对一些通用的框架/平台提出一些人云亦云的评论等。
这是作者在书里面提到软件工程师的思维误区包括过早的扩大化/泛化的例子,我觉得学会了新技术就想要马上实践是正常的,有时可能会有出人意料的突破,但或许这些想法可能会不切实际,新技术中有很多不确定的东西,机遇与风险并存。那应该如何去尝试与选择应用新技术是最适宜的呢?
- 参考资料: 折腾!新产品千万不要用新技术来开发!
Q2.
p61
一个"不精通"的面试者的编程过程实际上就是一个"解决问题"的过程
那怎么提高技能呢? 答案很简单, 通过不断的练习, 把那些低层次的问题都解决了, 变成不用经过大脑的自动操作, 然后才有时间和脑力来解决较高层次的问题。
作者所说的通过不断练习,不用经过大脑的自动操作,就能把低层次问题解决。大概是跟我们听到“鹅鹅鹅”,立马能够脱口而出“曲项向天歌”一样吧。但是这个低层次问题的解决要通过不断练习的话,解决中间层次的问题也是在不断练习低层次问题的过程,所以这个层次也不能划分的很清楚。达到自动操作,所需要的练习量和时间很多,如果不断地只练习低层次,恐怕到不了中层次就已经失去兴趣了吧。
Q3.
P368效能过剩和竞争的各个阶段
那么如何判断一种技术已经到了维持性的阶段呢?一个重要的特性就是效能过剩。
看到作者举例cpu的性能已经过剩了,好奇查了查发现各人看法不一,如现在高端笔记本电脑的CPU真的性能过剩吗?。效能过剩应该是针对绝大多数使用者来说的吧,现有性能已经能满足日常使用了。除此之外还有部分更高需求的人可能不这么认为,应该怎么判断呢。
Q4.
p388这里作者说到要对选择合适的时机,对不同的人施以不同的引导。里面对积极的初学者的能力方面的帮助里提到
要定义他们在团队中的角色和范围,限制自主性发挥;
作者划分了四个象限,从无知的乐观状态->知情的悲观状态->价值危机->知情的乐观状态。对每个状态的人给出了不同的引导,定义角色和范围有利于初学者找到方向,但是限制自主性发挥这个我不太理解,自主性发挥会带来什么问题。应该工作上限制,学习上提倡吗?
Q5.
P114敏捷开发
看了敏捷开发的流程,包括了找任务,细化任务,沟通完成任务,总结,实现快速迭代。参考资料里提到
而敏捷开发的意义在于它只关注文档中的重要点,或者尽可能的去简化文档,敏捷开发其实更注重的是人与人之间的沟通、交流。所以它强调以人为核心。
把设计文档的时间用来进行团队沟通,书里作者还提到适合敏捷流程的团队要求是:自主管理,自我组织,多功能型。所以对团队各成员的综合能力要求比较高。项目成员较多的情况下,沟通理解能力可能不同,相互交流需要较多的时间,要怎么样让每个人理解到同一意思,确保任务有效传达?
- 参考资料: 谈谈我理解的敏捷开发
【附加题】:请将问题提交至豆瓣:https://book.douban.com/subject/27069503/, 并在博客中给出链接
在豆瓣页面的最下方 “读书笔记” 那里发言, 《构建之法》的作者会亲自答复问题