把点连起来:努力与梦想能把你带到哪里

嗨,我叫 Max。而我很幸运。
就在几个月前,我刚从 AngularConnect 回来,在那里做了我今年最后一场演讲。这是欧洲最大的 Angular 大会,参会者超过 1000 人。今年我还在 NgConf——全球最大的 Angular 大会——以及几场规模较小的会议上做过分享。在此之前,我从未在任何大会上演讲过。
我在不到两年前创办的 Angular In Depth,已经成为 Angular 开发者在网上最大的阅读去处。今年我们实现了 300% 的增长,越过了每月 70 万浏览量的关口。一群了不起的人正帮我一起把它建起来,我们很快就会达到每月一百万浏览。在此之前,我从未写过一篇文章。
Angular In Depth 的快速增长,极大地帮助我在 ag-Grid 拿到了一份很棒的开发者布道师工作。这是我人生中第一份让我对每个方面都感到满意的工作。它让我能在 Web 开发和市场营销两条线上同时成长。公司给我时间去经营我的出版物,这对我和 ag-Grid 都有好处。而且最重要的是,这份工作薪水很高。
通过公开演讲、StackOverflow 以及 Angular In Depth 的各项活动,我影响了全球超过 500 万人。 这一切帮助我同时获得了 Google 和 Microsoft 的认可。我成为了 Google Developer Expert 和 Microsoft Most Valuable Professional,这让我与世界各地的技术专家建立了联系。
但有趣的是,不到两年前,我还准备离开科技行业,去寻找自己真正的热情所在。而在那之前我只编程了三年。我甚至不知道有「开发者布道师」这个岗位。乌克兰没有这样的职位。我也从没想过有一天我会在大会上演讲、拥有一个非常受欢迎的博客,并成为别人的激励。 天啊,那时候我连 Twitter 或任何其他社交网络都不用。
我一直对自己想要的人生有一个愿景。我还没到那儿,但正在接近。令人意外的是,我从没想过会是科技行业把我带到那里。我是励志演讲的忠实拥趸,它们在灵魂的暗夜里让我继续前行。我敬佩的 Les Brown 曾说过:「别去操心你要怎么实现梦想。怎么做不关你的事。」人生是个谜。随着它徐徐展开,新的机会会出现。这是一个在机会显现时抓住它们的故事。一个设定通往梦想的目标并把它们实现的故事。以及这一切需要付出什么。
太长不看
我的国家乌克兰以长期处于经济危机而闻名。正因如此,尽管我拼命工作,也从未能让自己过上舒适的生活。但机缘巧合,正是最近这场危机让我在这个行业多留了一段时间,去改善自己的生活。
在我随波逐流的时候,一项名为 Angular 的新技术出现了。它是对 AngularJS 框架的彻底重写。按照前身的流行程度,这项技术潜力巨大,也带来了绝佳的机会。我知道,既然是新东西,任何愿意去填补知识空白的人都会获得先发优势。
这样的机会一直在我们身边,只是我们很少认出它们。我决定专注于深入剖析框架的内部机制。这个决定契合我好奇的天性,同时也被证明是一个可行的竞争优势。没有人在做这件事,所以我产出的信息是独一无二的。
一旦我把目标锁定在这件事上,我几乎什么别的都不做了。 我在全职工作上干 6–8 小时,然后把剩下的时间全都坐在电脑前,试图弄清楚这个框架是怎么运作的。大多数周末也是这样度过的。随着我积累起独特的知识,我在 StackOverflow 上贡献得越来越多。学习 Angular 和回答问题成了占据我大部分空闲时间的活动。剩下的时间分给工作、吃饭、睡觉和我的另一半。
我给自己定了一个目标:拿到 1 万声望。
于是我跑到了路的尽头。到了那儿,我想也许我该跑到镇子的尽头。到了那儿,我又想也许我该跑过整个格林堡县。然后我想,既然都跑了这么远,也许干脆跑过整个伟大的阿拉巴马州。我就是这么做的。——阿甘
达到那个目标花了我大约一年。到了那里,我想也许可以冲 2.5 万。这次大约用了 6 个月。在 18 个月里我给出了超过 700 个回答。然后我想,既然花了这么多时间、学了这么多,为什么不用这些知识开始写博客呢。
于是我就这么做了。我开始写博客。 我努力每周发一篇关于 Angular 内部机制的新文章。我继续在全职工作和写作之间分配时间。起初每月只有 100 次浏览。坚持这个节奏 18 个月后,我写了 50 篇文章,做到了接近每月 30 万浏览。
在这段旅程的中途,我意识到自己想打造最大的 Angular 出版物。这成了我的新目标。我一个人做不到,需要帮助。于是我开始主动寻找新作者,邀请他们把文章发表在 Angular In Depth。 我帮他们做审阅,并让他们接触到 Angular In Depth 的关注者群体。这就是我独特的价值主张。令人意外的是,许多活跃作者选择在 Angular In Depth 发表,因为他们相信这份出版物的使命,并想成为其中一员。
我的一些文章灵感来自我在 YouTube 上看的 Angular 大会。随着越来越多的人读我的文章,我的声誉开始积累。然后我想,既然已经走了这么远,也许干脆申请去世界上最大的几个大会讲讲。演讲经验是我申请 Google Developer Expert 时唯一欠缺的东西。所以我就去做了。而我被选上了。
我和 Justine Musk 怎么看待努力
如今在科技行业里,为了职业成长而奉行极端工作伦理并做出个人牺牲的做法似乎备受谴责。以我的经验,这种态度在大型科技公司的员工中尤为明显,那里鼓励工作与生活的平衡。另一方面,在体育界和创业界,拼命工作、把自己推到极限则被赞颂,甚至被视为唯一选项。也许两边都没错。
我这辈子都在极其拼命地工作。 这确实在我身上留下了代价。我曾数次倦怠。我有慢性的每日头痛和长期疲劳。但老实说,当我回顾自己的人生,想到为了走到今天所经历的一切,我并不后悔。我一直按照自己认为对的方式生活,而不是别人认为对的方式。我坚信这种思维方式得到了回报。
这并不是说我不会对那些逼我如此拼命的处境感到愤怒。也不是说我从没想过把一切放下、悠闲地享受生活。在这些时刻,我常常想:如果条件不同,我还会这么拼吗?比如,如果我更早进入科技行业。比方说 18 岁,而不是 27 岁。或者如果我的国家的科技行业像美国和其他高科技国家那样蓬勃发展。或者如果我受过一流教育、毕业于顶尖大学。或者如果在我学习、掌握实现理想所需技能的那段时间里有人供养我。或者如果我出生在富裕家庭、不必从小就工作。也许我现在已经实现了所有梦想。也许我只需要一半的努力就能到那里。又或者,我根本不会有这些梦想,也不会有实现它们的野心。
你有幸在人生中拥有那些有利条件吗?那很好。也许你不需要这么拼。对我们其余出身不占优势的人来说,努力是唯一的选项。我们大多数人不能说辞职就辞职去追逐热情。我们要付房租。我们要买吃的。我们要买衣服。我们大部分时间必须有份工作。然而,要换工作,我们得具备所需技能,或者做出能展示专业能力的业余项目。培养这些技能需要时间。往往是很多时间。而这些时间只能挤在下班后或周末。而如果你不巧还有改变世界这样的宏大目标,那这种作息就成了你的常态:
我们生活在一个赞颂决心和努力的文化里,但你要明白:这些品质只是在几乎所有人都退场之后,或者在某个更大更强的人把你捞起来又扔回海里之前,让你还留在场上的东西。决心和努力是必要的,没错,但它们是最低要求。也就是说:底线而已。——Justine Musk 谈如何取得非凡的成功
一个人不可能工作那么多小时还能找到时间过完整的生活。你不会有时间去休闲:看电影、参加聚会或者和朋友出去玩。这些是你需要牺牲的东西。你可以做到。但尽量把对健康的影响降到最低:每天锻炼,吃健康的食物,每天至少睡 7 小时。 最终你的健康还是会受损——在这种强度下这是不可避免的——但你造成的损害越小,之后恢复起来就越容易。而如果你的伴侣支持你、认同你对未来的愿景,那你非常幸运。一定要始终留出时间陪伴彼此。
无论你身处什么处境,开始做点什么永远不晚。提升自己、学习新技能、创办公司、改变世界。十年后你会希望自己今天就开始了。我特别喜欢那句中国谚语:「种一棵树最好的时间是二十年前,其次是现在。」
一个逼我学会编程的失败创业
我从没把自己看作程序员。我没有计算机科学背景,我拿的是市场营销硕士学位。五年多以前,我为了学编程注册了 StackOverflow。当时我正在做我的第一个创业项目,帮助人们通过阅读学英语。
想法很简单。我们先编纂一个改编文本的数据库。然后设计一个简单的算法来挑选阅读文本。选择下一篇文本时,我们在数据库里搜索用户词典中的词出现频率最高的那一篇。反复遇见带来更好的记忆留存。
编纂和处理文本的编辑,是我自掏腰包付的钱。但要实现功能,我至少得学会基础的编程。于是我自学了基础的前端和后端语言。那段时间我有一份全职工作,但还得挤出时间学编程、做项目。
大约有两年时间,我每周投入 80–100 小时,靠每晚 5 小时左右的睡眠撑着。 我早上 7 点到办公室,晚上 11 点左右回家。白天我在自己的项目和全职工作的任务之间来回切换。那太疯狂了。这就是我人生中迷上励志演讲的节点。要经历如此高强度、高度专注的生活方式,身边没有一个推着你走的人是根本不可能的。让你相信自己的人。分享你梦想的人。当我听录音时,我真的觉得那些励志演讲者、伟大的运动员和改变者是在直接对我说话。
不幸的是,尽管我倾尽全力,这个项目还是失败了。不过,我花在学习和编程上的所有时间,让我获得了成为 Web 开发者所必需的技能。但我并不打算就此止步。我继续投入大量精力自我教育。
打下地基的 StackOverflow 活动
在整个职业生涯中,我始终尽量每天花至少两小时读书、读博客或读源码。我获得的知识常常让我能接下别人做不了或不愿做的任务,并更快完成它们。
结果我被提拔了几次,最终触到了我们国家的薪资天花板。要突破它,我需要在美国某处找到一份远程的高薪工作。我不希望一家公司雇我只是因为我更便宜。我希望他们雇我是因为我很擅长我做的事。而要证明这一点,我需要扎实的声誉。
当时,我知道能建立这种声誉的唯一网站就是 StackOverflow(SO)。我是 SO 的忠实拥趸,我的很多知识都归功于这个社区。我在各种主题下提过 850 多个问题。但要积累声誉,我必须开始回答问题。达到 1 万声望后,我打算通过 SO 向公司投递简历,拿一份远程工作。
任何试过在 SO 上积累声望的人都知道其中的挑战。尤其是来自既有高声望用户的相当激烈的竞争。他们通常回答更快,答案更详尽。等我想出答案并发布时,已经有好几个答案在收赞了。按这个节奏,就连拿下头 5000 分都要好几年。
读过创业或营销书籍的人都知道,在快速成长的新平台或新技术上更容易获得牵引力。就在那时候,一个叫 Angular 的新框架出现了。因为可用的知识还不够多,这就打开了一个绝佳的机会。我决定专门聚焦这个框架,通过研读源码、弄清内部运作成为专家。然后,把带源码链接的高度技术性回答做成我的招牌。当时除了我在 SO 上认识的朋友 Alexey Zuev,没有人在做这件事。
魔术师守着大众不知道的秘密。我算是某种魔术师,握着关于框架内部机制的秘密。但我不是把它们藏起来,而是把它们公开给开发者的世界。有意思的是,我的一些读者也做了这个类比,开始叫我 Wizard。这个名字就这么跟了我 😃。
我开始每天花大约 5 小时钻研 Angular 源码并在 SO 上回答问题。我的日常和创业那阵子非常像。因为是全职上班,我一大早就到公司,大概 7:30,在其他人来之前有大约 3 小时。我不知道自己是怎么回事,但我喜欢办公室里只有我一个人的感觉。这大概就是为什么我宁愿去办公室做业余项目,也不愿待在家里。我也总是最后一个离开办公室,因为下班后通常还要在这件事上花大约两小时。大多数周末也被这件事占满了。
虽然我在 SO 上最初的目标是积累声望、找一份更高薪的工作,但我的回答帮到了其他开发者这件事本身给了我额外的动力。我真的很喜欢帮助别人。我也喜欢教学。所以每一句「谢谢」都会让我心情变好,给我坚持下去的力气。
渐渐地,我的声望开始积累。大约一年后达到 1 万时,我去看了「Total Reputation」板块,想了解声望等级的分布。结果发现 1 万这个门槛是从上往下数第四个,上面还有 2.5 万、5 万和 10 万。

