程序员要活的明白
商业内幕最近发表了一篇文章说做程序员压力山大,很多人都快疯了。 文中陈述了几个典型的罪状:骗子综合症,加班加点,精疲力竭等。作者指出,程序员的工作压力的根源通常是源自混乱的管理,但越来越多的压力开始来自程序员 社群自身,社群中开始形成一种文化,将加班加点当成判断一个程序员是否具有奉献精神的石蕊试剂,强加到程序员身上。换句话说,如果你不在下班时间继续写代 码,你就不可能成为一名合格的程序员。跟这些压力相呼应的是急速革新的各种新技术、新框架、新语言、新平台、新程序包、新SDK等的不断出现,就如火上浇 油。
可事实上问题不在于此。编程,就跟写作、绘画、作曲一样,首先是一种创造性的活动,而不是一个种技术工作。当然,对一种技术或编程语言的不断练习和保持熟悉很重要,这其实就是在学习使用工具和技法,但它并不会让你本质上变成一名更优秀的程序员。它只是让你能更熟练的使用工具。而能让你成为更优秀的程序员的是学会如何思考问题,因为最终你是把脑子里思考出的逻辑转换成了一系列操作计算机的指令,让计算机遵照指令解决问题。而学习如何正确的思考——如何抽象归纳,如何组合,如何分析信息,如何自我反省——可以通过各种方式,远非只有编程一种。Paul Graham在他的精彩著作《黑客与画家》一书中说:
我发现那些最有价值的灵感的源泉都不是那些跟“计算机”这个词相关的领域,而是那些跟动手创造相关的领域。绘画就是一个比计算机理论能提供更丰富灵感的思想源泉。
拓展其它领域的技术,培养除编程之外的其它爱好,这会给你的日常工作带来巨大的帮助。程序员根本不需要没日没夜的写代码。你应该把这些时间用于和他 人交流,和大家一起边喝咖啡(或你喜爱的东西)边编码、阅读、讨论。你应该把这些时间用于跑步或举重。身体锻炼给大脑补充氧气,滋养这个最神奇的器官,这 才是你需要的。我三年前开始跑步。呼吸新鲜的空气、沐浴清新的阳光让我变得更加快乐,跑出几公里远离繁杂的琐事,我的脑子有了更多的时间来激发灵感。
关键是,关注心灵,关注自己,这能让你成为一个更好的程序员。你可以无止境的学习新语法,新工具,或新什么东西,但是,如果所有你做的只是编程,你 实际上在跟自己背道而驰。有时候你需要全力以赴,但那是当程序中有问题需要救火时,是特殊情况,而不是日常。如果你的驻地总是有火灾,那你应该换个地方。 有时候你需要埋头苦干,干上几周甚至几个月,为了让你的理想变成现实。然后是休息。相反,一味的玩命苦干只能换来越来越少的回报,是完全与成为一名更好的 程序员的愿望背道而驰。去年11月,我参加了NaNoWriMo (National Novel Writers Month),这是一个非正式的比赛,参赛者要求在30天里写出一本5万字左右的书。我每天早起,花几个小时写作,然后上8个多小时的班,然而晚上继续写 作。每天如此。坚持了30天。月末的时候我的身体开始透支,我病了。但这对我是有必要的,我一直有个愿望要写一本小说。之后我几个月没有写任何东西。我需 要休息,要恢复平常态,要以此进步。软件开发与此无二。
商业内幕的这篇文章同时还饶有兴趣的发现“女性程序员经常坦白说在遭受骗子综合征的折磨…但越来越多的男性程序员也开始表示深有同感。”20世纪和21世纪工作中的性别问题峰回路转,最 终男性也遇到类似的问题。女性第一次看到了竞争的问题侵扰男性,尤其是在那些传统的以男性为中心的行业。我相信这是生存竞争必然导致的现象,但不应出现在 一个富足而且灵活的社会中。男人们看到女性对工作上非人性的现状的反应,也加入了她们的行列一起表达对现状的不满情绪。随着更多的女性进入到编程行业,她 们给这些男性程序员带来了一种新的旁观者的视角。女性需要去理解她们发现的这些不幸的行业现状是男性程序员以前必须每天面对的、接受的。但事实上程序员们 完全不必如此,这是一种具有强大力量的认识。
不要再让自己精疲力竭,这样不会让你成为更好的程序员。做你爱做的事,爱上更多的兴趣。你将会变的更优秀。