苏州大学 计算机学院转专业指南
  • 前言
  • 一些建议&牢骚
    • 笔者个人对计科院的简单评价
    • 该不该卷计算机
    • 我到底是不是真的「喜欢计算机」?什么样的人才「适合学计算机」?
    • CS 与 SE——对计算机行业有一个大致的了解
  • 正文
    • 资格限制
      • 大一转/大二转
      • GPA 要求
      • 专业大类要求及已修课程要求
      • 其他限制
    • 考试内容
      • 大致说明
      • 编程题涉及范围
      • 选择题涉及范围
      • 算法内容
      • 考成什么样能转?
    • 考试流程
      • 报名及准备
      • 机试
      • 面试
      • 大致录入情况
      • 等待通知
    • 如何准备
      • 确定报名专业
      • 学习基础知识
      • 刷题
      • 学习节奏
      • 有基础/没基础
      • *准备面试
    • *对于有基础的同学
      • 对自己的水平有个认识
      • 对于有基础的同学建议的准备方式
    • 转专业之后
      • 补修相关
      • 熟悉新环境
      • 实验室招新
    • 杂项
      • 院内互转?
      • 保研相关
      • 竞赛相关
  • 附录
    • 附录 A Python 入门书籍推荐
    • 附录 B Python 编辑器推荐
    • 附录 C Type Hints(类型提示)
  • 访谈集
    • 说明
    • 转专业——迷茫与笃行
      • 半后记
      • 迷茫
      • 笃行
  • 往年考题及题解
    • 2022 年
    • 2021 年
    • 2020 年
  • 附件
    • 苏州大学计算机科学与技术学院 2022 年本科生转专业工作实施细则
    • 苏州大学计算机科学与技术学院本科生转专业“专业特长生”认定标准
    • 苏州大学计算机科学与技术学院 2022 年本科生转专业考试方案
  • *个人推荐书单
    • 切入书单之前
    • Python 数据科学
    • R 语言
    • 人工智能
    • 理论计算机
    • 算法
    • C/C++
    • Java
    • *关于 Web 前后端的一些牢骚
    • 前端(JavaScript)
    • 后端(Java/Go)
    • 面向对象/设计模式
    • 数据库/分布式
    • 数学
    • 最佳实践/方法论
由 GitBook 提供支持
在本页
在GitHub上编辑
  1. *个人推荐书单

面向对象/设计模式

事实上,深入理解面向对象更推荐阅读《Java 编程思想》,本书已经包含在 9.11 节之中(目前来说,更推荐阅读同一作者新出的《On Java》)。

虽然面向对象本身是利大于弊的,但其带来的设计模式却是不折不扣的糟粕。设计模式的出现是为了补救面向对象带来的各种问题,以达到一种“最佳实践(Best Practice)”的目的。因此,这些年一直有用函数式编程取代面向对象设计模式的呼声,尽管我个人认为希望不大。如果你有意向深耕 Java,那设计模式确实有必要学一学,但也最多推荐你随便读两本有关的书,至于再多就不建议了,设计模式尽量要在实践中尝试运用而不是啃书。

如果你打算从事前端工作、数据科学、人工智能等与狭义上的软件工程等关系不那么大的工作,我不建议你去学习设计模式,因为意义不是很大。相反,如果你打算从事前端,做数据科学工作,反而建议你尝试了解更多函数式编程的思想,这里没有相关书单推荐,并且也不建议看书,函数式思想本身高度融合进了各种编程语言之中,在实际使用有函数式特性的语言的过程中,自然就能融会贯通。

另外,使用 Python/JavaScript 等脚本语言时也不建议直接套用 Java 设计模式,这只会使你的代码变得不伦不类。当然,我这里讨论的只是狭义上的以 GoF 设计模式为基础的设计模式,至于广义上的设计模式,其意义更偏向于“最佳实践”,不在这里的讨论范围内。个人认为,主流语言中只有 Java 是有必要在多数代码上套用设计模式的,而其他多数语言只有在少数情况下有必要套用设计模式。至于 Python 这种异常灵活的语言,就更没有必要套用设计模式了,有时间套设计模式不如去学学怎么写出 Pythonic 的代码。

  • 设计模式:中文版正文 268 页,出版于 1995 年,双色印刷。提出了著名的 GoF 23 种设计模式,是设计模式以及面向对象领域最经典的读物。尽管本书并不厚,但理解难度仍然是比较高的,不推荐作为入门读物,然而作为世界上第一本也是最知名的有关设计模式的书,仍然建议每个 Java 程序员(甚至非 Java 程序员)都读一读。书中使用 Smalltalk 和 Java 作为示例。翻译一般。

  • 图解设计模式:中文版正文 291 页,日文原版出版于 2004 年,黑白印刷。使用友好的方式分别介绍了 GoF 23 种设计模式,比较适合入门。书中使用 Java 作为示例。翻译不错。

  • 面向对象是怎样工作的:中文版正文 278 页,日文原版出版于 2011 年,双色印刷。A5 大小的小书,很快就能读完。内容比较容易理解,大致梳理了与面向对象有关的不少要点(例如设计模式、函数式编程与 UML),适合对面向对象这一概念比较困惑的初学者,不适合入门一年以上的读者(因为太基础)。翻译不错。

  • UML 基础、案例与应用(第 3 版):中文版正文 284 页,英文原版出版于 2004 年,黑白印刷。虽然是老书,但由于 UML 标准近十几年几乎没有任何推进(即使有推进大家也仍在广泛使用 1997 年的版本),所以现在看起来甚至感觉内容新的离谱(指一大堆十几年前更新的 UML 标准至今没多少人用上)。个人认为,至少在讲清楚 UML 一块,这本书是少有的好选择,本身内容质量也很过关。虽然我对 UML 整体持着批判与厌恶的态度,但这不妨碍这是一本不错的书。不过通常来说没有必要读一本专门介绍 UML 的书,网上的 UML 快速入门读一遍就足够了,我推荐这本书仅仅是因为软件工程专业需要学习 UML,所以放在这作为参考书而已。翻译一般。

上一页后端(Java/Go)下一页数据库/分布式

最后更新于2年前