在 StackOverflow 上,一旦达到 2.5 万,你就拿到了所有可能的权限,比如关闭/重开问题等等。于是我想,为什么不去冲一下呢。达到 2.5 万花了我大约 6 个月。之后我几乎停止回答问题了。但我已经给出的答案还在继续获得浏览和点赞,所以我已经越过了 5 万。这是我声望的增长曲线:

虽然我达成了在 SO 上的声望目标,但我一个面试都没拿到。我通过这个网站向众多公司投递,却连回复都没收到过。所以作为求职工具,StackOverflow 对我并不奏效。但在花了那么多时间钻研源码、回答问题之后,我学到了太多东西。所有这些知识和答案都是写文章的完美素材。于是我琢磨,是不是该把它们都写成一篇博客,甚至几篇。
我一直想写东西,只是不知道写什么。而现在我有了一份已被社区验证过有兴趣的选题清单。教学是我的热情所在,而写博客是一种能触及远比教室里能聚集的人多得多的教学方式。于是我开始写。
把对卓越的执着与写博客结合起来
写作既难又耗时。和我此前的生活方式一样,我的清晨和夜晚被研究和写作占满。因为不再花时间在 SO 上回答问题,我每天大约有 5 小时用于写作,再加上周末。我其实并没有想好要写多少篇文章。我只是给自己定了个目标:每周写一篇新文章。
写完头 10 篇文章、有了第一批一千名关注者后,我决定创办一个出版物。我给它取名 Angular In Depth。大多数创业者都说他们是出于需要才创造了某样东西。他们需要一个尚不存在的东西。在我这里大概确实如此。当时并没有一个能让你了解 Angular 框架内部机制的出版物。我设想的是这样一个出版物:你能在其中拿到所有必要的信息,不仅足以成为专家,还足以开始向框架贡献代码。我打算发表关于最难概念的文章,并混以实现细节。
建立读者群是件苦差事,最近几年开始写博客的人都知道。你不能只写几篇文章就指望人们自己来。事实上,在如今这个内容过载的时代,你的文章甚至有可能根本没人看见。我没有任何粉丝基础,所以选了 Medium,它承诺会帮忙推广。我最早的文章浏览量很少,几乎没有粉丝。差不多是这样:

