程序员的自我修养
上QQ阅读APP看书,第一时间看更新

四、每个程序员都应该了解的一件事

我曾经接触过一些IT高管及行业的技术大牛,当私下聊起他们是如何变得如此出类拔萃时,他们大多会以自嘲但又略带得意的语气来讲述他们的那些独门秘籍。

我的文档写得特别好。

我的口才很好,总是能成功说服别人。

我的PPT做得非常棒,是公司里数一数二的。

我写过几篇很受欢迎的技术文章。

我热爱开源文化,并在社区里很有名气。

……

我发现,这些普通人眼中的大神们很少会提及自己的技术有多牛,反而更多地把功劳归于那些看似与技术毫无关系的能力。大家千万别误以为他们只是一群华而不实,靠着一些小伎俩往上爬的小人。完全不是,而且我敢向你保证,他们中的每一个人在担任程序员或负责其他技术工作时,同样都有着非常出色的技术能力和优秀的工作表现。但为什么在他们眼中这些还不足以使他们达到现在的高度,反而是那些不起眼的写文档、做PPT、演讲等这些技能使他们能够在一次次竞争中胜出,并成为了我们中的佼佼者呢?

其实在我看来,他们所谓的这些秘籍,都可以归纳为一种能力,那就是自我营销。只有具备了这个能力,你才能脱颖而出获得成功,这一点对程序员同样适用。

我的这个观点可能会令很多程序员感到有些沮丧,因为和曾经的我一样,他们热爱写代码,并愿意以此作为终生的事业。甚至有些人是由于自己内向的性格才选择当程序员的,但你需要明白,你写的代码可能毫无用处,直到:

•人们理解你在做什么。

•人们对你所做的事情感兴趣。

•人们为你所做的感到兴奋和激动。

大多数刚走出校门的年轻程序员们绝不会把“自我营销”作为一项自己需要具备的技能来关注和学习。他们往往一头扎进自己所热爱的某一个技术领域里,不断追求着更高的技术水平。我个人其实非常推崇具有这种精神的年轻程序员,正如我经常提到的10000小时定律,那些能够在某一领域获得成功的人都需要花费至少10000小时的努力,而对于普通人来说,你的努力也的确与你所能获得的成就是成正比的。既然这样,那为什么我们还需要学会自我营销呢?答案是:自我营销往往能够有效地放大你所做的努力,并且在你成功的道路上起到催化剂的作用。尽早地获得成功对于我们这一代程序员来说异常关键,因为这个世界上有许多与你一样努力的人,但有些人在最佳的时间点获得了成功,而另一些人虽然也通过努力达到了相同的能力,但错过了那个正确的时间点,从而走上了一条完全不同的道路。

我看过很多这样的例子。刚进公司时,一群年轻的程序员能力水平都差不多,他们也都非常努力,但他们中的一些人能够通过出色的自我展示,获得老板、同事及客户的信任,他们也自然获得了更好的升职机会,做上了团队领导等角色,从此走上了事业的坦途。而与他一起进来的那些程序员可能还在那里敲着代码,日复一日地做着比较基础的工作,并时不时地抱怨着:他的技术还不如我呢,他凭什么就能升职呢?

可见,一名程序员如果能够尽早意识到自我营销的重要性,并有意识地锻炼和运用这种能力,那将对你的事业产生有益的帮助。

那么对于程序员们来说,又有哪些能够提升自我营销能力的方法呢?下面便是我的一些建议。

1.读与技术无关的书

我刚毕业后的两年时间里买过很多技术类书籍,这帮我打下了良好的技术基础,后来我就不再买技术书了,因为我发现学习技术的最好方式是在互联网上,那里有最新的教程、文档和资源。因此,我建议只买一些经典的技术书籍来帮你打基础,然后从网上去学习一切新的东西。

我尤其鼓励大家去读那些与技术无关的书籍。程序员不善于自我营销,其中一个重要原因是他们自身所掌握的知识体系太过于单一,很难跳出技术范畴与人交流,并引起别人的兴趣和认同。你可以读任何历史、经济、人文、艺术类的书籍,它们都能够帮助你丰富自己的知识和思想,使你变得更加全面和完善,而这反过来,又能帮助你建立信心。

当然,你还可以读一些优秀的人物传记,从他们身上你可以获得成功或失败的经验,并且完善你自己的人格。我是在自学设计的那段时间里读了《史蒂夫·乔布斯传》的,我从没见过哪个人像乔布斯那样,对自己所从事的事业和创造的产品达到几近疯狂的地步。他的这种追求完美,对产品的设计和质量的苛求态度,都让我印象深刻,并对我日后的工作行事产生了积极的影响。

2.会写文档

我见过很多程序员,他们对自己写的代码非常认真负责,经常反复进行检查和测试。但每当让他们写文档或作一些PPT介绍时,他们却显得很为难甚至反感,并且写出来的文档也往往质量很差。

