我敢肯定,你知道这是一个很棘手的问题。如果你问的是一个有学位的人,他们很可能会说“是”。如果你问的是一个没有学位的人,答案可能是“不”——除非他们当时正处于失业的状态。但是,真相到底是什么?你到底需不需要一个学位呢?
以我的经验,我发现,拥有学位并不是成功所必须的,但它肯定是一个限制性因素,它限制了可以提供给你的职位数量,并且某种程度上也限制了你的晋升,特别是大公司中。没有学位可能会让你的简历被过滤掉,连被人看到的机会都没有。许多公司,特别是大公司,会根据受教育水平来过滤求职申请。事实上,一些公司的招聘政策中明确要求软件开发人员拥有大学学位。当然,这并不意味着你就不能从这些公司获得工作机会,总有一些例外,但是肯定会难上加难。
我不想在这里过分强调学位的重要性,但我希望你们明白,没有学位会限制你的选择。在这个大前提下,我确信学位并不是成功的必备条件。
我知道有很多成功的软件开发人员并没有拿到学位,比尔.盖茨就是一个很好的例子。他没有完成学业,但是看看他现在的成就。在我软件开发职业生涯的大部分时间里,我并没有学位,我也做得很好。在软件开发领域,能力最为重要。与一张学历证明相比,如果你能写好代码,能解决问题,能证明自己有此能力,你就能走的更远。
与其他行业相比,软件开发最大的不同就是:该领域总是不断变化。每天都有新的框架和技术问世。在教育机构中培养能适应真实环境的软件开发人员几乎是不可能的。等到教材、课表排好的时候,很多东西已经改变。
但是,这并不意味着,在软件开发中不存在永恒不变的核心领域。许多计算机科学课程中包含的算法、操作系统、关系型数据库理论和其他主题都是永恒的。然而最简单的事实是,当你坐在办公桌前开始写代码的时候,你极少会用到在学校学到的技能。身为软件开发人员,我们所做的大部分工作,都是如何使用新技术,学会如何用它们完成工作。我们很少需要回溯到计算机科学的本源。
同样,这并不意味着基础的计算机科学教育毫无价值。能够深入挖掘问题并理解问题(而不是停留在表面上)的能力更具有价值。对大多数软件开发人员来说,在工作中取得成功的更直接因素还是相关工作经验。
。。。
-----John Z.Sonmez