创造型职业程序员的无奈

 更新时间:2016年12月7日 10:05  点击:1896

  编程是为数不多的一种既能满足个人爱好,又能赚钱的职业之一。烹饪是另一个这样的例子。在一般情况下,大多数职业要么不可能让你待在家里(例如医生和电工),要么你没有兴趣在家里做(例如清洁)。同样的,大多数好玩的活动是没人愿意付你钱的。

  软件开发则横跨两个阵营:对有些人来说这是一个令人愉快的职业生涯,对其他人来说,这是一个激动人心的兴趣爱好。前者是我所谓的“职业程序员”,后者则是“创造型程序员”,当然这并不是说,前者缺乏创造力,而后者不赚钱。这么解释吧,你也可以分别称他们为“代码优先”的程序员以及“问题优先”的程序员,因为前者喜欢用代码解决问题,而后者更倾向于使用代码作为他们的工具来创建具体的东西。

  还有第三类程序员,这一类很容易成为最沮丧的群体:既以编程为职业,又有强烈的创作冲动来制作软件。如果你愿意的话,不妨称呼他们为“创造型职业程序员”(虽然很没有创意)。职业程序员可以在工作中解决令他们感兴趣的问题,然后回家去做其他重要的事情;而来自于另一个领域的业余程序员可以享受编码作为晚上的业余爱好。创造型职业程序员白天的时间都在编码,去创造一个他自己也不甚在意的产品(换言之主要是为了钱钱,而且没有冒犯女程序员的意思),然后当他回到家之后,就没有时间和精力去创造那些他真正热爱的东西。

  拿到 CS 学位,他以为他将会收获一份梦寐以求的工作。从一开始编码就令他激动不已:只要一台电脑和一些诀窍,就可以创建游戏来愉悦和挑战别人,创建工具来帮助他人和改变世界,以及创建完全不同于之前已经存的应用程序。为了能有一份高薪的工作,仅仅如此似乎太过异想天开了。

  在进入这一行业几年之后,不幸的乌云开始慢慢拢聚。这并不是说他对工作不感兴趣了,也不是产品没有意义,只是因为……他手头有十几个项目像线团一样缠绕在着他,以致于他没有足够的时间来完成所有这些项目,即使他将一整天的时间都放在工作上。这感觉像是一个世界难题,但是从另一个角度,人们看到的是这样的:他热爱编程,并且有一笔可观的收入支付给他让他编程,他有充足的个人时间用于锻炼、与朋友建立联系和实现自己的兴趣爱好,他过着一种令人倾羡不已的美好生活。

  上面这些片面化的观点会群起而攻之,在编程社区中出现沮丧的声音时。因为有太多的压力,所以你很难在自己的时间继续对编程工作保持激情:在工作时编程,然后累成狗一样地回家。你需要平衡你的生活,培养一些编程以外的其他爱好。你可以兼职其他公司,赚多一点钱,也可以做任何你喜欢做的事情,只赚取很少一点钱或根本不赚钱:然后抱怨和牢骚随之而来。

  关键要说明的是,所有这些言论都没错:只是都没有戳中关键点。我认为,没有那么多的程序员在工作之外编码是出于他们想更有竞争力这个原因。同样的,我认为大多数程序员也不会相信为了保持竞争力你应该每天投入 10 小时以上到编程上的观点。

  这类程序员的无奈之处在于,他每天只能投入有限的合理编码时间,然而他花费了大部分时间去创造的一些东西,最终对他而言是没有意义的。关键不在于编程,而在于创造。他不是那种脑袋钻到钱眼里的生意人,下班之后狂热地带着工作回家:他是一个绘画艺术家,将整天的时间都用在设计公交车车身广告,但当他回家的时候,却不能携带走任何风景片段。这是艺术家中已经有着几个世纪历史的冲突:这不是一个新的问题。和以往不同的是,据我所知,没有一种创造性的努力像软件开发一样有着很好地伪装、易于分享和有着极高的利润。

  你还能想出其他的技能,既能创造和管理价值数十亿美元股票交易一样的利润,又能如创造游戏,例如 GAME OF THE YEAR 420BLAZEIT,那样有趣又荒诞,并且还能将结果通过互联网分享到世界各地吗?这真的令人难以置信。编程是一种艺术形式,而且是一个强大的工具:可以理解的是,它对于不同的人意味着不同的东西。

  这使得那些有着强大创作意愿,并将这些创作意愿置之于软件开发职业之上的程序员处于两难的境地。他能在工作中和家里都花费 10+ 小时编码吗?他会放弃这一行,另谋职业,这样回家的时候就可以致力于自己的项目吗?或者他宁愿过着一种穷困潦倒的艺术家生活,完全献身于他的项目(例如软件世界里的 Tarn Adams),省吃俭用希望能从中赚到足够的钱?还是说他只是像牙膏一样地挤时间,或者采取灵活的合同工作,虽然酬劳少了,但可以有更多的时间投入到编程中去?亦或是他依靠他的配偶提供财政支持,俗称吃软饭的?

  我认为,这里的关键在于,这些不是支付账单的人提出的问题:这些是艺术家提出的问题。虽然尚在苦苦挣扎中的艺术家总是不能得到很多尊重,而且在我的印象中,创造型程序员得到的嘲讽甚至更多,这可能是因为他们原本完全可以轻易地利用他们的技能去赚钱,但却选择了一条艰难的道路。如果,因为艺术家他们渴望创造的强烈欲望而嘲笑他们是一种残酷,那么出于同样的原因而嘲笑程序员是否是另一种残酷呢?

  我认为自己也是创造型职业程序员中的一员。虽然我在一个很有意思的领域有一份很好的工作,但我的大脑中有一百万个点子在爆炸:我想开发自己的游戏到能真正让人去玩的程度;我想建立一个基于标签的文件系统,用于标签和搜索媒体,类似 gif 动画和个人照片;我想制作一个移动 app,让大家能够轻松输入数据(例如在你吃棒棒糖,或头痛的时候),然后展示相关性以便于你进行调查;我想构建一些不平凡的东西用来知道从属类型能有(或不能)多实用。

  直到最近,我才想明白如何平衡生活中的编码,于是,现在的我是这样的:平时大概业余编码 2 小时,然后周末会有 4 到 6 小时的编码时间。这和我心里想要制作的东西相比,绝对是蜗牛速度,但因为接下来我会有一笔很大的开支,所以我需要保证一定的工作时间,而如果我妥协生活中的其他部分(人际交往、运动、休闲时间、家务琐事等)用于写代码,那么我的整体情况就会变糟。

  这是一种牺牲,但我并没有觉得对不起自己,没有丝毫遗憾:毕竟每个人都需要有所牺牲,有所取舍。当然,如果能在和别人谈论时,别人不认为我的问题是将业余项目放在首位就好了。我认识一个厨师,他不喜欢累得一塌糊涂地回到家里,以致于没有精力去做一顿豪华大餐,他对此矛盾不已,但没有人为他指出,他真正问题在于对食物寄予了太多的激情。

  如果我们能够认识到,创建东西这个愿望对于某些程序员而言是一种基本的动力,那么我们不仅可以通过,消除对那些不喜欢在家编码的程序员的蔑视,来帮助职业程序员,我们还可以帮助创造型程序员找到适合他们的生活方式。让我们一起来试一试吧。

