这是回答知乎上的问题,更多回答请移步
http://www.zhihu.com/question/19628851
作为计算机专业学生,最应该学习的课程前五位是什么?
不论当前大学是否开设这些课程。
回答
来个不一样的观点,供参考。
其实能解决问题的课程才是最重要的。
先看几个问题:
- 当你学完各种数学、原理、算法之后,你能用这些知识解决什么问题?
- 你能开发出什么应用或系统吗?你具备多强的开发能力?
- 是更多人对这个专业更感兴趣了,还是心生厌倦、恐惧、甚至放弃了?
- 大学毕业到现在,还有多少知识你还记着?有多少还在用?
不能解决问题、不能形成能力、不能增强兴趣,不直击要害而是兜了一个大圈子,什么问题都没解决,还赶跑了一半人,这是最重要的课程吗?我认为现在的计算机和软件专业的学生应该学习:
- Web软件开发设计
- 人机交互设计或用户体验设计
- 敏捷开发
- 普通心理学
- 微观经济学
理由是这些能解决我们这个时代的问题:
在PC发明前的大型机、小型机时代,计算机服务的用户多是企业用户,没有图形界面,所以程序员最需要关心的是资源、算法、数据这些层面,基本不需要考虑用户和用户界面的问题。 各种数学、原理和算法主要解决是这个时代的问题。
但是在乔布斯、比尔盖茨开启PC时代后,图形界面技术的应用,特别是Web互联网的普及,计算机所服务的客户更多的转向普通用户。所以开发者更多关心,如何让用户更好的使用软件的问题。包括用户需求、用户体验等,转向以用户为中心。这样解决界面、交互这些层面的问题变得更加重要。
进入21世纪社交网络开始普及,特别是2007年iPhone的诞生,正式开启移动互联网时代,计算机变成移动终端,随时随地可以服务于大众用户。软件设计者更多去关心人的兴趣和动机所在、关心人与人的关系,这样解决心理、经济等层面的问题会越来越重要。
以知乎为例,假设不借鉴国外同类网站,在学习了各种原理、数学、算法之后,能开发出知乎网站吗?知乎的设计是分析用户体验、心理和动机更重要、还是考虑算法和数学更重要?知乎的开发是靠实打实的的开发功底,还是靠各种算法理论学习?
在移动互联网时代,你要与全世界竞争,创造出更好的产品。中国的计算机教育不应该还停留在前PC时代,落后了整整2代。我们的教育也需要和硅谷保持同步。
以上为个人不成熟的观点,供大家批判。
回复@pansz的评论
分工是社会尺度的问题,从行业或组织这个层面上必然会有分工。
但从个人尺度上来看,人的发展有定位的不同。你是选择定位于技术的前沿,还是定位于传统的领域,是可以选择的。在大型机上开发也很挣钱,但是大部分毕业生不会去选,更喜欢在iPhone、Android或互联网领域工作,因为新领域会给新人无限的机会。
另外,计算机专业的人才更多比例的人是必须要跨领域、跨行业的。随着各行业计算机的普及,需要应用软件开发者具备更多业务领域的知识,例如开发财务软件需要财务知识等。
我想,乔布斯的成功应该给我们启示,算法、数据当然很重要,但是用户体验变的越来越重要。
回复@罗泽响的评论
恰恰相反,那些大多数人觉得必修的课程,正是应该补充的课程,当你遇到问题再去学习效果会更好。大二的时候能开发一些软件应用、网站和系统,大三学一些管理、分析、心理和经济,大四再学一些原理、数学和算法。软件都没开发过,就学算法的效果你很清楚。不解决问题,只关心考试是我们教育的最大问题。
No related posts.
以上关联文章由 Yet Another Related Posts Plugin 提供支持。
