|
逻辑程序员图书银弹核心软件工艺浮躁经典名著
“程序员”这个称号其实只是一个笼统的称呼。程序员有专业和业余之分,就像棋手有专业棋手、业余棋手之分。
合格的软件工程师一定是一名专业的程序员。那么,软件工程师,专业程序员,与业余程序员有何区别?
根据我多年的观察,两者之间最根本的区别在于:是否具备或在多大程度上掌握了科学的逻辑分析推理能力。一名合格的软件工程师会主动地、自觉地根据科学原理,采用科学方法,科学地、系统地、经济地、人本地来开发软件(张恂的软件工程定义),并根据正确的逻辑分析和推理过程,最终得出客观有效的结论。通过学习和研究,张恂还发现,世界上几乎所有的软件科学家、软件工程师和软件大师们似乎都基本上遵循着同一个逻辑系统,因而也具有大体相似和一致的科学逻辑思维 更多...
作为一名软件人,我们可能一生都需要不断地学习,而千年未改,图书依然是今天二十一世纪的程序员和软件工程师们获取知识的最主要来源。于是,想到给对自己的职业生涯乃至人生影响最大的几本图书、名著,搞一个 排行榜。不知能不能凑足 10 本,抑或超出,先列出来再说。评选标准为 张氏银弹理论:
售价不过是一本几十块 dollars(中文版、影印版不过是几十块 RMBs)的软件经典图书,在 10 年内带给它的读者们的回报岂止是 10 倍(一个数量级)?我看,至少是万倍,几十万倍,几百万倍 ... 而它们对于我们读者软件开发思想的形成和影响,不但可以受用终生,而且更是无法单纯用金钱、数量指标来衡量的!故:
软件经典名著,即事实上的银弹。更多... 回顾过去十五年来,世界范围内的软件开发工艺有哪几个重大变革和潮流?我的总结是:迭代敏捷(Agile & Iterative)、对象(Object)技术 与 用例(Use Case)技术。迭代过程取代瀑布过程成为主流,构成敏捷的基础;多层次、多方位的面向对象(新型结构化)技术取代传统结构化技术,极大推动了软件系统和产品在规模、效率、质量和复杂性等许多方面实现了空前的发展;用例(协议、场景)等相关先进需求分析管理技术的成熟运用,显著缓解了传统的需求难题。因此,张恂把这三样综合技术(软件工程工艺)作为考察一个当代软件开发组织是否成熟、是否具备现代生产力的重要标志。如果您高价请来的评估师没有把这三样告知您,实在可惜 更多... |
|
新闻评论[敏捷] Uncle Bob 谈敏捷的衰落 11.19 (7) [敏捷] 敏捷的衰落还是 XP 的衰落? 11.19 (9) [悟道] 太极敏捷的主要理论和观点 11.18 (214) [更多] SpringSource 收购 Groo ... (12) [更多] SpringSource 收购 Groo ... (19) [敏捷] SEI 发布 CMMI 与 Agile ... (12) [更多] 什么是 Acceptance Testing? (32) [敏捷] 敏捷合同很重要 11.2 (28) [更多] 有没有可能延长辅导时间? 10.31 (23) [敏捷] 为什么推行敏捷非要从 CI 开始? 10.14 (424) [更多] 又见 Jeff Xiong 的胡扯 9.26 (147) [敏捷] 微软的卓越软件工程 9.18 (72) [建模] 微软加入 OMG:UML or DSL 9.18 (52) [敏捷] 回复-volunteer work是否就 ... (30) [敏捷] 回复-回复-回复-8 年前我们如是做:任 ... (30) [更多] 回复-用例好于用户故事的理由 9.10 (27) [敏捷] 回复-用数字沟通业务部和开发部 9.10 (23) [敏捷] 用数字沟通业务部和开发部 9.2 (60) [用例] 用户故事估算技巧 9.2 (130) [敏捷] Agile and CMMI: Bett ... (47) [敏捷] 数据真的会让项目不停地偏离真实轨道? 8.19 (41) [敏捷] InfoQ 编辑乔梁的结论是错误的 8.19 (67) [更多] JUnit vs TestNG 8.18 (50) [爪哇] 单元测试工具 xUnit 家族 8.18 (45) [更多] 用例好于用户故事的理由 8.10 (81) [更多] 采用 Use Cases 的理由 8.10 (48) [更多] 选择用例还是用户故事? 8.10 (90) [敏捷] 回复-回复-8 年前我们如是做:任务分配 ... (80) [敏捷] 回复-8 年前我们如是做:任务分配的双向选择 (24) [建模] 优秀的 UML 工具 EA 8.4 (60) 所有评论状态:仅按时间先后显示最新贴 在线问答[敏捷] 迭代-35 如何确定迭代的长度? 8.3 (92) [敏捷] 回复-迭代-35 如何确定迭代的长度? 8.3 (147) [问答] 如何在 IE 中消除 Ajax 异步请求 ... (103) [问答] 如何提高 ADO.NET 访问性能? 10.29 (87) [敏捷] 回复-哪种编码顺序更合理? 10.22 (155) [敏捷] 哪种编码顺序更合理? 10.22 (113) [用例] 回复-关于用例流派的问题 9.5 (182) [用例] 关于用例流派的问题 9.5 (119) [问答] ASP.NET 2.0 数据访问教程 8.13 (61) [用例] 回复-有了 User Story 为什么 ... (172) [用例] 有了 User Story 为什么还需要 ... (139) [用例] 回复-学习用例的代价是否值得? 7.20 (107) [用例] 学习用例的代价是否值得? 7.20 (89) [问答] Logging 与 Tracing 3.18 (94) [用例] 张恂的 Use Case 定义 3.10 (230) [问答] 回复-如何让 NAnt 编译 .NET ... (121) [帮助] 如何在回复/评论中添加 URL 链接? 11.3 (173) [敏捷] 迭代式软件开发是新方法吗? 10.19 (133) [敏捷] 为什么要迭代? 10.19 (95) [敏捷] 什么是敏捷(Agile)开发? 10.19 (101) 所有问答状态:仅按时间先后显示最新贴 |
案例分析:TDD 实践之实用主义 436(案例 11.19)对 InfoQ China 上一个海员管理系统 TDD 实践案例的分析和评论。尽量避免采用中文方法名、过长的方法名,不要把冗长的测试条件、测试说明作为方法名。 案例分析:跌跌撞撞的持续集成之路 541(案例 11.17)对 InfoQ China 上一个遇到麻烦的 CI 案例的分析和评论。用 Daily Build/Smoke Test/Nightly Test 取代遇到性能瓶颈的持续集成方案。 敏捷 OO 技能个人辅导计划 6489(服务 10.31)张恂做您的私人顾问和教练,面向个人定制的软件研发技能(架构师、项目经理)提升计划。2008 冬季招募中 ... 小议软件架构设计要点 290(架构 10.9)架构决定成败;两个架构;风险驱动与敏捷迭代的架构设计;可视化架构建模;架构设计的重用;架构设计的权衡。 课程:OOAD*UML(培训 8.31)“UML 2 建模精粹(Java)”公开课(10 月上海开始报名); 2008 最新内训课表 JPetStore 架构设计 779(建模 6.22)利用 Use Case、UML 对经典样例 JPetStore 进行建模,还原架构设计。最近更新:太极建模的页面流转图 中国式敏捷:UDD over TDD 24358(敏捷 6.6)TDD 是我们应该认真学习的一种重要的敏捷做法,但它却不是敏捷所必需的,UDD 就是它的一种替代品。程序员学棋艺 掌握前构与重构的平衡。最近更新:如何简化 Martin Fowler 的重构,让重构数量减少一半! Struts2 教程 985(框架 6.3)银河使者编写的原创教程 Agile 与太极敏捷:到底啥是敏捷? 8196(敏捷 6.2)今天,您的团队和企业还没有做到迭代与敏捷?已经落伍了吧。然而敏捷是一个 buzzword,似乎每个人所说的“敏捷”都有些不同。本文试图从根源上对“到底什么是敏捷”进行认真而深入的分析研究,介绍了当前各种主流敏捷方法的特点和具体做法,并探讨了中式(太极)敏捷与西式敏捷的区别。最近更新:Craig Larman 论敏捷与 Scrum; CMM/CMMI 与敏捷的比较 案例:一个典型传统团队的敏捷改进 870(敏捷 5.26)以小见大、举一反三,从小项目、小团队的经典情况考察敏捷与传统的区别。从瀑布思维转向迭代思维是改进的重点和难点。 |
| 友情链接:[Craig Larman 中文站] [人月神话的博客] [没水的地方挖井,有水的地方...韩小明博客] 更多... | |




