按:上次写了twitter.com的创业史,读者反映还不错。本来准备了资料,打算继续写其他一些网站或创业公司,今天看到登高在CSDN个人空间推荐歌曲,突然想起一事,就打个岔先。和本系列其他文章不同,这篇要写一首歌,以及和它相关的事情。好奇吗?现在开始。

2007年3月份,我去硅谷Santa Clara参加CMP的SD West 2007大会,着意听了几场演讲或课程。最令人兴奋的是Robert C. Martin (Uncle Bob)的演讲“Craftsmanship and the Problem of Productivity: Secrets for Going Fast without Making a Mess”。甫一上台,Bob大叔就手舞足蹈唱起歌来,像极了一只焦躁的猴子。当然这只是个暖场的手段,演讲本身之精彩,自不待言,但Bob大叔那夸张到走调的演绎,让我对他唱的歌产生了兴趣。可惜闪念之间,还是觉得听后面的课程要紧,也就抛诸脑后了。

今天想起来,Uncle Bob的歌声仿佛还在耳边回响,趁着中午有点空闲,查了一下。原来那首歌叫做Code Monkey(代码猴子),作者是Jonathan Coulton。此人住在纽约布鲁克林,是个独立音乐人。在相当一段时间(大约两年)里,他每周创作、演唱并在网上循CC版权协议发布一首新歌。拜新科技所赐,从配乐演奏到主唱,Jonathan可以独力完成。Code Monkey就是这些歌曲中较为成功的一首。因为创作歌曲数量之庞大,Jonathan被外间叫做“写歌机器”。

千万别以为做音乐的都是文盲,人家Jonathan Coulton可是正经毕业于耶鲁大学,而且还当过一段时间的程序员,这首Code Monkey,灵感大概也来自当年做程序员的生活。

所谓code monkey,是一个英文习语,粗略而论有两层意思:其一,低水平的编码人员;其二,程序员自嘲。Uncle Bob在演讲中奉劝听众不要做code monkey,是为了提升听众的编程水平;而Jonathan在歌中唱的,可就用了“自嘲”那层含义了。且来看看歌词——

Code Monkey get up get coffee(代码猴子起身喝咖啡)
Code Monkey go to job(代码猴子上班去)
Code Monkey have boring meeting(代码猴子开了个无聊的会)
With boring manager Rob(一起开会的上司Rob也够无聊)
Rob say Code Monkey very diligent(Rob说代码猴子很勤奋)
But his output stink(但做的东西却不行)
His code not “functional” or “elegant”(他的代码“用不了”或“不够好”)
What do Code Monkey think?(代码猴子在想什么?)
Code Monkey think maybe manager want to write god damned login page himself(代码猴子想,上司可能想干脆自己来写那个TMD登录页)
Code Monkey not say it out loud(代码猴子没大声说出来)
Code Monkey not crazy, just proud(代码猴子可没疯,只是有点得意)

Code Monkey like Fritos(代码猴子喜欢吃Fritos薯片)
Code Monkey like Tab and Mountain Dew(代码猴子喜欢喝Tab和Mountain Dew)
Code Monkey very simple man(代码猴子是个直爽人)
With big warm fuzzy secret heart:(心里藏着点温暖的秘密:)
Code Monkey like you(2X) (代码猴子喜欢你)

Code Monkey hang around at front desk(代码猴子在前台混着)
Tell you sweater look nice(说你的毛线衣真好看)
Code Monkey offer buy you soda(代码猴子给你买苏打水)
Bring you cup, bring you ice(还送上杯子和冰块)
You say no thank you for the soda cause(你说谢谢,不用了)
Soda make you fat(因为喝苏打水会变胖)
Anyway you busy with the telephone(你得忙着接电话)
No time for chat(没时间闲聊)
Code Monkey have long walk back to cubicle he sit down pretend to work(代码猴子走回小隔间,坐下假装工作)
Code Monkey not thinking so straight(代码猴子没想通)
Code Monkey not feeling so great(代码猴子感觉不太好)

