这里的想法是在大学毕业后让更好的程序员。
我认为我必须使用算法,这不是你可以很容易地自己掌握的东西,我认为它可以让你在更深层次上看到软件的效率和正确性。
我也相信教授实际的编程可能会有所帮助,但我学到了大部分关于工作编程的知识,这让我觉得其中一些编程课程块(不是全部)可以更好地使用。
这些结果将成为我想写给我旧学校CS部门的一封信的一部分,我认为我学习的课程数量根本没有帮助,而我认为其他课程本来就很有价值。
答案 0 :(得分:24)
答案 1 :(得分:17)
你在一个真正的公司编写软件的夏天上课。
严重 - CS课程并不意味着培养出优秀的程序员。他们的目的是培养计算机科学家,作为副作用,他们也可以编写软件。
答案 2 :(得分:4)
实际上,进入编程工作,从第1天开始就不会成为高级开发人员。学习一些编码基础确实需要很长的路要走,但是在上升的过程中,我看到很多计算机科学专业的学生都在努力现实世界,因为他们并不真正了解他们在第1天所做的事情。他们与业务领域斗争并理解他们为什么做他们所做的事情。他们不知道与其他商界人士沟通的对象。
答案 3 :(得分:4)
没有什么能比通过构建项目获得的知识更重要,如果你正在构建一个图书馆系统项目的关系数据库课程,那么它在哪个课程中并不重要,如果你正在使用汇编语言构建像PC工具那样的东西32 / 64位汇编。
你只能通过“编程”来成为更好的程序员,而不仅仅是选修课程并获得高GPA。
答案 4 :(得分:4)
计算机科学!=编程。
如果您正在寻找更好的程序员,请寻找具有专业教育的2年制大学课程的人。
答案 5 :(得分:4)
最重要和最相关的不是CS课程。你需要沟通好。无论什么课程,你都可以成为更好的倾听者/读者和更好的作家/演讲者。
答案 6 :(得分:3)
这是一个难以回答的问题,但我认为阻碍程序员参与许多CS程序的一件事是缺乏动手编码。了解计算机科学理论很重要,但我认为很多高度理论化的CS程序都因为不需要在课堂上进行编程练习而失败。例如,我见过许多需要研究和论文的AI课程,但没有代码。在我看来,理解计算机科学理论是非常重要的,但能够应用它同样重要。
答案 7 :(得分:3)
我认为学术组织或独立学生项目应该填补学术空白。
在我的大学,我们有专门针对CS学生的Association of Computing Machinery学生章节,我们还有一个致力于视频游戏开发的学生组织。这些组织通过引入行业发言人并强迫学生相互合作,帮助学生了解“现实世界”。
如果他们对领先的软件小组感兴趣,或者如果学生希望他们在文科方面变得更加技术熟练,那么我还建议那些主修计算机科学专业的学生。我知道这看起来很奇怪,但我做到了这一点,我发现它实际上教你如何在纯技术和数学视角之外思考,以及如何将人类思维应用于软件开发。
答案 8 :(得分:2)
我认为这是数据库系统和软件工程项目课程之间的关系。我学校的本科学位既不需要课程,也可以由本科生学习。对大多数程序员来说,拥有一些数据库知识可能比算法更有必要。在项目团队中工作,甚至在课程项目上,可以帮助您了解团队动态以及如何在团队环境中工作。
另一方面,我坚信,对基础计算机科学主题的理解,包括数据结构,算法,操作系统等,对于让一个人成长为程序员至关重要。
答案 9 :(得分:2)
谢菲尔德大学的软件工程学位与工作场所最相关的两个是第二年的软件小屋模块,该模块涉及为现实世界客户制作软件产品的团队的一个学期。我认为有三个不同的客户,团队互相竞争,为他们制作最好的系统。
然后在第四年,三分之一的时间来自经营一家软件公司,再次为现实世界的客户。虽然不完全像经营实际业务,但由于我们所生产的任何产品的知识产权限制(因为我们仍然是大学的学生,他们拥有这项工作),我们确实参与了运营公司的大多数方面 - 禁止任何会计/合同写作。
答案 10 :(得分:1)
我的观点(作为英语导演)是办公室里的一天在学校值得一周,因此如果你能找到一些方法来获得一些经验,那将是值得的。
除此之外,只要对自己的内心充满信心,发挥你的优势,并准备谷歌任何你不知道的东西!
如果您希望从通常的IT人群中脱颖而出,那么请确保您能够正确地进行沟通,因为有多少“顶级”毕业生无法做到这一点。
答案 11 :(得分:1)
数据结构和算法课程,在我的本科生期间,在我的工作场所帮助了我很多
答案 12 :(得分:1)
我们需要一个类来构建一些社区服务项目。这要求我们使用和学习整个软件工程的开局。
除非老师决定在课堂上放一些螺丝钉,试图让事情变得尽可能困难,否则这样的课程将会非常缺乏...
答案 13 :(得分:1)
我认为我所采用的课程是数据结构和算法。这些知识与技术的进步无关,它提供了各种程序员使用的基本工具。
答案 14 :(得分:1)
更好的程序员就在大学之外?在学校开始教授诸如凝聚力,耦合,良好的编程实践,版本控制,配置管理,现代开发模型等概念之前 - 我不这么认为。我通常看到的是自学者想要自己学习正确的东西,或者如果幸运的话,他们会被聘用到一个讲授和实践好事的组织中。
答案 15 :(得分:1)
这完全取决于您想要编程的内容以及您感兴趣的类型问题。
显然是
的一般组合离散数学(您的逻辑,图论,一些数论和复发)
算法设计(学习各种问题解决模型,设计范例,思考计算机资源)
软件工程(管理软件项目,使用现有组件,使用组或组,版本控制,模式等)like this
编程密集型课程(我用this course)教会您解决问题的一般想法,在编写单行代码之前收集您的想法,接触不同的编程范例
将帮助您应对大多数编程挑战。
之后,这一切都取决于您想要使用的域名。询问您的顾问,您所在大学和教授的老年人,并与他们讨论您的目标和兴趣。他们会比这里任何人都更好地建议你。
但是,不要忽视批判性思维,写作课程。上课,让您展示自己的想法,并为公开演讲做好准备。
答案 16 :(得分:1)
数据库设计
功能编程
面向对象编程
x驱动设计