[!--infotagslink--]

相关文章

  • C#程序员统计自己的代码行数

    这篇文章给大家讲解了下作为程序员如何统计自己写过的代码的行数,这个也是证明自己程序员能力的一个表现,一起来看下。...2020-06-25
  • PHP程序员的40点陋习

    Reinhold Weber 提出PHP程序员的40点陋习.(本E问只写了一部分内容,译者找到原版翻译,以下是完全版) 1不写注释 2不使用可以提高生产效...2016-11-25
  • php程序员必须

    PHP程序员最易犯10种错误(转) PHP是个伟大的web开发语言,灵活的语言,但是看到php程序员周而复始的犯的一些错误。我做了下面这个列表,列出了PHP程序员经常犯的10中错误,大...2016-11-25
  • 一个合格的程序员应该读过哪些书(偏java)

    编者按:2008年8月4日,StackOverflow 网友 Bert F 发帖提问:哪本最具影响力的书,是每个程序员都应该读的...2021-09-22
  • php程序员面试之百度面试题

    面试题不同公司不一样像百度公司要求算法高这个也能理解了,下面整理了一道据说是百度的面试题,我们来看看它的算法与答案吧。 据说是一个百度php的面试题,已给定一个...2016-11-25
  • 程序员在35-40岁之后真的就是死胡同吗?

    英文原文:Is Software Development Really a Dead-End Job After 35-40?  注意限定,是在 35-40 岁之后。毫无疑问,这对于任何年轻人而言是一个伟大的领域,那么对于年长的人而言还全是灿烂的阳光和芬芳的玫瑰吗?  我还没有 35,但过个两三年就到了。...2016-12-07
  • php程序员必看php优化效率方法 (1/4)

    7.1、在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个...2016-11-25
  • 创造型职业程序员的无奈

    编程是为数不多的一种既能满足个人爱好,又能赚钱的职业之一。烹饪是另一个这样的例子。在一般情况下,大多数职业要么不可能让你待在家里(例如医生和电工),要么你没有兴趣在家里做(例如清洁)。同样的,大多数好玩的活动是没人愿意付你钱的...2016-12-07
  • PHP程序员的技术成长规划

    本文按照目前主流技术做了一个基本的梳理,整个是假设PHP程序员不是基础非常扎实的情况进行的设定,并且所有设定都非常具体明确清晰,可能会让人觉得不适,请理解仅代表一家之言...2016-03-27
  • PHP程序员一般都忽略了的几点精华

    我发现很多的PHP程序员,尤其是学习还不是很久的,都不知道PHP的精华所在。Perl当年如何在商界出名?其强大的正则表达式。而PHP呢?他是一门从Unix下发展起来的语言,当然也就继...2016-11-25
  • PHP程序员最易犯10种错误

    PHP是个伟大的web开发语言,灵活的语言,但是看到php程序员周而复始的犯的一些错误。我做了下面这个列表,列出了PHP程序员经常犯的10中错误,大多数和安全相关。看看...2016-11-25
  • 程序员最容易犯的五个PHP数据库问题及解释

      揭露 PHP 应用程序中出现的五个常见数据库问题 —— 包括数据库模式设计、数据库访问和使用数据库的业务逻辑代码 —— 以及它们的解决方案。   如果只有一种...2016-11-25
  • PHP程序员笔试与面试题分享

    本文章来给各位同学总结了一些PHP程序员笔试与面试题分享,如果你准备去面试php程序员不防先看看这些题目哦。 普通PHP程序员笔试题 标签: 程序员 PHP 面试 2...2016-11-25
  • PHP程序员最易犯10种错误总结,phper的你中几枪?

    最近经常和初学的phper讨论php相关问题,发现他们都在犯一些同样的错误,这些错误也是我以前犯过的。现在我把这些常的10个错误列出来,大多数是php安全方面,方便大家学习参...2016-11-25
  • PHP程序员常犯的11个错误

    1、使用myisam而不是innodb mysql教程有很多数据库教程引擎,但是你最可能碰到的就是myisam和innodb。 mysql默认使用的是myisam。但是,很多情况下这都是一个很糟糕的选择...2016-11-25
  • 为什么Java是程序员受欢迎的语言这几个原因你该清楚

    Java一直稳居程序员很受欢迎的编程语言的榜首,是企业中使用最广泛的编程语言。这篇文章主要介绍了为什么Java是程序员受欢迎的语言这几个原因你该清楚,需要的朋友可以参考下...2020-07-24
  • C++高级程序员成长之路

    本文主要是结合自身的经验,给大家罗列了一些如何成为C++高级程序员的方法和注意事项,分享给大家,希望对新手能够有所帮助。...2020-04-25