具体描述
《软件随想录 卷2》是一部关于软件技术、人才、创业和企业管理的随想文集,作者Joel Spolsky以诙谐幽默的笔触将自己在软件行业的亲身感悟娓娓道来,观点新颖独特,内容简洁实用。全书分为36讲,每一讲都是一个独立的专题,分别介绍了作者在人员管理、程序员成长规划、软件设计细节、具体的项目管理、如何编程以及如何创办和经营软件公司等方面的独到见解。
《软件随想录 卷2》从不同侧面满足了软件开发人员、设计人员、管理人员及从事软件相关工作的人员的学习与工作需要。
作者简介
乔尔•斯波尔斯基(Joel Spolsky)
是一名软件行业的资深人士,他的开设的个人博客“乔尔谈软件”(www.joelonsoftware.com)深受程序员们的欢迎,被誉为“反呆伯特宣言”。斯波尔斯基设计和开发了许多广为使用的软件,参与过的软件产品包括微软Excel和朱诺邮件客户端的用户界面。他还创立了位于纽约市的Fog Creek软件公司。
目录信息
01 我的第一次BillG 审查 2
02 寻找优秀的程序员 9
03 寻找优秀的程序员之实战指南 21
04 三种管理方法 33
05 军事化管理法 35
06 经济利益驱动法 38
07 认同法 43
第二部分 写给未来程序员的建议 47
08 学校只教Java的危险性 48
09 在耶鲁大学的演讲 55
10 给计算机系学生的建议 70
第三部分 设计的作用 81
11 字体平滑、反锯齿和次像素渲染 82
12 寸土必争 85
13 大构想的陷阱 89
14 别给用户太多选择 94
15 易用性是不够的 97说说
16 用软件搭建社区 105
第四部分 管理大型项目 117
17 火星人的耳机 118
18 为什么Microsoft Office的文件格式如此复杂(以及一些对策) 134
19 要挣钱,就别怕脏 141
第五部分 编程建议 145
20 循证式日程规划 146
21 关于战略问题的通信之六 159
22 你的编程语言做得到吗 166
23 让错误的代码显而易见 172
第六部分 开办软件公司 189说
24 Eric Sink on the Business of Software的前言 190
25 Micro-ISV: From Vision to Reality的前言 193
26 飙高音 197
第七部分 经营软件公司 207
27 仿生学办公室 208
28 他山之石,不可攻玉 212
29 简化性 216
30 揉一揉,搓一搓 219
31 组织beta测试的十二个最高秘诀 224
32 建立优质客户服务的七个步骤 227
第八部分 发布软件 237
33 挑选发布日期 238
34 软件定价 244
第九部分 修订软件 263
35 五个为什么 264
36 确定优先顺序 270
· · · · · · (收起)
读后感
给我印象最深的是关于寻找优秀程序员和在耶鲁大学演讲的几章。比如,关于招聘,他说不要去在网上招聘,因为优秀的程序员从来不在网上投简历找工作,而在网上投简历的都不是......(此处略去若干字)。这种言论尖锐,会让大多数人听了不舒服,但是反过来想想,还是有几分道理。 ...
这本书是写给程序员看的,不过其实更适合雇佣程序员的人看,他们是任何想找程序员做事但无技术背景的人,最好看一下这本书。 顺手摘抄其中一篇,讲到产品开发完找人测试: 3. Don’tthink you can get through a full beta cycle in less than eight to ten weeks. I’ve tri...
用户评价
这本书的封面设计得非常引人注目,那种深邃的蓝色调配上简洁有力的字体,让人在书架上第一眼就会被吸引。我通常对那些标题比较“抽象”的书保持谨慎,但《软件随想录 卷2》这个名字,加上那种略带哲学思辨的调性,成功勾起了我的好奇心。它给我的第一印象,不是那种堆砌技术细节的工具书,而更像是一次对软件本质的探索之旅。拿在手里,纸张的质感也很棒,内页的排版松紧有度,读起来非常舒适,不像有些技术书为了塞满信息而导致版式拥挤,这本书明显在用户体验上花了心思。我期待它能在纷繁复杂的编程世界中,提供一些清晰的、高屋建瓴的视角,而不是仅仅停留在“如何实现”的层面,而是去探讨“为何要这样实现”的深层逻辑。它似乎在暗示,软件开发不仅仅是代码的堆砌,更是一种思考方式的体现。那种沉静而有力的封面语言,预示着内里将是一场思想的盛宴,而非简单的技术手册翻阅。我希望作者能够像一位经验丰富的大师,带着我穿梭于代码的迷雾之中,揭示那些隐藏在日常开发背后的设计哲学和架构美学。这种对书籍物理形态的关注,往往能折射出作者对内容打磨的用心程度,它给我的期待值拉得很高。
我特别欣赏这本书在处理复杂概念时所展现出来的“留白”艺术。很多技术书籍倾向于将所有细节填满,生怕读者遗漏任何一个技术点,但这本《卷2》却反其道而行之。它常常在一个关键的架构决策点上戛然而止,或者只给出两个截然相反的实现路径,然后将最终的选择权和思考的负担抛回给读者。这与其说是作者的疏忽,不如说是一种高明的引导策略。它成功地避免了陷入具体框架或特定语言的“教条主义”,让读者明白,在软件工程的宏大图景中,工具和技术都是可替换的变量,真正恒定不变的是设计背后的原则和权衡的艺术。例如,在讨论系统韧性设计时,作者没有推销任何现有的框架,而是详细剖析了“容错”与“快速恢复”之间的成本效益分析,并要求读者自行判断在特定业务场景下哪种策略更优。这种“授人以渔”的教学方式,极大地锻炼了读者的决策能力和批判性思维,迫使我们不再满足于复制粘贴的答案,而是去构建自己的判断体系。
这本书的语言风格充满了强烈的个人色彩,可以说是非常“有个性”了。作者的文字功底显然不在于追求教科书式的严谨规范,而是更偏向于一种犀利且充满洞察力的辩论。他似乎毫不留情地解剖了当前软件行业中一些被奉若圭臬的“陈规陋习”,那种批判的语气是毫不妥协的,甚至有些许的“愤世嫉俗”,但有趣的是,这种不留情面的揭示往往能击中问题的核心。比如在谈到敏捷开发的某些异化现象时,他并没有给出标准化的“修复方案”,而是用一种近乎嘲讽的口吻,描绘了流程如何异化为目的本身,而初衷却被抛诸脑后。这种直击痛点的表达方式,无疑会引起一部分读者的共鸣,特别是那些在实践中深感流程僵化的资深从业者。当然,对于初学者来说,这种带有强烈主观色彩的论述可能会造成一定的理解障碍,因为你必须时刻警惕,哪些是作者基于经验的深刻洞见,哪些是个人偏好的表达。但正是这种鲜明的立场,使得全书充满了张力,读起来绝不会有“味同嚼蜡”的枯燥感,更像是在听一位极富魅力的、略带叛逆精神的导师在台上激情演讲。
我花了相当长的时间才真正进入这本书的节奏,它绝不是那种可以快速浏览、囫囵吞枣的读物。它的叙事节奏非常独特,不像传统技术书籍那样直奔主题,而是采用了大量的案例铺陈和历史回溯来构建论点。初读时,我甚至有点迷失在那些看似不相关的历史轶事和哲学思辨之间,感觉像是在阅读一本跨学科的散文集,而非软件工程书籍。然而,一旦你接受了作者设定的这种“慢热”的交流方式,你会发现它像一个精密的钟表,每一个看似游离的零件,最终都会咬合在一起,形成一个宏大而有力的结构。作者在探讨模块化和解耦时,引用了古代建筑学的原理,这种跨界的类比非常高明,它强迫你跳出局限的IT思维定势,从更广阔的维度去审视软件的生命周期。这种深度需要读者付出专注力,甚至需要反复回味某些段落才能真正体会其妙处。它挑战的不是你现有的知识储备,而是你的思维弹性——能否接受一种与众不同的、更具文学性的技术论述方式。读完某个章节,我常常需要停下来,望着窗外,让那些文字在脑海中沉淀、发酵,才能捕捉到作者真正想要传达的“道”而非“术”。
这本书的结构布局,也体现出一种超越常规的思考逻辑。它没有采用传统的“基础理论—进阶应用—实践案例”的线性结构,反而像是由无数相互关联的节点构成的网络。你似乎可以从任何一章开始阅读,都能找到一个切入点,但阅读的路径却会自然地引导你走向其他看似不相关的部分,最终汇集成对软件生命周期一个整体的认知。例如,对“技术债务”的探讨,并没有被简单地归类到“维护”章节,而是被巧妙地穿插在关于“团队文化”和“商业压力”的讨论中,作者清晰地表明,技术债务的产生源头,往往比代码本身更为复杂和深刻。这种非线性的组织方式,非常贴合现代软件开发中各种因素相互交织的现实情况。它要求读者的大脑同时保持多个维度的信息处理能力,去理解一个软件系统是如何在技术、商业、人员、时间这四个维度上相互博弈和演化的。读完之后,你获得的不再是一个工具箱,而更像是一套用于解析复杂系统的思维模型,帮助你从纷乱的日常工作中抽离出来,看到全局的动态平衡。
humorous, insightful book, only a true master can conclude the profound principle in software developing and managing in such a plain way.
没有第一卷精彩,但是观点还是非常实用。每隔一段时间值得拿出来看看
20200429
没有第一卷精彩,但是观点还是非常实用。每隔一段时间值得拿出来看看
1