|
我收到过很多来自职业程序员的邮件,他们在这个行业工作了一段时间,最终决定不干这行了。最近收到这封:
我去年获得了计算机科学学位,做了一年Java EE。我大学里对需求工程和“管理知识”更兴趣,但我们总要面对这样一个事实:你往往被驱使成为一名程序员。
我喜欢编程本身。我做得不错,我甚至比一些人做得更好。但是它太令人沮丧。荒谬的复杂的东西(人们认为这是“标准”,即便它极其复杂!),与计算机作斗争,各种愚蠢的错误,配置,以及其他人实现的比我更糟糕的东西,我必须要小心照料。新东西总是被认为是非常容易的,它只是一个框架。
我意识到我不想编程,因为我在一家公司工作,那里的人都很好。我真的认为我不会达到那样的水平。我也不喜欢编程。
我确信我已经足够好了,能够像这样继续生活下去。但我不想。 还有这个:
从我在大学学习编程的第一年,我就知道在我内心深处,计算机编程不是我的追求,我害怕做关于它的任何事情,现在12年过去了,编程没有激情。我是一名职业程序员,充其量只是普普通通的一个。
我每天没有激情地来上班,只是赚钱付账单。我做了一些很好的项目,但我一点也不喜欢。 我们总是希望具体的、实质性的编程职业生涯问题在Stack Overflow上被问及,而一些早期的投票也表明,职业生涯问题也会被社区接受,但如果你看看后期的投票结果,很明显,职业生涯问题在Stack Overflow社区的最下面。
那么, Stack Exchange(Mr派:一系列问答网站,每一个网站包含不同领域的问题)中的其他网站又如何呢?作为姐妹网站,programmers.stackexchange关于源代码的编程问题比较少,更多的是具有白板风格的概念性编程问题,它又如何呢?显然,职业问题也不受欢迎。但是等等!毋庸置疑,程序员职业问题在一个职业相关的网站上是合适的,类似的问题在workplace.stackexchange中会被问到:
我即将毕业,并且获得软件工程学士学位,但在获得学位的过程中,我决定不做程序员。
我选修商业管理,对此很感兴趣,尤其是管理心理学方面,还有有关重组的基本过程,但我也不想丢掉我的编程学位。
是否有这样的领域,可以让软件工程学位的人进入商业管理而不是编程?我希望将我的软件知识与某种面向业务流程的工作结合起来。我该如何转变到这个领域呢?不再回到学校学习,这有可能实现吗?
不。对不起。这也被关闭了,要么是因为它似乎是在暗示“推荐我一份工作”,要么是因为它太过于针对编程。你可以自己作解释。
我很同情这一窘境,因为职业问题,从本质上来说,往往是如此的狭隘和主观,以至于它们常常只对提问者有用这完全违背了Stack Exchange的目标。你知道,没完没了的罗列那一类问题,比如“我的老板杰夫是一个彻头彻尾的混蛋,他不停地改我的代码,不问我,总是用他的专横武断的决定来压制我,我是否应该辞职?“ 我可以理解那个排斥所有职业问题的决定,因为他们通常都是软性的、具有争议的,而且只针对提问者。放弃这个类别,总比辛苦地从里面发现珍稀的观点要容易。
Stack Exchange想要的是对尽可能多的人有用的问题,并且积极地关闭(抱歉,是“搁置”)其他问题。现在,我将重新打印我最喜欢的图表,它试图解释这一点:
这个目标中颜色的部分表示“所有的程序员”?这是Stack Exchange的目标。也许是“所有的骑自行车者”,或者“所有的厨师”,但是你会理解大致的意思。
我们尽自己最大的努力让你去问那些触及到这个美妙区域的问题:答案会让你得到你迫切需要的信息,是的,但同时也能帮助你的同伴,而不会变成毫无意义的观点蜜罐,言过其实,要么“太宽泛”,要么“太狭隘”。让我们的问题达到这个目标,或者至少是尽最大的努力去尝试,这就是我们如何通过共同的努力来达到最大的效果。书写一次,阅读多次。
但回到这个话题:对于那些不再想编程的程序员来说,什么样的职业选择是可行的呢?我觉得有一种方式可以回答这个问题,这个问题对许多其他程序员都有帮助,这都是由事实、数据和科学支持的。
编程的确是一个需要激情的领域。如果你已经编程了好几年,现在还没有产生出一点感觉,那么我觉得你以后也很难很快地对它产生感觉。然而,如果你在一段时间内能坚持做一些你不太热衷的事情,也许的确还有一些事情需要处理。或者你只是戴着金手铐。
环境在任何工作中都扮演着重要的角色,无论这工作有多么不可思议。你和谁一起工作?你在做什么?你在什么样的环境中工作:
是初创企业?
是小企业?
是大企业?
是咨询顾问?
是自由职业者?
在各种情境下的“编程”,以及您将要合作的其他同行程序员,将是截然不同。首先,在最终确定你要永远离开这个领域之前,考虑一下环境和同伴可能是问题所在。你是否尝试过改变这些?
除此之外,还有很多相关的领域,拥有编程技能是具有优势的,这些工作不需要“整天坐下来写代码”。让我们思考下,有什么工作是...
编程技能和深厚的技术背景通常都是在招聘要求中的。
有记录显示了原来是程序员,后来进入这些职位并取得了成功的。
在全球范围内,此类工作的数量是合理的
我真希望我能在Stack Exchange上问这个问题,因为我更愿意用众包数据来支持以上三点,但我自己能想到的最好的就是:
产品/程序经理
项目经理
QA/测试(优秀的测试人员是很有价值的)
构建工程(这种东西很难)
系统管理员
技术销售
技术作家
业务分析师/编程分析师
在许多这样的角色中,真正了解编程具体细节的人是非常罕见的。这是很不幸的,因为深厚的技术背景让您能够真正理解正在发生的事情并向客户,利益相关者,以及相关团队的同行解释。至少没有人会用技术的来忽悠你,因为你已经准备好了应对他们的虚张声势。
我发现,很少有“熟练”的程序员在以前的工作中能够对相关职业自我选择,并且在经济和职业上都做得很好。在那些工作中,有很多东西是关于编程的,而不是低头写代码,你的编程技能是一种竞争优势。
职业问题很难,因为最终只有你能决定什么是适合你的。但是,如果你是一个不再喜欢编程的程序员,你的技术背景至少可以为你打开相关职业的大门。
|
|