取决于,这个问题没有一个好的答案。
程序员是识别一个编写计算机软件的人的一般世界。
现在,那里有各种各样的软件。例如,使用Wikipedia作为概括的来源,我们可以实现3种伟大的概括:
在第一个现场系统编程中,开发设备驱动程序,操作系统,服务器,因此,例如,您可以学习操作系统课程。
但是编程软件呢?正如Wikipedia所说,您可以对编译器,调试器,解释器,链接器,文本编辑器进行编码,因此,自动化理论,语言理论,语言和编译器方面的课程非常有用。
我们不是可以谈论任何类型的应用软件:
-电子游戏:代数,物理学,面向对象的课程吗?
-数学软件:数学课程?
-图像编辑:数学,物理,算法课程?
-工业自动化:数学,物理,算法,机器人课程?
-医学软件:生物学,医学,还有什么课程?
-这里有很多东西:这里有很多课程。
如您所见,您可以遵循很多课程,这些课程将对您的工作有用。
以我的经验,我是安全(您想学习安全课程?)领域的系统软件工程和应用软件,从一点点编程经验开始,我对算法和分布式系统越来越感兴趣,我再次感到在我编写的通用应用程序(嗅探器,网络入侵检测系统,协议解剖器和检测器等)的简单性中感到不舒服。
正如您在理论计算机科学中学到的那样!你有没有参加这门课程?:P
例如,您已经了解到所有计算机语言都可以适用于一组可计算的数学函数,并且例如,如果您的经验与我相同,那么您很快就会对这套微积分感到不适,并且像我一样,您可以开始了解如何发展该软件并没有那么吸引人和令人惊奇,因为相同的DESIGN PATTERN再次回来(您是否遵循设计模式课程?),例如,您可以开始对WHY产生更多的兴趣,并且可以将语言翻译成数学函数并开始了解计算机语言不是那么复杂!例如,您很快就会对人和心理感到更加惊讶,并且可以对此产生更多的兴趣,并成为一名优秀的项目经理!您是否遵循有关软件生命周期的课程?
那么,现在,您的CS生涯中必须学习什么课程?
我建议您在所有领域(尤其是理论领域)学习尽可能多的知识,因为在常见的工作领域中,您很快就会对周围的琐事感到无聊,而成为一名全职工作人员,您的学习时间却很少事情是如何真正起作用的,还有更多的时间来了解具有深厚理论知识的人如何预测事情的产生,并为您提供编码以在家中获得食物的可能性。
在计算机科学中存在一种错误的现实感。例如,有时计算机科学家与软件开发人员的距离确实很远。
看一下维基百科的解释。
玩得开心:)
我的2美分。
对不起,我的英语真不好。