Medium 帮了一点忙,但我显然必须自己开始推广文章。为了提高曝光,我决定把文章发到 HackerNoon 和 FreeCodeCamp 这类已有的出版物上。这些出版物当时有数万关注者。我在 Hackernoon 上发文相当顺利,而让文章进 freeCodeCamp 却花了我大约三个月。我给 Quincy Larson 写了 10 封邮件、在推特上 @ 他 5 次,然后又发了几条私信。大多数都没有回音。Quincy 当时是唯一的联系人,所以我只能猜想他每天要收到多少邮件和推文。最后他发表了我的文章。坚持不懈绝对是成功的一大要素。
然而,这些拥有庞大关注者的出版物并没有带来我期待的助推。主要是因为关注它们的开发者用的是 Angular 之外的框架,对读 Angular 的内容并不太感兴趣。花一两周写一篇文章,然后只有寥寥数人读,是相当令人沮丧的。这也是我创办 Angular In Depth 的另一个原因。我想要一个专门聚焦 Angular 的出版物,以及对这个框架感兴趣的读者。
创办出版物之后,我开始了疯狂推广。我把文章链接放到任何看起来合适的地方。我在黑暗面走得太远了 😄。我在 SO 上给出的几乎每个回答都会带上一到多篇我写的文章的链接。我也会在评论里加上文章链接。这是我在一个被浏览近 30 万次的最热门 Angular 问题下的评论示例:

