Computer science 我在上CS课程。我应该关注什么编程主题?
现在最重要的是什么?我知道我以后可以获得编程经验。毕业后,我应该学习以下哪项才能成为一名优秀的程序员或分析师Computer science 我在上CS课程。我应该关注什么编程主题?,computer-science,Computer Science,现在最重要的是什么?我知道我以后可以获得编程经验。毕业后,我应该学习以下哪项才能成为一名优秀的程序员或分析师 数据结构 算法 软件工程 低级方面 设计模式与面向对象分析 [编辑] 谢谢你的回答。我想包括其他重要主题,以供其他学生参考: 当前编程 操作系统 [/Edit] 注:我认为列表的第一项应该是学习英语。清单上的每件事都很重要 让我们看看 您需要了解复杂性、数据结构和算法,以便做出重要选择。不幸的是,你需要真正理解这些话题,解决复杂的脑筋急转弯,因为它们在面试中的作用要比你以后实际工
- 数据结构
- 算法
- 软件工程
- 低级方面
- 设计模式与面向对象分析
- 当前编程
- 操作系统
注:我认为列表的第一项应该是学习英语。清单上的每件事都很重要 让我们看看 您需要了解复杂性、数据结构和算法,以便做出重要选择。不幸的是,你需要真正理解这些话题,解决复杂的脑筋急转弯,因为它们在面试中的作用要比你以后实际工作中的作用大得多。因此,出于实际原因,这些是最重要的事情
软件工程、设计模式和分析非常重要(尽管我有偏见)。不幸的是,除了设计模式之外,如果不在主要项目中积极实践,就无法真正学习这些主题。重点理解面向对象编程和虚拟函数/动态绑定的概念,因为它们非常重要,而且很多人没有正确理解它们。尽最大努力获得一个好的实习机会。所有这些都很好,但算法是一个很好的起点。也许你应该先研究离散数学课程的理论。我个人会研究以下内容:
- 一种类似C的语言(C/C/C++/C#/Java)
- 一种脚本语言
- 一种函数式编程语言
- 特别是因为我们正在走向一个多核世界,这将派上用场,因为它允许并行化,而不是其他语言目前所能做到的。例如,整个电信基础设施都在Erlang上运行
- 数据结构
- 你将在任何地方使用这些。他们是编程语言不可知论者,你在整个职业生涯中都需要他们
- 算法
- 这些最有可能与上述项目一起使用。某些数据结构具有访问它们的特定算法
- 设计模式
- 是的,我们当然要学习各种设计模式,但同时也要知道它们并不是软件工程的全部
你清单上的所有其他项目也都非常重要,因此,虽然我建议你列出上述项目,但它们并不比你列出的其他项目更重要。这些都是我希望从学校里得到的东西,我很难过地说,我没有把它们作为课程提供,但我不得不在学习其他课程的同时自己学习它们。在这里插入Joel似乎是合适的;-)
清单上的所有内容都很重要,但你也需要正确的态度。你需要深入了解你学习的每一件事情是如何运作的,以及为什么要这样做,而不仅仅是做课堂作业。这才是让你成为未来专家的真正优势所在。所有这些都是强制性的 你在想什么?我希望你在专注(例如,游戏设计与安全和加密)之间做出选择
你不能在“算法、面向对象、数据结构、软件工程等”之间做出选择。这些是最基本的!你必须全部学习。我将从数据结构和算法开始,没有竞争。面向对象设计很有用。 有点低级,是的。 可以跳过S/W工程(这是可以接受的) 此外,以下是一些想法:
- 关系数据库基础(不仅仅是“如何使用oracle”,而是实际的关系代数)
- 操作系统
- 编译器+解释器
- IR中的一些东西(/遗传算法/神经网络)
我认为你已经走上了正确的道路,因为你的列表中没有提到任何特定的语言。我认为这是CS学生犯的第一个错误——专注于一种语言或一种范式
你的整个清单非常重要;我唯一要补充的是对多线程的相当深入的研究。它在未来将变得越来越重要:()您列出的所有内容都是体面的计算机科学教育的基本组成部分,尽管您确实应该添加以下内容:
- 操作系统
- 联网
- 数学(离散、微积分、代数、证明、统计入门课程)
- 数据库
- 基础(有限自动机、正则表达式、图灵机等)
- 人工智能
- 加密/安全
- 图像/信号处理/识别
- 编译程序
- 图形
- 游戏设计
- 等等