Code Monkey like Fritos(代码猴子喜欢吃Fritos薯片)
Code Monkey like Tab and Mountain Dew(代码猴子喜欢喝Tab和Mountain Dew)
Code Monkey very simple man(代码猴子是个爽直人)
With big warm fuzzy secret heart:(心里藏着点温暖的秘密)
Code Monkey like you(代码猴子喜欢你)
Code Monkey like you a lot (代码猴子很喜欢你)

Code Monkey have every reason(代码猴子有理由)
To get out this place(离开这个地方)
Code Monkey just keep on working(代码猴子还是留下来工作)
See your soft pretty face(看着你可爱柔软的脸)
Much rather wake up, eat a coffee cake(醒来,咖啡蛋糕做早餐)
Take bath, take nap(洗澡,睡觉)
This job “fulfilling in creative way”(这工作“创意无穷”)
Such a load of crap(真是废话一堆)
Code Monkey think someday he have everything even pretty girl like you(代码猴子以为总有一天会得到一切,包括像你一般好的女孩)
Code Monkey just waiting for now(代码猴子在等待)
Code Monkey say someday, somehow(代码猴子说,总有一天,总会实现)

Code Monkey like Fritos(代码猴子喜欢吃Fritos薯片)
Code Monkey like Tab and Mountain Dew(代码猴子喜欢喝Tab和Mountain Dew)
Code Monkey very simple man(代码猴子是个爽直人)
With big warm fuzzy secret heart:(心里藏着点温暖的秘密)
Code Monkey like you(2X)(代码猴子喜欢你)

上面的歌词,我只是随手译出中文,可能有一些不准确的地方,请方家指正。其中的Tab和Mountain Dew,分别是百事可乐及可口可乐推出的减肥饮料。

嗯,那就是典型的Code Monkey了……朝九晚五干着毫无激情的工作,巴望着能认识个好姑娘,可惜落花有意、流水无情,风流总被雨打风吹去。他每天做这白日梦:坏日子总会过去,我将拥有一切。这首歌在美国软件技术人群中流行一时。虽然许多中国程序员不喝Mountain Dew,但我相信他们听这首歌也会感同身受——这样的生活,什么时候才能熬到头呢?

再咀嚼咀嚼歌词,还是觉得自嘲的意味多过哀叹的意味。这首歌以Creative Common授权发行,有很多人拿来做成MV。最有趣的是一位Adobe程序员做的MV,他用魔兽世界的人物来演绎Code Monkey,既邪恶又幽默。

Jonathan Coulton弹吉他演唱的不插电版本也很有意思,有兴趣的读者可访问http://technorati.com/videos/youtube.com%2Fwatch%3Fv%3D7s8S7QxpjeY。