这是我正文里塞了一堆文章链接的回答:

我会专门去回答那些我知道能引用自己某篇文章的问题。我也会从最热门问题列表里挑现成的问题来回答。如果问题足够宽泛而我没有相应主题的文章,我就写一篇。这就是我的外链建设策略。
除此之外,为了提高 Angular In Depth 的品牌知名度,我甚至把 StackOverflow 上的用户名改成了 AngularInDepth.com。我还会把文章发到 Reddit 和 Hacker News。

我文章的很大一部分流量来自 Google 搜索。有些文章排进了搜索结果前三。我猜这是因为我在 SO 上创建了大量 do-follow 链接。这类链接正是搜索引擎用来排名的。现有的多数内容平台都不允许这种链接。你在推文里放链接,那是 no-follow。你从 Medium 的一篇文章链到另一篇,那是 no-follow。你在 StackOverflow 上链接自己的文章,通常也是 no-follow。然而,一旦某个回答获得了某个未公开数量的赞,该回答里的链接就变成了 do-follow。 我大多数回答都有几十个赞。我相信正是这一点显著帮助了排名。
我尝试的另一条路,是请 Medium 或 Twitter 上拥有大量关注者的人提及我的文章。这对我不太奏效。至少在我有了一定声誉之前不奏效。史蒂夫·乔布斯曾说:「我从没遇到过在我开口求助时不愿帮我的人。」我在这些平台上的体验不一样。出于某种原因,拥有数万关注者的影响者通常不会转发陌生人的文章。
也许是因为他们关注者众多,会保护自己的声誉。帮别人推广内容,本质上是把自己的名字与那份内容绑定。你得核实内容是不是真的好,而这要花时间。给出详细反馈更耗时间。但真正让人沮丧的是,他们往往连回复都没有。也许他们收到的请求太多。也许他们在这些平台上并不活跃。
给人发推文、发邮件却得不到回应,确实很让人沮丧。但这不意味着你不该主动联系、开口求助。关键是坚持。像马云、John Paul DeJoria 这样的成功领袖,都不断强调承受拒绝的能力有多重要。这是生活的一部分。所以我一直在尝试,也在途中开始遇到愿意帮忙的人。
我在 Uri Shaked 的文章下留言、并在线上认识之后,和他成了好朋友。是他鼓励我继续把 Angular In Depth 做大,并开始去大会演讲。他让我看到了一项技术的社区面向。正是在和他谈过之后,我下定决心有朝一日要成为开发者布道师。他也是第一个在 Twitter 上帮我推广文章的人,是 Angular In Depth 的第一位贡献者。他把我介绍给了 Shai Reznik,后者给了我一些关于大会演讲的最佳建议。
在 StackOverflow 上,我认识了 Alexey Zuev,他帮我弄清了 Angular 的实现细节,也帮忙推广我的回答。我很意外地收到 Asim Hussain 的消息,说他「很喜欢我在做的事和我写的文章」。每个作者都希望自己的作品被欣赏。Asim 的这条消息鼓励我写得更加勤奋。他是第一个帮我打磨演讲提案的人,也回答了我大量关于社区的问题。我还非常幸运地在最近一次伦敦之行中见到了 Dan Abramov。他审读了我的文章,并帮忙推广。
我一直想产出格外优秀的内容。有些文章我写了整整几个月。我常常需要花大量时间读书或读源码,才能想清楚怎么讲清一个主题。我特别希望别人是因为深入而独到的内容而知道我。我也许有点完美主义,但我不会让对失败的恐惧阻止我发表一篇文章。无论做什么,我都想确保自己已经尽了全力。正如 Vince Lombardi 所说,完美无法企及,但追逐完美的过程中我们能抓住卓越。我相信,如果人们知道你在拼尽全力、做到最好,他们会更愿意帮你。
最终,这份出版物开始起飞。下面这张图展示了过去两年我的文章数据:

