【问题标题】:Structure and Interpretation of Computer Programs, what level of maths ability is required?计算机程序的结构和解释,需要什么水平的数学能力?
【发布时间】:2009-05-27 21:33:18
【问题描述】:

很遗憾,我从 16 岁(GCSE 级别)开始就没有学习数学,我现在是一名 27 岁的 C# 开发人员。 尝试通过 Structure and Interpretation of Computer Programs (SICP) 工作会是徒劳的吗?

希望读者达到什么样的数学标准?

【问题讨论】:

  • +1。我尝试了这本书,但放弃了。祝你好运。
  • 无论如何,Lisp 方言都很美。

标签: math sicp


【解决方案1】:

通过all of SICP,我可以自信地告诉您,您不需要很多数学背景即可理解它。 SICP 是(曾经是?)麻省理工学院的第一或第二学期课程,适用于几乎没有大学/大学数学水平的学生。每当它讨论数学主题时,它都为任何聪明的读者提供了足够的背景知识来理解。

从您对自己的了解来看,现在正是通过 SICP 工作的好时机。阅读本书并解决(至少一些)练习,并使用项目的代码,可以教你很多关于编程的知识。不要担心数学 - 你会毫无问题地处理它。真正需要的是对编程真正、深刻的好奇心和耐心。

【讨论】:

  • 我很高兴阅读您的 SICP 之旅。恭喜您完成本书!
  • 是的,你在博客上的结论很有趣,我认为 scip 可能是我的下一个项目。
【解决方案2】:

开始 SICP 永远不会太晚。而且它根本不需要任何更高的数学,除了可能在具有无限流部分的信号处理中。可以跳过而不会损失太多。

阅读 SICP 时最重要的是解决问题,IMO。一些较难的内容可以扩展思维并迫使您真正理解该主题。如果您对某些解决方案有信心,您可以跳过它。解决方案可以在 - http://eli.thegreenplace.net/category/programming/lisp/sicp/

阅读SICP的危险在于,读完之后,你不会喜欢使用Scheme以外的任何编程语言。 :)

【讨论】:

    【解决方案3】:

    我对这本书很感兴趣。我的数学知识不是很好……但是有一个关键:

    要理解这样的事情,只要你有创造性思维,并且很好地掌握结构和数学原理的抽象性质,你应该没问题。以任何人的标准来看,我的心算都很差,但我喜欢阅读有关离散数学的内容,因为它具有抽象性。

    我不认为自己在数字意义上是一个非常好的数学家,但作为一名软件开发人员,我喜欢认为我有数学(或机械)头脑。

    我不会过多担心您的数值强度,而是更关心数学的性质以及支撑计算机科学的概念的个性。如果您有良好的编程头脑,可以尝试使用组合数学/离散数学/具体数学(除了计数理论,在许多情况下避免干数)来增强它。

    我发现自己喜欢学习编译器的集合论之类的东西,而且我不想在没有大量死记的情况下参加我的数学 A-level!

    试一试,你会失去什么?

    (我 22 岁,和你情况相似)

    祝你好运

    PS:我还发现视频讲座很有趣。您可以从

    下载它们

    http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

    【讨论】:

      【解决方案4】:

      这绝对不是徒劳的练习,它是一本很棒的书。另一方面,这会有点困难,因为他们确实希望你有一些数学知识,如果不是大量的高级数学的话。

      您可能会发现 Felleisen 等人的 How to Design Programs 更容易开始,同时为您提供了几乎相同的方法,使用 Scheme 等。

      【讨论】:

      • “如何设计程序”会教我很多 sip 会教的东西吗?
      • 关于编程,是的。 SICP 也很好,但可能有点僵硬。
      • HTDP 涵盖了许多相同的内容,但从不同的角度。您仍然可以体验解释器、递归、闭包、OO 等。
      【解决方案5】:

      据我所知,这本书谈到了一些矩阵计算,一开始可能很难理解。但它只是列表的列表,或数组的数组......所以你迟早需要在编程中处理它。

      如果有任何困难的数学,我想你可以跳过它。这本书在伯克利大学一年级的计算机科学课(很多学生在第一学期学习)中使用过(并且可能现在仍然使用过),根本不需要理解微积分,所以我认为对数学的一般理解足以理解书。

      这本书谈到了一个函数是一个黑匣子……读完这本书后,我认为它也有助于一个人对数学的理解。

      【讨论】:

        【解决方案6】:

        数值编程部分可能需要一些高等数学,但你应该能够用高中数学消化本书的其余部分。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-04-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-28
          • 1970-01-01
          • 1970-01-01
          • 2018-12-25
          • 1970-01-01
          相关资源
          最近更新 更多