e人谷龙门阵之代码猴子相关推荐

  1. e人谷龙门阵之twitter.com

    开篇 去年8月21日,我去techweb和大度咨询合办的"IT龙门阵"参加了一次关于类twitter应用的活动.在那次活动中,我讲了一些关于twitter.com创始和发展的故事, ...

  2. 【代码猴子-培养正确的编程态度和方法】--《编程匠艺》

    转来的! [代码猴子-培养正确的编程态度和方法]--<编程匠艺> 从 博客园-首页原创精华区  作者:小伦 有 41 人喜欢此条目 作者: 小伦 发表于 2010-06-16 15:22  ...

  3. Git实战技巧-多人协作开发出现代码冲突,如何合并代码

    Git实战技巧-多人协作开发出现代码冲突,如何合并代码 1.企业场景 小智和小黑两个人交叉修改同一个文件,这个时候小智修改完提交.问题来了,如果小智提交成功,那么就相当于忽略了小黑提交的内容.这个时候 ...

  4. 人+山=仙,人+谷=俗

    人+山=仙,人+谷=俗. 高度不够看到的都是问题, 格局太小纠结的都是鸡毛蒜皮. 站得高望得远是最好的结局!

  5. java 操作鼠标实现qq加好友_易语言通过按键模拟的方式实现QQ后台加人加群的代码...

    DLL命令表 .版本 2 .DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA" .参数 lpM ...

  6. 「饥人谷」前端系统班:每周拓展直播

    文章目录 [入门]阮一峰对我的影响 前端学习资源推荐 修炼基本功 工具与网站推荐 [入门]阮一峰对我的影响 书籍: 黑客与画家 Just For Fun linus 自传 软件随想录 禅与摩托车的维修 ...

  7. @[666_C++牛人放出超屌代码]3d超级枪战小游戏

    @[666_C++牛人放出超屌代码]3d超级枪战小游戏 介绍: 本游戏为联网游戏,设置玩家最多为10人,死亡后强制踢出. 可执行文件为Start.exe,点击打开即可 你可以按住Alt+Tab键在控制 ...

  8. Python 玩出花了!一文教你用 Python 制作吃豆人游戏! | 附代码

    作者 | 李秋键 责编 | Carol 封图 | CSDN 下载自视觉中国 近几年来Python语言得到了快速发展,而Pygame作为Python开发应用和游戏必备的库更是展现了Python的优越性. ...

  9. 角谷猜想python代码_查看“Python-2020-fall”的源代码

    因为以下原因,您没有权限编辑本页: 您所请求的操作仅限于该用户组的用户使用:用户 您可以查看与复制此页面的源代码.== Python程序设计课程主页(2020年秋季学期) == Teacher: [h ...

最新文章

  1. 基于PSR-0编码规范开发一套PHP-MVC框架(一)
  2. 卡巴斯基:儿童和老人的在线安全隐忧
  3. 数据库优化的几条基本策略
  4. 【Java版】将汉字转化为gb2312编码
  5. 几个想法,有兴趣的可以深入下去
  6. C语言试题三十四之求除1到m之内(含m)能北7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
  7. 操作系统知识点总结+最终版
  8. JS对url进行编码和解码(三种方式区别)
  9. 德州python培训_人工智能在多人桌德州扑克比赛中战胜世界顶尖选手
  10. php上传图片怎么接受,php怎么实现上传图片的功能
  11. homebrew Mac 相关问题
  12. java开发环境实验总结_20155212 实验一《Java开发环境的熟悉》实验报告
  13. python继承中的参数_python 继承中的super
  14. python找不到解释器_为什么pycharm找不到python解释器
  15. h2ouve工具使用_NF8480M5 – BIOS设置
  16. 百度BAE部署java web(Jforum)项目
  17. apache网站ftp服务器搭建,利用 Apache FtpServer 搭建 FTP 服务器
  18. 微信墙html5,微信墙怎么做?微信墙制作流程介绍
  19. 计算机硬盘只显示c盘,电脑只显示C盘我们应该怎么办
  20. 猎豹浏览器使用评测(2)-一款很轻的极简绿色浏览器

热门文章

  1. 执行 tensorboard --logdir logs遇到的浏览器中输入http://localhost:6006 网址打不开的问题
  2. 老祖宗总结的12条决定命运的秘诀
  3. 全球及中国电子信息产业投资项目需求及重点规划建议报告2021-2027年
  4. wamp怎么安装mysql服务器_wamp环境搭建(apache安装,mysql安装,php安装)
  5. 杰里之 关于蓝牙耳机装配要求说明【篇】
  6. 火狐配置文件linux,驯服火狐:Linux下Firefox文件配置技巧
  7. 篱笆家装宝典之十二——石材
  8. 纯CSS3实现柱状图的3D立体动画效果
  9. 文献解读|PBJ 白菜单细胞转录组揭示植物叶片腹背面细胞分化差异的分子机制
  10. 我们该如何学好Java?