我也当过程序员,因此很能理解他们的想法。当一名程序员写完整段代码,完成一项工作后,他们对于代码所实现的逻辑是最清楚的。对于他们来说,写文档完全就是为别人而写,对自己没有一点好处,纯粹是在浪费时间。而且,对大多数程序员来说,给机器写代码要比给人写文档容易得多。

而我想说的是,恰恰相反,文档可能是你完成代码编写后一个最佳的展示机会。当代码实现了它的功能之后,就很少有人会再去看它,除非它出错了。但文档被阅读的概率却大得多。从一个文档中,我们可以看到关于作者的很多东西,思路是否缜密,逻辑性是否强,设计方案是否优秀,等等。可以说,文档质量的高低是衡量一名程序员是否优秀的重要标准之一。即使你离开了公司,你所写的文档很可能还会保留很长时间,被很多后来者阅读,而你的声誉也是在这一次次的阅读中构建的。优秀的文档能够让人们对你产生信任和好感,相反,质量差的文档则会使你的声誉受损。

3.学会包装

说到包装,人们往往会产生一种不好的感觉,把它与虚伪、假的东西联系在一起。其实,我所说的包装应该包含两层意思:

•知道什么是美的(优秀的)。

•精心制作。

这个想法来自于最近参加的一次保监会关于偿付能力改革的会议,整个方案是由普华永道提供咨询和实施的。会上他们的高级经理通过一个长达114页的PPT介绍了项目的背景、技术细节、实施方案等信息,整个PPT制作得非常精良,内容组织也很有条理,让人一目了然,顿时使大家对整个项目团队产生了很好的印象。可以说普华永道通过一个精心制作的PPT完成了一次非常有效的自我营销。

在日常工作中,我经常发现身边的程序员很难写出美观整洁的文档或PPT来。这一方面与我们从小缺乏美学教育有关,而更重要的往往是他们并没有真正用心去制作它。其实,我们可以通过寻找一些优秀的文档示例来学习如何制作优秀的文档,这其实并不困难。知道什么是优秀的,然后像写你的代码一样用心去制作就行了。

4.尝试多讲

讲话一直是很多程序员的硬伤,当然这也曾是我的硬伤。根据我的经验,你需要跨过以下两个障碍:

•敢说。

•让说的和你想的一致。

我经常看到一些程序员,他们平时跟熟悉的人都能很好地交流,而一旦到了会议上,特别是有老板或客户在场的情况下,就变得难于开口。程序员的性格特点大多是内敛含蓄的,在一些正式的场合他们会显得对自己缺乏信心。这需要通过平时多锻炼来克服,你应该在还处于职业生涯的初级阶段的时候,就开始有意识地锻炼讲话的能力,特别是在一些不那么重要的会议上,一方面你说出一些不那么准确地意见时,不会产生太严重的后果,另一方面你又可以很好地锻炼自己的表达能力。程序员遇到的另一个问题是,他们所讲的常常不能真实反映自己所想表达的意思。通过创造机会多讲,你才能更好地掌握使用语言的能力,通过不断的总结,你很快就可以非常流畅地表达自己的想法了。

5.建立社会化联系

一个完全封闭的程序员一定不是一个优秀的程序员。优秀的程序员往往愿意并善于与他人交流,分享自己的经验和想法,并在交流中获得有益的东西。这样做有很多好处:

•通过这些社会化的活动能够使你的想法和技能更加完善。

•能够使你建立权威,你的技术博客,在一些社区上的技术问题解答,以及你的开源项目等都会使人认为你是这方面的专家。

•同样,你也可以获得他人的帮助,来解决棘手的难题。

•你可以找到与你有相同兴趣的人,一起做有趣的事情。

•你的社交网络将因此扩大,这意味着你所获得的机会将会更多。

……

我本人就是这方面的受益者,我刚毕业时在一家建筑软件公司工作,做的是Delphi开发,但我很快意识到互联网才是未来的方向,因此我自学了Java,并开始以Java软件工程师为目标,去寻找工作。但由于没有任何项目经验,我经常碰壁。一次偶然的机会,我看到BEA Dev2Dev(BEA被Oracle收购后,这个网站已经关闭了)有接受技术类文章投稿的信息,我马上连续写了两篇技术自学类的文章,并很顺利地通过了审稿,不久便在Dev2Dev发布了。我将我的这两篇文章链接写入了我的简历中,之后,我很明显地感觉到让我参加面试的电话明显比之前多了起来了,我也很快通过了一家外资软件公司的面试,成了一名Java工程师,从此走上了事后看来更理想的职业道路。

最后,我想告诉你的是,在这样一个时代,程序员是一个充满可能性的职业,你可能成为下一个马云,甚至可能是乔布斯(马云和乔布斯都有一个共同点,那就是他们很早就掌握了自我营销的能力)。如果,你并不想仅仅是一名程序员,那么你只需要在潜意识中埋下一颗“自我营销”的种子,让它跟随着你慢慢成长,相信我,你的未来将会因此产生很大的不同。