programming-languages - 我想回到 CS 的基础。对教程或注重应用的引用资料有什么建议吗?

标签 programming-languages computer-science theory

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




多年来,我一直以顾问身份进行编程,我热爱我的工作,其中涉及使用托管语言(即软件工程)进行的大量面向对象分析和软件系统设计。但我最终想获得博士学位,我从来没有真正“获得”过计算机科学理论,这让我感到困扰。在大学里,我在这些类(class)中的表现只是略胜一筹,因为它们的教学方式对我不起作用。我通过观察概念的应用来学习,而不是死记硬背。

我以前克服了这样一个障碍的一个例子 - 我有一个可怕的第一年。教授(我现在知道他几乎没有资格,而且是一个不称职的老师)从 C++ 开始,教我们过程编程。从技术上讲,我已经了解了对象是什么,但直到我看到面向对象分析和设计(使用设计模式和其他结构,如链表)的应用,我才真正理解它们的用途。

我将如何学习编译器、编程语言理论和算法分析等科目?什么是开始这些的好方法?例如,我最终想编写一个编译器(为了好玩),但我不知道从哪里开始。有人遇到过这种情况吗?任何关于教程、免费在线讲座视频或引用的建议(像 w3schools 这样的东西会很棒)?

(我想补充一点,浏览 Stackoverflow 已经教会了我加载,但我希望它更正式一点:)

编辑:谢谢大家的建议。我已经标记了一个对我个人有用的答案,但请继续提供答案:)

最佳答案

我喜欢 Sedgewick 的“算法”(isbn 0201066734 1988 604p)
因为它以一种对话式的方式通过算法进行对话,
并有很好的例子。
查看 Amazon 下的评论.
(有许多变体版本,多卷 C++ Java 等)

(2 月 2 日添加:)虽然算法是基本的和有趣的,
他们相当偏远——在高地徒步旅行,而不是每天的交通拥堵。
Bentley 的“编程珍珠”(isbn 0-201-65788-0 2000 239p
pearls )
“充满了小案例研究、真实示例和有趣的练习,用于学习如何编程”。

对于大型团队软件项目,Brooks 的“Mythical Man-month”(isbn 0201835959 2ed 1995 322p
Amazon )
是必须的:
“产品的概念完整性至关重要”。
并在 p. 上引用 Parnas。 221:

instead of teaching people that O-O is a type of design, and giving them design principles, people have taught that O-O is the use of a particular tool. We can write good or bad programs with any tool. Unless we teach people how to design ...



最后,可视化/GUI/UI 通常有很大的改进空间。
我不知道在这方面有什么好的介绍书,与上述相提并论;还有谁 ?

关于programming-languages - 我想回到 CS 的基础。对教程或注重应用的引用资料有什么建议吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2150919/

相关文章:

oop - 如何使用类型类来实现持久性、内省(introspection)、身份、打印、

programming-languages - 你用什么过程来学习一门新的编程语言?

java - 哪些语言可以很好地替代 Java?

递归和大 O

math - 高级形式逻辑/自动机理论教科书

javascript - 用于存储部分 url 的数据结构,其中搜索速度优先

math - "Law of the Eight"是什么?

programming-languages - 编写尽可能长的循环

c# - 用于在 CLR 上实现语言的书籍和文献

theory - 它与内存一起工作时是状态机吗?