感谢图灵社区的电子书阅读奖励计划。
虽然书名是《代码之外的功夫》,但其实部分内容还是和代码有关,更确切的描述是和开发相关,这其实从目录也能看出来,并且每一章都以虚构的故事来帮助我们融入当时的情景,更好地理解这一章的内容。
第一章,善用设计原型。
讲述原型的重要性,其实也不太算原型,而是以 MVP 为目标,一开始搭建的就是实际网页,而不是用 Axure 这类原型设计软件。
但实际上一个能够访问的产品,相比 Axure 的确更能让需求方在实际场景下感受,他会用自己的电脑、手机去访问,而不是只能看着产品在自己电脑上演示原型。
第二章,发掘隐藏依赖。
这就和研发相关了,并且也和实际的代码有关,我认为属于代码「内」的功夫。
第三章,第三方服务。
这也和研发有关,虽然讲的是如何「选择第三方服务」,但也要整合到代码中吧。
第四章,解决问题的思路。
这一章与下一章是花费时间最多的章节,因为就是实际编码了啊,虽然说是介绍了解决问题的思路,但如果不实际了解需求,自己实际动手编码,这章会很难看懂。这章的题目是「数牌问题」,由于没有附上规则的完整说明,附上的英文说明自己英文也不怎么好,看起来比较吃力,并且书中的内容也存在一些疑问,提到:
玩家在出牌时可以做以下 4 种动作之一:抽取一张牌;将一张牌传给另一个玩家;从另一个玩家手中接过一张牌;打出一张牌。
但紧接着说:
对于每一个玩家而言,抽牌数、传牌数、接牌数和出牌数没有限制
那么问题来了,当轮到某个玩家的回合,他能做什么?实际上看后面的内容,是可以同时进行「抽牌」、「传牌」、「接牌」、「出牌」操作,并且不限制数量(从后面看好像是只能抽两张?),所以对这章其实看得不是很明白。但核心内容就是介绍了解决编程问题的思路,以及算法的重要性。
是的,感受到了算法,如何洗牌、抽牌,以及列出可能的分支,作为一个野生 web 开发,之前完全没有感受到算法,但发现游戏,就是规则,就是算法。
第五章,自底向上设计。
说实话题目就没看懂,虽然每个中文都能看懂,属于设计的一种方式,但看不懂。
第六章,数据建模。
建模能力属于代码能力吗,我认为属于的,属于程序员必备技能。
第七章,合理安排时间。
这是属于代码外的能力了,在有限的工作时间内,如何将时间安排在最有价值的工作上。但给出的答案也只是敏捷的一些基本准则,没有特别吸引人的观点或者建议。
第八章,软件开发的未来。
这章是描述了作者对于「程序员」的本质是什么的认知,就是「用技术解决问题的人」,用什么技术无所谓,核心在「解决问题」。
总结
本书适合刚入职程序员这一行的人看,因为大部分都会在长时间的工作中体会、总结到这些内容。