编程是为数不多的既能满足个人爱好又能赚钱的职业之一。烹饪是另一个这样的例子。一般来说,大部分的职业要么是你不可能在家做的(比如医生、电工),要么就是你没兴趣在家做(比如打扫卫生)。同样,大多数有趣的活动都是没有人愿意付钱给你的。软件开发横跨两个阵营:对一些人来说,这是一个令人愉快的职业,对另一些人来说,这是一个令人兴奋的爱好。前者是我所说的“专业程序员”,后者是“有创意的程序员”。当然,这并不是说前者没有创意,后者不赚钱。这么解释的话,你也可以分别称他们为“code-first”程序员和“problem-first”程序员,因为前者喜欢用代码来解决问题,而后者更喜欢用代码作为他们创造具体的工具事物。还有第三类程序员,这很容易成为最令人沮丧的群体:那些既专业又具有开发软件的强烈创造力的人。如果愿意,可以称他们为“有创造力的专业程序员”(尽管是非常缺乏创造力的)。专业的程序员可以在工作中解决他们感兴趣的问题,然后回家去做其他重要的事情;而来自其他领域的业余程序员可以将编码作为晚上的爱好。有创造力的专业编码员整天编码以创建他并不真正关心的产品(换句话说主要是为了钱,对女程序员没有冒犯),然后当他回到家时,他没有时间和精力去创造他真正热衷的事物。有了CS学位,他认为自己会找到一份理想的工作。编码从一开始就让他兴奋不已:只要一台电脑和一些专业知识,就可以创造出娱乐和挑战他人的游戏,创造出帮助他人和改变世界的工具,以及与以往完全不同的应用程序。为了获得一份高薪工作,仅此一项似乎有些牵强。入行几年后,不幸的乌云开始慢慢聚集。不是他对这份工作不感兴趣,也不是这个产品没有意义,只是……他手上有十几个项目像线一样纠缠在他身上,他没有有足够的时间完成所有这些,即使他整天都在工作。这感觉像是一个世界性的问题,但从另一个角度来看,人们是这样看的:他热爱编程,并且通过编程获得了丰厚的收入,而且他有大量的个人时间来锻炼身体、与朋友交谈、结交朋友并追求自己的爱好,他过着几乎无法羡慕的美好生活。当编程界出现沮丧的声音时,上述片面的观点就会被群起攻击。在自己的时间里很难对编程保持热情,因为压力太大:工作时编程,然后回到家很累。你需要平衡你的生活,发展一些除了编程之外的其他爱好。你可以在其他公司兼职赚更多的钱,或者你可以做任何你喜欢做的事,赚很少或没有钱:然后抱怨和抱怨接踵而至。关键是,所有这些陈述都是真实的:他们只是错过了重点。我不认为许多程序员在工作之外编写代码是为了提高竞争力。同样,我认为大多数程序员都不相信您应该每天投入10小时以上的编程时间来保持竞争力。这类程序员的挫败感在于,他每天只能投入有限的合理编码时间,但他却将大部分时间花在创建最终对他来说没有意义的东西上。重点不在于编程,而在于创造。他不是那个下班后狂热地把作品带回家的唯利是图的商人:他是一个整天设计公交车车身广告的平面艺术家,但当他回到家时,却带不走任何风景片段。这是艺术家之间存在数百年的冲突:这不是一个新问题。不同之处在于,据我所知,没有任何一种创造性的努力像软件开发那样伪装得很好、易于分享,而且利润丰厚。你可以想到其他的技能,可以创造和管理价值数十亿美元的股票交易利润,也可以像创造游戏一样有趣和荒谬,比如GAMEOFTHEYEAR420BLAZEIT,还可以通过互联网发送结果。分享到全世界?这太不可思议了。编程是一种艺术形式,也是一种强大的工具:可以理解,它对不同的人意味着不同的东西。这给具有强烈创造性意志并将这些创造性意志置于软件开发职业之上的程序员造成了两难境地。他能在工作和家里都花10多个小时编码吗?他是否会辞掉这家公司,另谋高就,这样他回家后就可以从事自己的项目了?或者他宁愿过一个落魄艺术家的生活,全身心投入到他的项目中(就像软件世界中的TarnAdams),混战并希望从中赚到足够的钱?还是他只是像挤牙膏一样挤时间,或者签一份灵活的合同,薪水较低,但可以让他有更多时间用于编程?还是依靠配偶经济支持,俗称软饭?我认为这里的关键是这些不是买单的人提出的问题:这些是艺术家提出的问题。挣扎的艺术家并不总能得到很多尊重,我的印象是富有创造力的程序员会受到更多的嘲笑,可能是因为他们可以轻松地将自己的技能货币化,但却选择了一条艰难的道路。如果因为创作的冲动而嘲笑艺术家是残忍的,那么出于同样的原因嘲笑程序员难道不是残忍的吗?我也认为自己是富有创造力的专业程序员之一。虽然我在一个有趣的领域有一份很棒的工作,但我的脑子里却涌现出一百万个想法:我想开发自己的游戏,让人们可以真正玩;我想构建一个基于标签文件系统的游戏,用于标记和搜索媒体,如动画gif和个人照片;我想做一个移动应用程序,让人们可以轻松输入数据(比如你什么时候吃棒棒糖,或者什么时候头痛),然后显示相关属性供你调查;我想构建一些重要的东西来了解依赖类型可以(或不能)有多大用处。直到最近,我一直没有弄清楚如何平衡生活中的编码,所以现在我是这样的:我通常业余编码2小时左右,然后周末有4到6小时的编码时间。和我心里想做的相比,这绝对是蜗牛的速度,但是因为我有大笔开支,我需要保证一定的工作时间,如果我在生活的其他方面妥协(人际交往,运动、闲暇、家务等)来写代码,那么我的整体情况会更糟。这是一种牺牲,但我并不为自己感到难过,我没有任何遗憾:毕竟每个人都需要牺牲和取舍。当然,如果我能在与人交谈时不认为我的问题是把副业放在首位,那就太好了。我认识一个厨师,他不喜欢回到家太累,以至于没有精力做一顿美味的饭菜。他对此很矛盾,但没有人向他指出。他真正的问题在于他过于强调食物。热情。如果我们能够认识到构建某些东西的愿望是某些程序员的基本驱动力,那么我们不仅可以通过消除对不喜欢在家编码的程序员的蔑视来帮助专业程序员,我们还可以帮助有创造力的程序员找到适合自己的生活方式。让我们一起试试吧。翻译链接:http://www.codeceo.com/article/creation-motivated-programmer.html英文原文:创造型职业程序员的挫折
