编程的快乐

《人月神话》算得上是软件领域的一本经久不衰的经典著作了,在开头的第一章便讲到了作者对于程序猿这个职业的乐趣和苦恼的理解。仔细一想,我进入这个行业也十年有余了,如果说当年进入这个领域是因为专业背景的原因,那么到如今这么多年过去了,我仍然坚持着没有转行去做其他诸如收租之类的工作,除了无租可收之外,可能还是因为对这个行业发自内心的喜爱吧。接下来,我也想说一说作为一个中年程序猿,我对这个职业乐趣的一点个人理解。

首先,编程是一场充满挑战的脑力游戏。不同于雕塑,绘画,音乐等艺术创作形式,编程的大多数最终产品是无法通过视觉,触觉或者听觉等感官直接感知到。对于编程的最终产品,我们往往只能通过观察它的输入输出来判断它是否是我们期望的那个“样子”。最终产品尚且如此虚无缥缈,在此之前的中间产品以及最初的程序设计就更加的无法琢磨了。因此当两个程序猿面对面的坐在一起,通过语言来沟通对于接下来要实现的这个产品特性的设计方案时,始终会给我一种两位棋坛高手下盲棋的既视感。对于大多数自视甚高的程序猿来说,这种虚无缥缈的满足感实在是妙不可言。

其次,编程是一场“聪明人”之间的对话。正因为编程的过程中,很多时候就像下盲棋一样的飘渺,对于参与这场游戏的人的要求,也就格外的高。如果没有足够的想象力,你是很难跟上一个天马行空的程序猿跳(杂)跃(乱)的思维的。正因如此,当两个程序猿能够通过简短的几句话便达成一致时(当然大多数情况下他俩对这个“一致”的理解其实完全不一样),那种畅快淋漓会给人一种终觅知音相见恨晚的感觉。

第三,编程是一片可以肆意挥洒创意的乐土。就像同一个场景不同的作家描述的方式也会各不相同一样,同一个业务问题,不同的程序猿的实现方式也是不尽相同的,所以在编程的领域里,只要你愿意,你可以使用多种多样的方式来实现同一个功能。这种感觉在批改社招作业的时候显得尤其明显。社招的题目对所有人都是一样的,但是所有人的实现方式都不一样(当然也遇到过完全一样的...)。细看这些千差万别的解决方案,就会发现它们多多少少都会有令人拍案的闪光点。这种可以按照自己的想法肆意发挥的地方,难道不是一块人间乐土么?

第四,编程是一个规则明确的游戏。编程的过程中,我们经常会遇到程序的表现跟我们的预期大相径庭的情况。遇到这种情况,不用怀疑,绝大多数情况下都是我们的代码哪里写得有问题,而不是我们使用的编程语言本身有问题。这种有规则可循的游戏会给人一种安全感,只要我做对了,结果肯定是对的。相比于面对妻子或女朋友突如其来的坏脾气,而自己却完全摸不着头脑时的那种无助感,编程实在是让我觉得心里踏实得多,因为毕竟即使我们没有做错什么,她们还是会生气。[摊手]

最后,编程真的可以帮助到别人。当我们辛苦工作之后编写出来的程序真的上线之后,眼看着它帮助到别人解决了他们实际的问题,就像我们去饭店吃饭,发现服务员提供的点餐系统就是我们自己开发的,就像我们去机场值机,发现机场的值机系统就是出自我们之手。不管是将原来复杂的手动工作变得自动化,还是提供了一种前所未有的处理方式降低了业务的运行成本,那种成就感和获得感真的让人欲罢不能。

当然,作为程序猿,因为久坐不动,我们也会面临诸如脱发,发福,腰椎间盘突出,颈椎病,腱鞘炎,脂肪肝,肾结石等一系列健康风险,但是就像《人月神话》的作者总结的那样:

编程的快乐在于它不仅满足了我们内心深处进行创造的渴望,而且还唤醒了每个人内心的情感。

你可能感兴趣的:(编程的快乐)