做博士还是做一个专业的程序员?

开发 后端 前端
我很高兴我尝试过做过博士,但我也很高兴,我在一年后选择了离开。做一个专业的软件开发人员让我更有幸福感。而且,我很高兴这并不意味着学习的结束。与此相反,我依然可以学习很多有趣的领域,并且有大量的学习资源可用。

当我从大学毕业获得计算机科学学位的时候,我就想继续学习并获得博士学位。但是,我又想作为一个软件开发者去参与工作,所以我在这一行中工作了五年 之后,又回去念了一年的博士学位,在作为博士生的一年时间里,我发觉我更喜欢专业的软件开发。尽管这已经是多年以前的事情,但我觉得这里面我学到的一些经 验现在仍然适用。 

[[164438]]

为什么要取得博士学位

喜爱学习。我享受于学习计算机科学的每一分钟。我一直都很喜欢数学和电脑,并且我在查尔姆斯理工大学的硕士课程 就包括了大量的数学课程和计算机课程(软件和硬件),以及常见的工程课程例如物理和力学。有这么多出色和聪明的理念:拉普拉斯变换,控制理论,信号处理, 纠错码,堆排序,排队论,等等。因为所有这些学习的东西是如此有趣,因此为了能继续了解这样有趣的内容,我觉得我有必要继续去念博士。

别人会认为你很聪明。想去做博士的另一个原因做是为了显示自己有多聪明。在现代薪资体系中,学历是收入的另一个标准(尽管你需要花费数年才能获得博士学位)。

博士学位的具体情况

在用了五年时间为移动电话交换机开发软件之后,我决定是时候回去深造了,于是我去了瑞典隆德大学的通信系统系开始我的博士学位。他们的其中一个研究领域是拥塞控制算法,这很适合我,因为它适用于电信系统的同时大量应用了数学。他们也搞软件开发研究,这是额外的加分点。

除了回顾一些数学和排队理论,和上博士学位的课程外,我不得不决定研究方向。由于目的是发布结果,那么主题必须是尚未被研究过的。但是这里的问题 是,没人期待结果如何(至少据我所知是这样的)。我结束了在分布式系统的研究,包括一些模拟。但是,我的感觉是,我研究问题在某种程度上是为了有内容可发 表。

博士工作的第三部分(除了上课和研究之外)是教学。虽然我只是排队论课程的助教,但它让我意识到在大学任教需要花费多少的时间和精力。

在瑞典,你是被大学录用来做博士的,因此学校会支付你薪水。这听上去挺不错,但并不如你在行业中工作得到的多。在其他方面,我又回去做了一次学生。 虽然当我在念硕士的时候我真的很喜欢做学生,但第二次去做真没多少乐趣。所以在做了一年的博士学生之后,我决定这不适合我,于是又回到了爱立信工作,担任 一名软件开发人员。主要的原因是我觉得我的工作变成了编造问题,而不是工作于真正需要解决的问题,以及还有薪资更低,又被当作了一个学生,当然最重要的是 软件开发比我在念博士期间做的程序有趣得多了。

我学到的经验教训

你没有必要成为学生的身份去学习。这是我最明显的教训,而且令人难以置信的是,我花了这么久的时间才明白这一点。在回到大学之前,我以为这里才是“真正”学习的地方。在之前我工作的五年时间里,总的说来,我并没有花多少时间来学习更多有关软件开发的内容:我学习了我使用的语言和工具,但仅此而已。

在做博士期间,我买了一本《Code Complete》,是它使我睁开了蒙蔽的双眼,让我意识到有多少学习软件开发的途径。它不仅有很多研究的例子、关于编程各个方面的调查,而且它还有关于 软件开发很长一串的参考书单。这使我意识到,即使你不去上大学的课程,也可以保持不断地学习。

现在,许多年以后,得益于如Coursera和EDX这样的MOOC供应商,你甚至可以在业余时间攻读实际的大学课程。我抓住了这个机会,接受了第一批中的一门课程,“Introduction to Databases”,以及其他。

博士学位不会让你变得聪明。虽然的确有很多的聪明人获得了博士学位,但也有很多很多的聪明人并不具有博士学位。于是我意识到,是不是博士并不是聪不聪明的标记。同样的,能不能相出巧妙的点子和是不是博士无关。

变得泯然于众。我发现当我带着博士头衔和其他人接触的时候,我变得非常谦逊。也就是说,我还不如以前能给人留下深刻的印象。我试图不论学历地来评估一个人。我合作过也见过形形色色的人,聪明的和没那么聪明的,聪明和学位不相关。

狭窄化的问题vs.大范围的问题。研究人员通常研究那种很窄的问题。例如:给定某个到达分布和良好准则,那么最 优的拥塞控制策略是什么?虽然这些都是要学习和理解的重要内容,但是我更感兴趣那些大范围的“是什么导致软件成功”的问题。以电话交换机为例,为了成功, 它必须在很多方面都执行良好。它必须有足够的能力,但是不能崩溃,它必须很容易配置,它必须很易于寻找故障,等等。拥塞控制只是众多问题中的一部分,只给 出这个问题的解决方案是不够的。

我意识到我更享受工作于大型软件系统所要面对的挑战,即必须每个方面都做到位,而不是研究一个很窄的细节性问题。

拥有用户的快感。当我启动博士程序的时候,我才发现有用户的重要性。研究于我自己选择的问题,而没有任何人热切 地等待着结果,真的让人特别提不起劲,相比之下,工作在有着许许多多用户的系统上,那就别提有多兴奋了。我添加的功能和我修复的bug将对很多人产生直接 的影响,我真的很怀念那样的感觉。

选择的价值。由于我在开始博士之前已经工作过一段时间了,所以我知道选择是什么。我的意思是,大多数人在拿到硕士学位之后立即去读博士,意味着,他们不知道非学术界的工作是什么样子的。在大多数情况下这可能无所谓,但有时知道你错过了什么很重要。

结论

我很高兴我尝试过做过博士,但我也很高兴,我在一年后选择了离开。做一个专业的软件开发人员让我更有幸福感。而且,我很高兴这并不意味着学习的结束。与此相反,我依然可以学习很多有趣的领域,并且有大量的学习资源可用。

责任编辑:王雪燕 来源: 码农网
相关推荐

2019-04-22 10:25:52

程序员技术职场

2015-07-03 11:27:30

程序员自己神器

2014-07-22 10:00:18

程序员

2015-07-27 10:51:55

程序员快乐

2011-12-20 10:02:01

ASP.NET

2020-02-22 21:51:43

程序员Microsoft SServerSQL

2013-12-24 09:59:48

程序员管理

2009-03-20 10:19:12

程序员编程职场

2020-06-01 09:43:26

程序员互联网系统

2014-01-06 09:33:32

程序员管理

2015-03-04 10:22:16

程序员快乐的程序员好习惯

2020-10-05 21:13:37

程序员技能开发者

2012-07-31 08:30:33

程序员

2010-11-10 11:14:41

项目经理

2020-07-10 09:55:15

程序员技能开发者

2015-06-16 10:31:36

程序员

2015-06-08 10:48:39

程序员程序员自白

2011-02-14 13:05:17

PythonWeb

2021-07-01 07:43:41

项目程序员代码

2015-10-30 09:49:30

点赞
收藏

51CTO技术栈公众号