程序人生--雷军
程序人生
雷军
如果程序人生是条路,这条路太漫长。
我学计算机非常偶然。一个好朋友上大学时选择了计算机系,为了和这个朋友有更多的交流机会,我也选择了计算机系,就这样跨出了程序人生的第一步。大学毕业后,我选择了创造WPS奇迹的金山公司, 开始了我作为程序员的职业生涯。从开始写程序到现在也快十年了,写过的程序也算不少。我的第一个作品是BITLOK加密工具,到现在也有八年时间。
如今,虽然我已不算一个纯粹的程序员,但我仍然怀念那段日子。从那些年的风风雨雨中走过来,多少有些体会,最大的体会就是这条路太漫长。电脑里的世界很大,程序员是活在自己想象的王国里我没有奢望大家把写程序和文学创作相提并论,但其中的苦楚也不是一个普通用户能够体味到的。为了写好一个程序,我们度过多少不眠的夜晚,耽误了多少次美餐。有个朋友如此评价的,“写程序简直是在自杀,巨费精力巨费脑子巨累”。但还是有很多人不畏其苦,前仆后继,由此可见其中的无穷魅力。我刚接触电脑就发现电脑的妙处,电脑远没有人那么复杂。如果你的程序写得好,你就可以和电脑处好关系,就可以指挥电脑干你想干的事。这个时候你是十足的主宰。每每你坐在电脑面前,你就是在你的王国里巡行。电脑里的世界很大,程序员是活在自己想象的王国里。你可以想象到电脑里细微到每一个字节、每一个比特位的东西。你通过电脑可以实现你的设想,帮助你解决不少的问题。这样的日子简直就是天堂般的日子,很多人就这样爱上了电脑。虽然没打算一生只干这一件事,但我愿意干上一辈子 。
电脑进入我国的时间也不短,但真正大规模开始使用,还是从八五年PC进入国内市场开始的,因此国内真正写电脑程序的人最长也就写了十几年(不知道是否还有这样的人),国内开发的主力是三十五岁以下的年轻人。不少人认为程序员如同红粉佳人般地容易衰老,最多干到三十五岁就可以收山换环境了,脑子也差不多该歇歇了,体力也不支了。并认为写程序是年轻人的事情,到了一定岁数,估计没什么人再当程序员了。确实,刚开始从事编程时,总是意气风发,觉得自己没有什么不能做的(现在还能听到很多年轻人发出如此豪言壮语)。那时我也想先吃点苦,到了三十就别干了。年长一点后,尤其是当我们真正接触国外那些杰出的程序员后,发现他们都有十多年的开发经验,这才感到自己的无知。一个人大学毕业就二十一二岁,真正懂了开发就已经二十五了,接着就是人生琐事。如果三十岁就放弃的话,我们就不用选择程序人生的道路。美国和台湾开发以三十、四十多岁的人为主,虽然也不少年轻人做了不少好东西,但决大多数的产品出自那些有丰富开发经验的程序员之手。毕业后从事编程,写程序已不仅仅是爱好,而是成了一辈子的工作。开始会有个阶段整天不知道写些什么东西,觉得特别没劲,找不到感觉,特别灰心。后来才明白,只有全身心地投入,写程序才会有意思。
虽然我没有打算一生只干编程这一件事,但我爱这个工作,我愿意干上一辈子。用一生来编程序是一件既容易又困难的事。如果碌碌无为,为交差写点程序,这样写两辈子的人都有。但如果想全身心地写程序,写十年就不是一件容易的事。现在我不少朋友都洗手不干了,有时我也想“用什么电脑,Windows外的世界不是也很大吗?”。 但面对电脑的时候会立刻顿悟:电脑还是自己最擅长干的事,也是最顺手的事。成为高级程序员不是一个程序员追求的最终目标。有的人学习编程技术,是把高级程序员作为追求的目标,甚至是终身的奋斗目标。后来参与了真正的商品化软件开发后,反而困惑了,茫然了。可以说,一个人只要有韧性和灵性,有机会接触并学习电脑的编程技术,就会成为一个不错的程序员。刚开始写程序的时候,学得多的人写得好,到了后来,大家都上了一个层次,谁写的好只取决于这个人是否细心、有韧性、有灵性。掌握多一点或少一点,很快就能补上。成为一个高级程序员并不是件很困难的事。当我上学的时候,高级程序员也曾是我的目标,我希望我的技术能得到别人的承认。后来发现无论多么高级的程序员都没用,关键是你是否能够出想法出产品,你的劳动是否能被社会承认,能为社会创造财富。成为高级程序员绝对不是一个程序员追求的目标。
编程不仅仅是技术,也还是艺术。有人认为程序员没有什么了不起,不过是一种熟练工种而已;也有人把编程说成是艺术创作,捧上天。这两种意见争论比较激烈,甚至可以说针锋相对。我们换个工种来看,石匠应该是熟练工种,跟艺术似乎沾不上边。但正是这些石匠,给我们留下多少文物古迹,如乐山大佛、莫高窟等等。应该说这些石匠给我们留下了无穷的文化财富。我认为编程的工作和石匠比较相似,有很多是技术活甚至是体力活,但编写优秀软件却非易事。熟练工种也好,艺术创作也好,这两种想法都有片面性,编程应该说两种属性都有,编程不仅仅是技术,也是艺术。有句俗话,已经被大家嚼烂了,但是我还是很欣赏它:熟能生巧,巧能生精。什么工作不是从生疏到熟练,最终发展成为自己一生的追求和理想的呢?一般人不会认为搞美术创作是“熟练工作”,但是一个画家在学画的时候,不可能没有一个从临摹到创作的过程。没有谁天生是天才。
现代软件工业已具相当规模,很多软件的完成需要的是大兵团作战。一名普通程序员接受编写某一模块的任务后,往往只是写代码,发挥的余地很小。在大项目中,很多程序员只能了解到和自己所编模块相当的很局部的细节,另外还受到开发环境的限制,真的很难体会到自己在从事“艺术”创造。更多的时候是感到自己在从事重体力劳动,有的时候还担心自己苦苦参与的这个项目究竟有没有意义,是不是在同类产品中有竞争力,会不会开发出来以后就因为硬件的发展、操作系统的换代而过时…… 编程是技术活,才有可能大规模进行,才会有软件工程的理论。也正是编程具备艺术创作的特点,我们的生活中才会有如此多的好软件产品。大家一起出力的事情很多,但是不能说规模效应中共同完成的作品就一定是熟练工作的结果。写一个程序需要付出脑力和体力,当我——我们——几个群体完成一个程序之后,在那些真正为这个程序付出劳动、流下汗水的人们眼里,看到的自己的作品,那就是艺术品啊!编程,我还能说点什么呢?不论是种平淡的熟练工作,还是高雅的艺术创作,这些并不重要,重要的是“我独爱你” ……
注:谨以此文献给所有热爱编程的兄弟们,只要心中还有梦,奋斗就永不停止!