作为计算机专业学生,最应该学习的课程前五位是什么?

这是回答知乎上的问题,更多回答请移步

http://www.zhihu.com/question/19628851

作为计算机专业学生,最应该学习的课程前五位是什么?

不论当前大学是否开设这些课程。

回答

来个不一样的观点,供参考。

其实能解决问题的课程才是最重要的。

先看几个问题:

  • 当你学完各种数学、原理、算法之后,你能用这些知识解决什么问题?
  • 你能开发出什么应用或系统吗?你具备多强的开发能力?
  • 是更多人对这个专业更感兴趣了,还是心生厌倦、恐惧、甚至放弃了?
  • 大学毕业到现在,还有多少知识你还记着?有多少还在用?

 

不能解决问题、不能形成能力、不能增强兴趣,不直击要害而是兜了一个大圈子,什么问题都没解决,还赶跑了一半人,这是最重要的课程吗?我认为现在的计算机和软件专业的学生应该学习:

  1. Web软件开发设计
  2. 人机交互设计或用户体验设计
  3. 敏捷开发
  4. 普通心理学
  5. 微观经济学

理由是这些能解决我们这个时代的问题:

在PC发明前的大型机、小型机时代,计算机服务的用户多是企业用户,没有图形界面,所以程序员最需要关心的是资源、算法、数据这些层面,基本不需要考虑用户和用户界面的问题。 各种数学、原理和算法主要解决是这个时代的问题。

但是在乔布斯、比尔盖茨开启PC时代后,图形界面技术的应用,特别是Web互联网的普及,计算机所服务的客户更多的转向普通用户。所以开发者更多关心,如何让用户更好的使用软件的问题。包括用户需求、用户体验等,转向以用户为中心。这样解决界面、交互这些层面的问题变得更加重要。

进入21世纪社交网络开始普及,特别是2007年iPhone的诞生,正式开启移动互联网时代,计算机变成移动终端,随时随地可以服务于大众用户。软件设计者更多去关心人的兴趣和动机所在、关心人与人的关系,这样解决心理、经济等层面的问题会越来越重要。

以知乎为例,假设不借鉴国外同类网站,在学习了各种原理、数学、算法之后,能开发出知乎网站吗?知乎的设计是分析用户体验、心理和动机更重要、还是考虑算法和数学更重要?知乎的开发是靠实打实的的开发功底,还是靠各种算法理论学习?

在移动互联网时代,你要与全世界竞争,创造出更好的产品。中国的计算机教育不应该还停留在前PC时代,落后了整整2代。我们的教育也需要和硅谷保持同步。

以上为个人不成熟的观点,供大家批判。

回复@pansz的评论
分工是社会尺度的问题,从行业或组织这个层面上必然会有分工。
但从个人尺度上来看,人的发展有定位的不同。你是选择定位于技术的前沿,还是定位于传统的领域,是可以选择的。在大型机上开发也很挣钱,但是大部分毕业生不会去选,更喜欢在iPhone、Android或互联网领域工作,因为新领域会给新人无限的机会。
另外,计算机专业的人才更多比例的人是必须要跨领域、跨行业的。随着各行业计算机的普及,需要应用软件开发者具备更多业务领域的知识,例如开发财务软件需要财务知识等。
我想,乔布斯的成功应该给我们启示,算法、数据当然很重要,但是用户体验变的越来越重要。

回复@罗泽响的评论
恰恰相反,那些大多数人觉得必修的课程,正是应该补充的课程,当你遇到问题再去学习效果会更好。大二的时候能开发一些软件应用、网站和系统,大三学一些管理、分析、心理和经济,大四再学一些原理、数学和算法。软件都没开发过,就学算法的效果你很清楚。不解决问题,只关心考试是我们教育的最大问题。


分享到:



No related posts.

以上关联文章由 Yet Another Related Posts Plugin 提供支持。

关于 张 英锋