如你所见,增长相当可观,仅去年一年就有大约 300%。而这还只是我一个人的文章。到今天为止,我写了 67 篇。不过,Angular In Depth 已经不再是我的个人博客了。它现在是一群优秀开发者的社区,下一章我会讲这个转变是怎么发生的。
现在回头看,很清楚:我在 StackOverflow 上的活动对我决定开始写博客有重大影响。而且通过我在回答里放的链接,它也为 Angular In Depth 带来了可观的流量。它还帮我提升了写作能力。我每天都在练习把话写清楚、把思路组织得容易跟随。

这和人生中成功的运作方式很像。就像竹子,头 4 年几乎不怎么长。然后,突然在第 5 年,它们长得飞快,最终成为地球上最高的植物之一。你每天投入努力,每天学新东西,每天练一项新技能。它们在哪里、什么时候派上用场,也许不会马上显现。但我向你保证:一旦你拥有了这些技能,随着人生展开,你会找到用上它们的机会。正如史蒂夫·乔布斯所说,你得相信这些点会在未来以某种方式连起来。
和朋友一起打造最大的出版物
即便有了这些增长,我仍然不确定 Angular In Depth 该往哪儿走。增长主要靠我的文章推动,但在持续一年多的写作马拉松之后,我相当疲惫了。我记得我跟 Uri Shaked 聊过这份出版物获得的牵引力,也说了我不知道自己还能不能保持这个节奏。Uri 鼓励我继续把它做下去。他认为 Angular In Depth 在 Angular 社区里已经是个有辨识度的品牌,停下来不再经营它是不明智的。受此激励,我给自己定了一个新的宏大目标:把 Angular In Depth 做成最大的 Angular 出版物。
当时我在 Twitter 上表达了这个想法。
我很清楚自己一个人做不到。我需要别人的帮助。偶尔我会发表一些私下联系我的其他作者的文章,但要继续增长,Angular In Depth 需要一群能定期产出内容的人。
我开始在 Medium 上寻找好文章,并询问作者是否愿意把它们发表在 Angular In Depth。作者通常想在触达面最大的出版物上发表。随着 Angular In Depth 不断成长、关注者数量超过 1 万,作者们也更愿意在这里发表了。
不过在早期、Angular In Depth 还很小的时候,作者们来这里发表主要是因为已有文章的质量。有些人关注 Angular In Depth 已久,并用其中的材料解决工作中的技术难题。他们相信 Angular In Depth 的使命,并希望它成真。当你在建造新东西时,你需要的正是这种人。对你试图解决的问题充满热忱的人。
我感谢 Uri Shaked 和 Nicholas Jamieson 从一开始、在出版物还不出名的时候就相信 Angular In Depth。他们是有影响力的社区成员,他们的贡献极大地帮助确立了出版物的公信力。之后,我开始在 Twitter 上收到想在 Angular In Depth 发文的开发者的消息。其中两位是 Tim Deschryver 和 Nate Lapinski,他们后来成了最活跃的两位作者和我们内部小组的成员。我还收到了 Todd Palmer 的邮件,他今天不仅写文章,还帮我们的非母语作者处理语法和措辞。他成了我们的第一位内部编辑。
在此之前,我都是一对一地、而且主要在 Twitter 上与 Angular In Depth 的作者沟通。我想要一个地方,让所有 Angular In Depth 的作者能讨论选题、互相审稿。在那里,作者可以在文章被数千名开发者阅读之前先拿到反馈。他们可以从更有经验的作者那里得到建议。但我想做的不止写作。我喜欢帮助别人,看着他们在个人和职业上成长。我设想的是一个每位成员都在帮别人实现这种成长的社区。
在那之前几个月,我被加进了 GDE 的 Slack 聊天,所有 GDE 都在那里交流。我借用了这个点子,为 Angular In Depth 的成员建了一个 Slack 频道。最先加入的是 Tim Deschryver、Nicholas Jamieson、Uri Shaked、Todd Palmer 和 Alex Okrushko,他们是 Angular In Depth 最活跃的成员。我还邀请了帮我弄清一些技术实现细节的 Jia Li 和 Alexey Zuev。
随着时间推移,超过 20 人加入了这个聊天。当然,有些成员并不特别活跃。但看到越来越多的人参与讨论,我真的很高兴。社区的魔力不是在成员只是收到审稿意见时发生的。它发生在这些人开始彼此交谈、讨论各种话题的时候。这种东西无法被创造或强求。它是有机长出来的。而我每天都在 Angular In Depth 社区里目睹这种魔力发生。
有意思的是,当我问 AiD 的活跃成员是什么让他们开始贡献时,大多数人说,AiD 内容的质量是主导因素。它启发了他们。它唤起了成为其中一员的渴望。让自己的文章与 Angular In Depth 其他知名成员的文章并列发表,会给他们归属感,带来喜悦和满足。
但当然,每个作者内心深处也想要认可。花几周写出一篇文章,却只看到几个人读,是相当令人泄气的。反过来,知道有一个强大的社区会阅读每篇文章并从中受益,是极好的动力来源。我们现在有超过 1.6 万名关注者,他们会定期阅读 Angular In Depth 上发表的新文章。
我仍在学习如何从零建立社区。看起来你必须先自己拥有扎实的声誉,人们才会聚拢到你身边。你需要用个人成就去激励他们。然后你必须帮助这些人成长。 你必须为人们提供价值。我在拼命地这么做。我做技术审阅、分享观点、推广他们的文章,并鼓励他们在 Web 开发社区里更活跃。他们因此被人知道,这往往会带来工作上的晋升或有利可图的副业项目。
我自己也从 Angular In Depth 社区里获得了大量情感价值。这是一群技术过硬、对 Web 开发充满热情的工程师。这是我共事过的最好的志同道合的团队。他们有野心,渴求知识。他们愿意做出成长和产生影响所必需的牺牲。某种意义上,他们是我的灵魂伴侣。他们支持我,激励我继续走下去。
Angular In Depth 增长得非常快。仅仅一年前,我们只有 6000 名关注者和略超 50 万的总浏览量。至今仍难以置信,但这已经是我们现在每个月的浏览量。 而总浏览量是 500 万!但我们还有很多工作要做。明年我们的目标是每月一百万浏览,全年总计 10,000,000 次浏览。

