2024年9月底读书总结

【9月13日】《黑客与画家》,Paul Graham. 阮一峰 译.

本书是硅谷创业之父 Paul Graham关于IT 领域创业、编程语言、经营企业、未来语言、设计等的一系列观点阐述的合集,显示作者对一些问题的独到思考。印象深刻的有以下几点:

  1. Hacker含义的深刻阐述。本书所指的黑客是能独创性地解决问题、不愿受到限制的技术高超的人。具体到IT领域,是指具备高超IT技能、沉浸于探究软件内部原理、能解决IT领域难题的一类人,并乐于分享代码。他们一般不合群,且聪明。我认为作者本人可归类为黑客。他们通常在中小学时代不受同学欢迎,且不断地强化自己对某些事情的深入学习。作者对上述现象的原因进行了分析。
  2. 对IT初创公司发表一系列看法。作者提出,合伙创业的合伙人最好不超过3人。初创企业生存下去的一个根本是快速原型、快速反馈、快速发布,这样才能在大企业存在的情况求生存、求发展。作者最反对这类经理人,对技术一无所知却对技术有强烈个人观点的人。作者以自己与合伙人创办企业为例,指出要选用别人都不用的黑科技,且不让对手知道这些黑科技,才能在竞争中立于不败之地。
  3. 作者对编程语言历史、它们之间比较、未来编程语言等进行了深刻论述。某些地方与Joel的观点一致,即非常推崇Lisp语言。在软件工程课程的软件实现部分,可推荐同学们读一读该书的本部分。
  4. 作者对设计归纳总结,提出了好的设计的特征。不完全回忆下,作者指出好的设计应该是大胆的、对称的、启发式的、简单的、永不过时的、解决主要问题的、有点趣味性的、艰苦的、看似容易的设计,也是再设计。
  5. 作者还对计算机科学和黑客、设计和研究作了对比。这些观点很有启发性,但在当前的评价体制下,其中的矛盾不容易解决。

【9月16日】《The Object-oriented Thought Process》, 3rd Edition, Matt Weisfeld. Addison-Wesley, 2009.

本书对面向对象的相关概念,例如,类、对象、封装、继承、信息隐藏、多态、发送消息等,先行进行阐述;接着,讨论和阐述了面向对象分析、面向对象设计的过程,结合着一个21点扑克牌例子,详细讲述了继承(Inheritance)、组合(Composition)的使用方法;最后讲解了其他与OO相关的内容,包括XML、JavaScript、分布式编程和设计模式。

书中洋洋洒洒340页,其最核心的是OOA、OOD的过程和相应的OO思维,即如何从需求描述中找出候选类、筛选出候选类、为类分配职责、确定类间关系。【推荐软件工程课程中的面向对象开发方法学习中,同学们阅读此书。】

本书通俗易懂,代码短,每次只讲解某个知识点,最完整的对象模型图不超过6个类,涉及到了UML、CRC、JavaScript、CSS等,面广而不深入。大部分用Java代码,少量用C#.Net和VB.Net。由此可知,本书的核心内容不多。阅读速度为2个小时100页。

该书最重要的一点是:着重强调了OO思维过程,而不是OO语言和UML工具;强调结构化编程与OO编程是互补的而不是互斥的关系;给出了操作性强的面向对象设计、分析过程。

【9月17日】Matt Weisfeld. The Object-oriented Thought Process. 5th Edition. Pearson.

该版本与第3版相比,核心内容稳定,显得更加聚焦,即去掉了一些无关的内容,例如,XML、JavaScript、数据库、网络编程等,增加了面向对象设计原则的内容,例如,SOLID。

令人耳目一新的是利用代码讲清楚了开放闭合原则(OCP)、单一职责原则(SRC)等。

本书虽然出版于2019年,但引用的参考文献仍然与前面版本的相差不大。可见,设计思想之类的内容是相对稳定的。

【9月24日】Steve McConnell. Code Complete. 2004.

本书讲解了软件工程的方方面面,其中Software Construction是重点。根据书中的提示、原则和方法,程序员能更好地书写代码。例如,怎样设计类、怎样写例程、怎样命名等,作者都用大量篇幅讲解。

软件工程中的许多内容都可在本书中找到对应讲解,并且是更详细、更生动地讲解。行文中作者提供了大量的参考资源,这些值得深入阅读。

读后,能对软件工程领域中相关概念理解的更深,使得自己更加从容。
【软件实现部分的代码规范,可参考本书。】

【9月25日】Robert L. Glass. Facts and Fallacies of Software Engineering. 2002.

本书讨论软件工程中的一些事实和谬误,其中许多事实让我们感到惊讶,也与我们先前的直觉相反。作者简要给出了每个事实的争议点、来源及参考文献,以激发读者思考软件工程中相关问题,显示了作者深厚的理论功底和实践经验。

书中许多观点值得思考和借鉴。例如,关于软件质量的讨论,关于如何学习编程的讨论。

【9月27日】Conceptual blockbusting: a guide to better ideas. 2001. 4th Edition.

这是一本讲解如何突破思维障碍的书。若想让自己思路、自己产品等更有创新的话,建议阅读本书。

书中给出了思维障碍(block)的类型、定义、表现,并给出了突破这些障碍的方法技巧。其中最深刻的是书中给出了一个例子,在纸面上有正方形形状的9个点,请用4条直线单笔穿过所有9个点。我竟然一时半会没做出来,证明自己确实有一些思维定势。

不敢提问题是一种情感障碍的表现。本书对此进行了精辟的分析,并给出了克服它的方法。还有环境障碍,即某些人只有在特定的办公环境下,才能更好地产生创新想法。作者举了一个例子,他的一位教授朋友想写一本书,家里有大的书房,但仍然写不出来。后来,这位教授租了一间公寓,只带了必要的辅助资料,并切断了手机网络,顺利写出了想写的书。书中还提到一个创新性想法产生的技巧,就是延迟评判(Judging),让想法不断地出现,但不对这些想法的优缺点评判。头脑风暴法是延迟评判的一种好方法。

书中给出了官僚主义(Bureaucracy)一词的来源,指出提出者本人给出该词的含义并不含贬义,只是指一个机构非常稳定,任何一个人的离开不会对机构造成影响。书中对头脑风暴法的核心内涵,使用方法进行了详细讨论,这是我遇到的最透彻的描述,之前我轻视该方法了。

【9月27日】Steve McConnell. Software project survival guide. 1998.

本书对软件开发过程中的各主要环节进行了详细的描述,有助于读者对SE实战有更多了解。

【9月29日】Steve Berczuk. Software configuration management patterns: effective teamwork, practical integration.

本书较短,讲解了SCM的模式,能激起人们对版本控制工具的兴趣,更好地学习其使用方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值