程序员的乐趣从哪来?编程能给我带来乐趣吗?

“宅男”、“理工男”往往是略带贬义的词汇;胡子N久不刮,头发乱糟糟,衣服凌乱混搭,也是十分糟糕的形象。但是我一直对这样的生活充满了向往。

2008年,我看了电视剧《防火墙5788》,郭京东在里面扮演一位“功力超群”的程序员。我至今还记得里面的一个画面,郭京东的女友来找他,但是按了门铃许久也没有得到回应。原来郭京东当时正在为一个数学难题发愁,他当时在哪呢?在家里的餐桌底下,一手扶着半米宽高的小黑板,一手拿着粉笔验算。后来女方做了什么动作惊动了他,或者是砸门或者是破门而入。总之导致郭京东慌乱的爬出桌底,先是头磕到了桌角,然后又被桌腿办了一跤。最后很狼狈的出现在女方面前。当时我在想,原来这就是程序员呀,感觉也不错!于是我的高考志愿都报了计算机,且没有勾选“调剂”。

在大学四年,我也的确感觉到了编程的乐趣,无论是成功的独立编写出第一个“hello world”还是参加数学建模等活动。每一次编写出新的东西,都有一种自豪一种成就感。

但是参加工作之后,编程再也没有给我类似的感觉了。解决一个Bug,实现一个feature,没有给我带来任何成就感。我无法确定导致这一现象的原因是那些,但一直确实有两个问题困惑着我。

一是,我似乎只是一个码农 。老板经常强调,程序员思维设计出来的软件,用户是没法用的。所以当UI与测试提出一个又一个feature和设想的时候,我们常常无力反驳。我常常有这种感觉,我与他们的方向正好是相反的。我致力于让程序简单(抵制需求蔓延),他们致力于让程序复杂(更人性化)。两个方向都没有错,但是在摩擦中,我方似乎一直是弱势地位。北京的SOHO写字楼设计的都不错,设计师或许会很自豪的向别人介绍“这座SOHO是我设计的”,他会因此而充满激情的工作;但是“农民工”不会为曾经给这座写字楼搬过砖而自豪(毕竟这座建筑不是鸟巢,就像我们的软件也不是为阿波罗号11飞船编写的),也不会因为以后他多么美观而“投入”的工作。工作当中,我感觉自己的工作状态是这样:UI与测试来一个要求,我就实现一个要求,来一个要求,我就实现一个要求 —— “像工人”一般站在流水线上工作。好的工程师不会只想搬砖,而好的程序员也不会只想着做码农。

二是,长时间的加班,工作似乎就是我“编程”与生活的全部。九点上班 - 十点下班,再算上路上的时间,似乎刚好剩下八个小时用来睡觉。工作时我常常有一种欲望,拿起鼠标砸向显示器,举起键盘磕向桌角 —— 这得多他么的解气呀!每次回家看我妈,她总是说我:“XX(我的小名),别老玩手机,家里有电脑,屏大看着过瘾还不伤眼。”每次我都是类似的回答:“妈,求你了,我真的不想摸键盘!“

或许也应该离开这家公司,去其他地方看一看了。

幸亏这样的状态得到了些许的缓解。在一次逛论坛中,我发现认识到一个词汇“无鼠标编程”,让我们脱离鼠标进行编程和工作,以提高工作效率。我认为这是对的,然后开始实践。

首先,找一个合适的编辑器,MyEclipse实在是太大太复杂了,用它你就脱离不了鼠标,我首先尝试使用UE编程,后来换成了Vim。但是启动tomcat,更新代码(SVN、git)你还得用鼠标,于是我开始学习他们的API、学习DOS脚本,编写自己的系统指令,以便快速的实现自己的目的,如跳转到几个常用的目录,一次性的编译代码及重启tomcat。然后发现用Vim,实在是太累小拇指了,于是发现键盘布局不知一种方式,DVORAK就是另一种传说更高效的方式,但是我为什么不自己研究一种,适合Java编程的键盘布局的;然后知道了Poker键盘。Window下编程还是感觉有些约束,为什么不尝试一下Linux呢,那个多酷!现在一有时间我就会折腾linux。

到了现在,无鼠标编程,我还是没有实现,也没有了最初那么强烈的欲望了;新的键盘布局也放弃了,因为个性化的键盘布局不适合团队开发。虽然这个过程中有如此多的无用功,但是,最后发现,我对编程的热情又回来了。我不在对它感到厌烦!

2015年12月,加拿大男孩用自己组装热气球将戒指送到3万米高空,因此求婚成功。我相信,他的业余时间一定是对组装热气球等类似的事情感兴趣,并投入了时间,不然他也不会有这样的灵感和能力——用热气球求婚。或许这才是保持兴趣的正确方式,我的工作是编程,而在业余,我也有一个相关的兴趣,组装电脑、玩键盘、参加开源项目等等。不要让工作成为编程的全部,否则我们可能恨上编程。

但是新的问题来了,上面的乐趣是捣腾硬件和编程环境带来的,编程本身能给我带来什么乐趣。为什么上学时能感觉到的乐趣在工作时就消失了?

原文地址:https://www.cnblogs.com/KuTeng/p/5145435.html