我对这些数字非常满意。不过更让我高兴的是,今天由我以外的 Angular In Depth 成员撰写的文章,占了全部浏览量的大约一半。我感谢每一位选择在 Angular In Depth 发表作品的人。同样有趣的是,85 万「阅读分钟数」相当于超过 1.5 年的阅读时间。换句话说,这相当于约 70 个人全职在读这些内容。
公开演讲——通往被人知晓的最后一关
我现在努力回想自己是怎么、在什么时候决定开始去大会演讲的。似乎并没有某一件具体的事导向这个决定。那是多种因素的组合。
和我聊得很多的 Uri Shaked 与 Asim Hussain 都是公开演讲者。我把大会的演讲当作文章灵感的来源。我有时会看到有人在 Twitter 上发自己的演讲经历。于是我决定,这是我想做的事。
有意思的是,Mark Schaefer 在他的书《Known》中提出,公开演讲是成为知名者的最快通道。它帮你与真实的听众建立连接。而现场演讲比任何其他方式都更能点燃认知,赋予可信度与权威。大会是绝佳的社交场合。在那里你可以与志同道合者、思想领袖和领域专家进行有趣的交谈。通过这些面对面的互动,你可以强化与线上(比如 Twitter 上)认识的人的关系。去参加大会之前,我通常会发推文说一声,并提前安排好几场会面。
不过有时候,你会遇到完全没料到会在那儿碰见的人。比如在 FrameworkSummit 上我认识了 Patrick,他是 YCombinator 的毕业生之一。他的创业公司 tipe.io 赞助了那场大会,是 Joe Eames 把我介绍给他的。他给了我许多关于 YCombinator 和我未来创业的建议。
人们常常是在写完一本书之后才成为公开演讲者。但在科技圈,我们有太多的 meetup,成为演讲者要容易得多,尤其是有些 meetup 会录制并以高质量视频发布所有分享。我个人在上大会讲之前并没有在 meetup 上讲过。我也没写过书,不过将来仍想写。尽管如此,我在没有任何演讲经验的情况下,被我申请的所有大会都接受了。我相信这里我的写博客和人脉帮了大忙。如果说 Angular In Depth 的成功建立在我 StackOverflow 上的活动之上,那么我成功的演讲申请就建立在通过 Angular In Depth 积累的声誉之上。当我决定申请 NgVikings 和 NgConf 时,我在 Angular 社区里已经有了确立的声誉。我的一些文章排在搜索结果前三,我在每份申请里都不忘提到这一点。
在申请之前先认识组织者非常重要。他们能给出极其有用的建议,甚至帮你审阅演讲提案。而单是和他们聊聊,就会给你信心和动力。
Joe Eames、Pete Bacon Darwin 和 Maxim Salnikov 在我成为讲者的路上扮演了重要角色。由 Maxim 组织的 NgVikings 是第一个接受我演讲的大会。Joe 主办 ng-conf,全球最大的 Angular 大会。一年前的除夕夜,他在审阅我的演讲提案,好让我有最大的入选机会。我入选了。而 Pete 是 AngularConnect 的组织者。今年他也帮我审了提案。
我明白主动联系别人可能很难。不是所有人都性格外向。你会遭遇拒绝。但别让这阻止你。用好你得到的每一个机会。比如,我就是这样认识 Joe Eames 的。我当时是一档叫 Adventures in Angular 的节目的嘉宾,Joe 是嘉宾主持之一。那大约是一年前。当时我才刚开始考虑演讲,社区里几乎谁都不认识。节目结束后大家都走了,只剩 Joe。我问他能不能留一下,我们聊几句。我想问几个关于社区的问题。为了开启话题,我问他平时做什么。他列举了自己的职务,然后顺带提了一句他是 ng-conf 的联合组织者。多幸运啊!我立刻问他能不能帮我看看演讲提案。命运常常就是这么运作的。你无法预知何时何地会遇见推你一把的人。Joe 甚至热心到在除夕夜还帮我审了一些提案!
一旦确认被接受,我就开始准备。成为一名有效的公开演讲者可能需要多年练习。我没有那些年头,所以我试图用海量的准备时间来弥补。就浏览量和点赞数来看,我的演讲被社区接受得很好。
我通常花大约 2–3 个完整的星期准备一场演讲。这包括研究、拟定演示提纲、写出文字稿并录下自己。然后我听效果如何,再做修改。接着重新录一遍演示,发给开发者朋友们审阅。拿到反馈后,我再做更多调整。最后,我把演讲背下来,排练大约 15–20 遍。我把一切都记进脑子里,这样就不必浪费时间去想接下来要说什么。
Sarah Drasner 会一直练她的讲稿,直到自己受不了自己的声音为止。然后再多练一会儿。
作为公开演讲者,我还有很长的路要走。我开始练口音和英语流利度。我打算上表演课来改善舞台表现。我想学会在演讲中放松、多微笑。我还需要克服对犯语法错误的恐惧,在演讲里加入更多即兴。有些大会,比如 ng-conf,提供了与专业演讲教练合作的绝佳机会。上一次我用上了这个机会,希望今年还能有机会和教练合作。
拿到我人生中第一份让我快乐的工作
还记得那个促使我在 StackOverflow 上发力的目标——拿到英国或美国的远程工作吗?大约半年前,我终于实现了它。今年初夏,我开始在 ag-Grid 担任开发者布道师。
我坚信,能拿到这份工作,是我这两年做的其他一切促成的。而且我可以毫不夸张地说,这是我待过的最好的公司。它规模相对较小,而这实际上带来了不少好处。
第一,这意味着我的工作对公司业绩有直接且可见的影响。这是我向 Asim Hussain 请教这个岗位时他反复强调的一点。看到我的工作带来的曝光量、访客数和销售线索数字,真的让我快乐。
第二,这意味着我与公司创始人 Niall Crosby 紧密合作。同样,这听起来也许有点夸张,但他是我有过的最好的老板。我从他身上学到了太多。他知识渊博且诚实。这也意味着我可以对他坦诚。我很享受我们关于如何从零开始建立公司的讨论,他给了我新的人生视角。他甚至帮我审阅了这篇文章。第一次交谈时,Niall 说:如果你的梦想没有吓到你,那它们就还不够大。我一直是个大梦想家,这正是我立刻喜欢上他的地方。
第三,这份工作让我能并行发展多个领域的技能,同时做自己的项目。我常把在 ag-Grid 的工作看作一种合作关系。在这里,我的主要工作是让人们了解我们的产品。这是市场营销,我的老本行。就我的工作而言,这种认知度是通过写作和讲技术话题实现的。而这是在把自己发展成技术专家。所以你能看到我如何同时发展营销和技术两方面的能力。更了不起的是,Niall 支持我把文章发到 Angular In Depth 和 React-In-Depth 出版物上。这样做对我、对 Angular In Depth 社区、对公司都有好处。相信我,雇主持这种立场是极具激励性的。我常常连周末和深夜都愿意干活。我很好奇这种条件能否在其他工作中复制。说不定我很快就会开始更多地思考这件事。
那我是怎么拿到这个职位的呢? 随着 Angular In Depth 变得相当受欢迎,公司开始联系我,希望投一篇客座文章。其中之一就是 ag-Grid。像往常一样,我提出开个会详细讨论。会上我也问了 ag-Grid 是否愿意赞助 Angular In Depth,或者他们是不是需要一个像我这样的人为他们写文章。会后我发了一封邮件,附上出版物的数据和我能在哪些方面帮到 ag-Grid 的想法。
Niall 在周末翻看了我的文章,用他的话说,他非常喜欢。这里又一次是我对卓越的执着为我带来了好处。但更让他印象深刻的是我在 Angular In Depth 上做的工作以及它取得的势头。他愿意讨论我们可能的合作。他希望我为 ag-Grid 做同样的事。虽然这个目标后来有所变化,但我确信 Angular In Depth 及其快速增长是 Niall 对我的提议感兴趣的原因之一。
我说出了自己的薪资期望,相当高。Niall 认为团队应当是本地的,在公司早期阶段远程办公不是选项。而如果真要走远程,就应当按当地薪资付酬。这看起来很公平。但我的想法是:我要做的是别人做不了的工作,我在哪儿工作其实并不重要。最终,来回发了几封邮件之后,我们想出了一个有趣的方案,把对 Angular In Depth 的赞助和奖金结合起来,让我能拿到想要的薪水。至此,我终于达成了近两年前开始在 StackOverflow 上发力时给自己定下的财务目标。

