一个理想主义者的启示
我是一个学习计算机专业的理想主义者,我的研究兴趣为网络存储与分布式系统,我对很多的优秀软件的设计极为钦佩,我梦想着有一天我自己设计了一个系统,她有着近乎完美的架构、良好的性能和容错性、她能满足用户的一切需求,我和我优秀的同事们一起为实现这个系统编写了一行行优雅的代码,并进行测试和部署。
在实验室,我每天阅读计算机方面的书籍,只要我觉得会对我有帮助的我就会读,因为我觉得,只有打好了坚实的基础,才能设计并实现完美的系统。为了这个目标,我学习Linux内核来了解操作系统如何管理进程、文件系统的设计与实现原理,了解内存管理,了解设备驱动等等;我阅读优秀的论文,学习前辈们的研究成果,了解GFS、HDFS、Ceph、HayStack、Dynamo、BigTable、Spyglass的设计等等;偶尔我还会专注一些业界的动态,EMC的业绩上升、Oracle收购了Sun、淘宝的TFS、Tair开源了等等。
然而到现在,我运用我所学的知识做了什么呢,除了将一个已有的设计做了小小的改动重写了几千行代码、帮助一个师兄往一个内核模块中添加了几百行代码,拼凑出了一个所谓的发明专利,我又做了什么呢?一遍一遍的学习内核的实现原理了;一本一本的消灭我从网上购来的所谓优秀书籍;一次一次的推翻自己心血来潮的设计。除此之外,我没有任何的成果。
我一直为理想而奋斗着,甚至有的时候骑车、睡觉的时候我都会想一想系统怎么样设计才好,现有系统那些地方值得借鉴,这些系统的优势是靠什么实现的,我应该怎么实现呢?就这样,一个个方案在尚未完成就被自己推翻,觉得这里不好、那里不好,离理想实在是相距甚远,即使实现了又有什么用呢。
慢慢的,我发现了理想与现实的差别。我发现原来即使写了一个有几千几万个bug的软件也能满足专家的要求;一个有无数错别字、格式乱七八糟的文档也能让评审看得点头;一个静态的显示界面也能让领导大加赞赏。
慢慢的,我发现了理想主义者的悲哀。我发现如果再继续当一个理想主义者,自己将被看做是一个光说不练、整天只知道自怨自艾的人,不可能实现任何理想。
慢慢的,我发现行动比想法重要。一件事情你做了,可能做得很费时费力、而且效果不是很好、但你却比那个心中有最佳解决方案但一直没有行动的人强得多。
行动起来吧,这样才会离理想越来越近,哪怕每次前进的距离只有一厘米、一毫米、甚至是一纳米。