这个时候最重要的是什么?我知道我可以在以后获得编程经验。毕业后我应该学习以下哪一项才能成为一名优秀的程序员或分析师?
- 数据结构
- 算法
- 软件工程
- 低级方面
- 设计模式和OO分析
[编辑]
感谢您的回答。我想包括其他重要主题,以供其他学生参考:
- 并发编程
- 操作系统
[/编辑]
注意:我认为列表的第一项应该是学习英语
这个时候最重要的是什么?我知道我可以在以后获得编程经验。毕业后我应该学习以下哪一项才能成为一名优秀的程序员或分析师?
[编辑]
感谢您的回答。我想包括其他重要主题,以供其他学生参考:
[/编辑]
注意:我认为列表的第一项应该是学习英语
他们都是。您列表中的所有内容都很重要。
我个人会研究以下内容:
您列表中的其他所有内容也非常重要,因此虽然我建议上述项目,但它们并不比您列出的其他项目更重要。这些是我希望我从学校毕业后得到的项目,我很遗憾地说我没有将它们作为课程提供,但我必须在我所有其他课程作业的同时自己学习它们。
鉴于您没有在列表中提及任何特定语言,我认为您已经走在正确的轨道上。我认为这是 CS 学生犯的第一个错误——专注于语言或范式。
您的整个清单非常重要;我唯一要补充的是对多线程的相当深入的研究。未来会越来越重要:(Ars-Technica 文章)
在这里插入 Joel 似乎很合适;-)
都是必填项!!
你在想什么?我希望您在专注度之间做出选择(例如,游戏设计与安全和密码学)。
您不能在“算法、oop、数据结构、软件工程等”之间进行选择。这些是基础!你必须全部学习。
我将从数据结构和算法开始,那里没有竞争。OO设计很有用。有点低级,是的。可以跳过 S/W 工程(对盐粒没问题)。
此外,这里有一些想法:
是的,我偏向于“硬核”CS 的东西。忙碌的工作、繁重的流程和其他你很快就会在行业中学习的 PM 废话,无需浪费你的教育资源。:-)
让我们来看看..
您将需要了解复杂性以及数据结构和算法,以便做出重要的选择。不幸的是,您将需要真正了解这些主题并解决复杂的脑筋急转弯,因为它们在求职面试中比在您以后的实际工作中发挥的作用要大得多。因此,出于实际原因,这些是最重要的事情。
软件工程、设计模式和分析非常重要(尽管我有偏见)。不幸的是,除了设计模式之外,如果不积极实践主要项目,您将无法真正学习这些主题。专注于理解面向对象编程的概念和虚函数/动态绑定的概念,因为它们非常重要,而且很多人没有正确理解它们。尽最大努力获得一份好的实习。
您列出的所有内容都是体面的计算机科学教育的基本组成部分,尽管您确实应该添加以下内容:
这两个列表一起将使您对计算机科学有一个很好的核心理解,然后您应该选择一些更专业的主题(您最感兴趣的主题)。
你会发现,一旦你开始深入一个话题,所有的核心课程,包括数学,都会开始发挥作用!例如,我目前正在研究图像识别,并且必须使用和理解来自统计、人工智能、微积分、证明、代数、算法、数据结构、OOP 等的东西。
清单上的所有内容都很重要,但您也需要正确的态度。你需要深入了解你学习的每件事是如何工作的,以及为什么要这样做,而不仅仅是做课堂作业。这才是真正让您成为未来专家的优势所在。
所有这些都非常好,但算法是一个很好的起点。也许您甚至应该首先研究离散数学课程的理论。