我这两年的旅程到此告一段落。 接下来去哪儿?我有无限的可能。而且我对未来比两年前刚踏上这段旅程时更加乐观。
如果我在科技领域继续写作和演讲,也许有一天我会成为某种思想领袖或影响者。若走这条路,我一定想写一本关于 Web 开发的书。我大概还会在乌克兰办几场大会。或者我会开始做教练。这是我真正的热情所在。看到别人成长才是给我带来真正快乐的事。我已经开始每月和开发者做一对一的辅导。这对我还是个很新的领域,但我很乐观。
理想情况下,我想找到一种把辅导他人的热情与技术结合起来的方式。在第一次创业失败之后,我一直在想我的下一个创业。几乎没有什么是第一次尝试就成的。Niall 曾告诉我,ag-Grid 是他第 5 次尝试建立公司。我相信我能把 Angular In Depth 变成某种教育平台。我还不知道它会是什么样子、能做什么。也许会像 Pluralsight,但重心放在文字教育而非视频上。也许会像带导师制的 StackOverflow。
这个事业可能会像我第一次尝试那样失败。正如我在本文中所展示的,你无法预测未来,也无法预测你的努力会把你带向何方。但试过之后感觉要好得多。知道你给过它一次机会。冒过那样的险。试着用你的人生做点大事。那不是浪费。
对事情会出错的恐惧一直在我脑子里。训练过 Mike Tyson 的 Cus D’Amato 说过,懦夫与英雄的区别在于他们做了什么,而不在于他们感受到什么。两者都害怕。所以我会不顾内心的恐惧继续做事,并希望结果会好。但首先,我们都必须相信未来会更好。正如史蒂夫·乔布斯所说,我们必须相信某种东西——直觉、命运、生活、因果,什么都行。即便失败,我也确信自己会从这段经历中学到很多,并在生活给我下一个机会时用上这些知识。
而它也可能成功。 如今我成功的机会更大了,因为自上次尝试以来我学到了太多。我在 ag-Grid 学到了 SEO 和内容营销的重要性。我在 Angular In Depth 有了一个极其有才华的开发者社区,他们能帮我把这件事做起来。我有无数阅读 Angular In Depth 的开发者的支持。他们也许能帮我验证想法。
我写这篇文章不是为了给出一份在科技社区里成名或获得影响力的蓝图。Peter Thiel 说,下一个比尔·盖茨不会去做操作系统。下一个拉里·佩奇不会去做搜索引擎。下一个马克·扎克伯格不会去做社交网络公司。如果你在复制这些人,你就没有在向他们学习。我想讲我的故事,是为了激励你不断提升自己,并在任何领域寻找应用知识与技能的机会。
但无论你选择在生活中做什么,都需要记住几件事。你需要相信自己。 在我的职业生涯中,我曾多次被告知我不是个好程序员、自私自利、是个糟糕的团队负责人。但事实似乎并非如此。仅仅两年间,我就通过文章、StackOverflow 回答、大会演讲或私下交流,直接或间接地帮助并激励了很多人。我也成功地在 Angular In Depth 组建了一支了不起的工程师团队。
你需要对自己的人生有一个愿景,并相信你此刻正在经历的一切会帮你抵达那里。你需要读书,那会给你关于人生和商业的新视角。你需要力求达到卓越、脱颖而出,去做别人不愿做的事。你需要努力工作,并试着在过程中找到乐趣。你需要找到会帮助你、激励你的人,也不要因为被人拒绝而气馁。你需要对自己所做的事保持好奇。并且接受运气在人类事业中的作用,同时心怀信念:只要你投入足够的努力,运气会来找你。