遗憾的是,我从 16 岁(GCSE 级别)开始就没有学习数学,我现在是一名 27 岁的 C# 开发人员。尝试通过计算机程序的结构和解释(SICP) 进行工作会是徒劳的吗?
读者期望什么样的数学标准?
遗憾的是,我从 16 岁(GCSE 级别)开始就没有学习数学,我现在是一名 27 岁的 C# 开发人员。尝试通过计算机程序的结构和解释(SICP) 进行工作会是徒劳的吗?
读者期望什么样的数学标准?
在完成了所有 SICP 之后,我可以自信地告诉你,你不需要很多数学背景来理解它。SICP 是(曾经是?)麻省理工学院的第一或第二学期课程,适用于几乎没有大学/大学数学水平的学生。每当它讨论数学主题时,它都为任何聪明的读者提供了足够的背景知识来理解。
从您对自己的了解来看,现在正是通过 SICP 工作的好时机。阅读本书并解决(至少一些)练习,并使用项目的代码,可以教你很多关于编程的知识。不要担心数学 - 你会毫无问题地处理它。真正需要的是对编程真正的、深刻的好奇心,以及一些耐心。
开始 SICP 永远不会太晚。而且它根本不需要任何更高的数学,除了可能在具有无限流部分的信号处理中。可以跳过而不会损失太多。
阅读 SICP 时最重要的是解决问题,IMO。一些较难的可以扩展思维并迫使您真正理解该主题。如果您对某些解决方案有信心,您可以跳过它。解决方案可以在 - http://eli.thegreenplace.net/category/programming/lisp/sicp/
阅读 SICP 的危险在于,读完之后,你不会喜欢使用Scheme以外的任何编程语言。:)
我对这本书很感兴趣。我的数学知识不是很好……但有一个关键:
为了理解这样的事情,只要你有创造性的头脑,并且很好地掌握了结构和数学原理的抽象本质,你应该没问题。以任何人的标准来看,我的心算都很差,但我喜欢阅读离散数学,因为它是抽象的。
在数字意义上,我不会认为自己是一个非常好的数学家,但作为一名软件开发人员,我喜欢认为我有数学(或机械)头脑。
我不会太担心你的数字实力,而是更担心数学的本质和支撑计算机科学的概念的个性。如果您有良好的编程头脑,也许可以尝试使用组合数学/离散数学/具体数学(除了计数理论,在许多情况下避免干数)来增强它。
我发现自己喜欢学习编译器的集合论之类的东西,而且我不想在没有大量死记硬背的情况下参加我的数学 A-level!
试一试,你有什么损失?
(我 22 岁,和你情况类似)
祝你好运
PS:我也发现视频讲座很有趣。你可以从
http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/
从这本书的记忆中,它谈到了一些矩阵计算,一开始可能很难理解。但它只是列表列表或数组数组......所以你迟早需要在编程中处理它。
如果有任何困难的数学,我想你可以跳过它。这本书在伯克利大学一年级的计算机科学课(很多学生在第一学期学习)中使用过(并且可能现在仍然使用过),根本不需要理解微积分,所以我认为对数学的一般理解足以理解书。
这本书谈到了一个函数是一个黑匣子……读完这本书后,我认为它也有助于一个人对数学的理解。
这绝对不会是徒劳的练习,这是一本很棒的书。另一方面,这会有点困难,因为他们确实希望你有一些数学复杂性,如果不是大量的高级数学。
您可能会发现Felleisen 等人的How to Design Programs,它的开始有点容易,同时使用 Scheme 和所有方法为您提供了几乎相同的方法。
数值编程部分可能需要一些更高的数学,但你应该能够用高中数学来消化本书的其余部分。