Programming languages I';I’我想回到CS的基本知识上来。对教程或有应用意识的参考资料有什么建议吗?

Programming languages I';I’我想回到CS的基本知识上来。对教程或有应用意识的参考资料有什么建议吗?,programming-languages,computer-science,theory,Programming Languages,Computer Science,Theory,作为一名顾问,我从事编程工作已有多年,我热爱我的工作,这项工作涉及使用托管语言(即软件工程)对软件系统进行大量面向对象的分析和设计。但我最终还是想获得博士学位,我从来没有真正“获得”过计算机科学理论,这让我很烦恼。在大学里,我只在这些课程上取得了微乎其微的成绩,因为这些课程的教学方式对我来说并不适用。我通过观察概念的应用来学习,而不是死记硬背 我以前克服过这样一个障碍的一个例子——我第一年过得很糟糕。这位教授(我现在知道他几乎没有资格,一位不称职的老师)从C++开始,教我们程序化编程。从技术上讲

作为一名顾问,我从事编程工作已有多年,我热爱我的工作,这项工作涉及使用托管语言(即软件工程)对软件系统进行大量面向对象的分析和设计。但我最终还是想获得博士学位,我从来没有真正“获得”过计算机科学理论,这让我很烦恼。在大学里,我只在这些课程上取得了微乎其微的成绩,因为这些课程的教学方式对我来说并不适用。我通过观察概念的应用来学习,而不是死记硬背

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

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

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


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

如果你打算获得博士学位。总有一天,为什么不现在就回学校呢?作为博士,你需要修很多课程。应聘者,并在更具CSish的领域(算法等)找到研究成果,将对您的创业有更大的帮助。

我正在寻找相同类型的内容,人们告诉我,从查看

我还是看不懂,这让我很痛苦,但我相信我会尽快看的

这本书应该是一本很棒的书,而作者们所作的讲座也很有趣

我相信你会在第一堂课学到更多关于编程的知识,然后在你提到的整个第一年的课程中


另外,如果我没有弄错的话,这本书实现了一个scheme编译器,它是用scheme编写的。

与w3schools.com不同,我发现计算机科学理论书通常不是围绕大众消费设计的

据报道,欧几里得曾说过:“没有王道”

我发现霍普克罗夫特和厄尔曼关于自动机的书可读;这是一个理论性很强的课程,但我在大学里作为一名Sophore老师从中学习了一些高级概念。我发现Sara Baase关于算法的书是一个很好的(尽管很枯燥)介绍。科曼有一本关于算法的书,这可能是目前编写的最完整的教科书

当然,如果你想要经典的计算机科学文本,你需要通读Knuth的计算机编程艺术。还没看完,;这对我来说有点贵。

我喜欢塞吉威克的“算法”(isbn 0201066734 1988 604p) 因为它以对话的方式通过算法进行对话, 有很好的例子。 请参阅下面的评论。 (有很多版本,多卷C++ java等)

(增加了2feb:)Althoough算法是基础和有趣的, 他们在偏远的乡村徒步旅行,而不是每天的交通堵塞。
宾利的“编程珍珠”(isbn 0-201-65788-0 2000 239p )
“充满了小案例研究、真实示例和有趣的练习,用于学习如何编程”

对于大型团队软件项目,布鲁克斯的“神话人月”(isbn 0201835959 2ed 1995 322p) ) 是必须的:
“产品的概念完整性至关重要”。 并引用了p。221:

而不是教导人们O-O是一种设计,并给予他们 设计原则,人们已经教过O-O是一种特殊的用途 工具。我们可以用任何工具编写好的或坏的程序。除非我们 教人们如何设计

最后,可视化/GUIs/ui通常有很大的改进空间。 我不知道在这方面有一本好的入门书,和上面一样。还有其他人吗?

和麻省理工学院的都在这本书中。此外,和(被称为Google engEDU)上还有大量教育视频

这几天还有,。

:)我是一名学生,目前刚修完一门编译器设计课程。
这本书是由阿霍、厄尔曼和塞蒂写的,书名是《编译器设计——原理、技术和工具》。Kernighan和Pike最近刚开始写了一本关于编程语言理论的书,名为《编程实践——简单、清晰和概括性》。。这是一个非常方便的方法。说到视频课程,我知道一些视频资源会很有帮助,虽然它们是收费的,但我相信它们至少值得一看,只是谷歌NPTEL资源,最后,我发现印度作家的书很容易理解,因为我是印度人,因为你想重新开始。。。你可以在这个网站上找到有用的东西。。www.kicit.com。。。快乐学习…:)我同意你的观点,即学习东西要比理论上更实际(例如,也许比个人经验更好…,cya:)

科曼、雷瑟森和里维斯特的作品不会出错。

可能有点随意,但是,在编写程序的同时,它可以成为一个很好的资源,可以对计算机科学的理论和数学方面进行实验。

我发现iTunes U非常好。他们有来自麻省理工学院、斯坦福大学和加州理工学院等著名学院的大量免费资料。我没看过他们