本文来自Youtube频道TechLead的一段视频,作者是前Google和前Facebook技术总监,视频中分享了他擅长编程的原因,XR技术研习社对此进行了编译。
在这篇文章里,我将告诉你为什么我擅长写代码(即使,额,被Facebook开除)。
我看到很多所谓的“程序员”努力学习如何写代码,尝试开发一些网站或其它什么东西,他们东一榔头西一棒子,掩饰着他们因冒充者综合征而感到的恐慌。
如你所知,我还比较擅长摄影。拿摄影来说,摄影师的摄影技巧并不是让他与众不同的原因。
使摄影师变得出众的原因,也同样能够使程序员变得更好。
首先是一致性。无论你处于何种状况,都必须始终如一地拍摄出好照片,这就像被付费去给新人拍摄婚礼照一样。
每个参加婚礼的人都可以为新娘和新郎拍一两张好照片。但是很难一遍又一遍地做到这一点,这需要经验。对于编程而言,具有广度和深度的知识以及语言可以帮助到你。
而大多数程序员仅仅认识到这里,他们认为这就是全部,但并不止于此。
你可能会注意到,有很多摄影爱好者去过非洲,他们拍摄了成千上万的狮子和长颈鹿等野生动物的照片。
这些照片都被保存在硬盘上,从没有被人看到过,即使这些镜头可能会获奖。而让市场检验你的工作成果是使你成为专业人士的重要途径。
我有时在旅途中拍一些好看的风景或人物照片,然后将我的照片与《国家地理》上获奖的照片进行比较,然而并没有太多区别。
作品都差不多,但区别是他们的被选上了。
因为这些照片的背后都有故事。他们会找作家为摄影作品写一些文案,让故事变得吸引人。
我意识到,对于很多照片来说,获奖的原因是主题而不是这张照片本身。他们抓住了最重要的东西——一个完整的故事。这是一种产品。
所以在我看来,对于编程能力的讨论不能仅限于在技术的范畴内进行,因为仅凭技术不足以说明你合格或不合格。
你可能整天都在车库里写代码,你可能在内存管理或性能优化方面做得很好,但世界在发展,到了某个时期,这些技能将变得毫无用处,没有人会在乎。而且不经过检验,你永远不会知道自己是否真的做得很好。
因此,使你擅长写代码或擅长于此的任何事情,是对技能的验证。是你对世界产生的影响,是创业者思维。正是这种因素赋予了代码所有的荣耀:一个人能够创造事物并影响世界。
对于那些躲在车库里的人,在一些小工具或某些集成电路上进行优化的人来说,他们从未对世界产生任何影响。
我认识一个人(他叫 James),那是在70年代,他整天都在阁楼上写代码——实际上是在打字机上(那是我们当时使用的语言),他一整天都是在写代码,三餐吃意大利面,然后从体内回收体液,将水重新煮成更多意大利面,通过太阳能供电——一个完全自循环的系统。
没有人知道他今天是否还活着,但是他对世界基本上没有什么影响,这就像当今大多数工程师的情况一样。
从这个层面考虑,写代码实际上只是一种爱好或激情。
但是你需要将爱好与商业分开。工程师的问题在于,他们通常是问题解决者,但是他们不一定能够解决真正的问题。
就像你给他们一个魔方,即使没有目标,他们也会尝试找出答案。你向他们展示区块链或增强现实技术,虽然他们完全不了解这些技术能够做什么,但十年后,他们回来跟你说,他们掌握了增强现实开发技术,虽然还是不知道这些技术的真正用途。
这就是关于编程的现实。
我相信随着时间的推移,编程会变得越来越困难并且会发生巨大改变。
在以前,你要做的就是将网站或者APP做好,然后发布,然后就可以开始做营销了。
你可能会在一夜之间获得成功,如果你在App Store上线几个Demo,那么第二天你会发现自己已经是一家公司的CTO了,周围还有无数的员工。你会领导一个团队,一切会非常顺利,没有人会质疑你那些作为程序员的经验。
这差不多就是过去十年技术繁荣时的景象—— 你有网站、有iOS应用、有安卓应用、有移动网站和游戏、有Facebook应用程序和游戏,你真正需要做的仅仅是写代码。你只要将这些东西放在那里,它就会立即成功。
而现在,游戏规则发生了变化。正如我之前提到的那样,事实是,我认为仅仅会编程已不够了。
因为编程带来的许多营销方面的红利现在都消失了。
我们看到博客几乎已经死了,应用商店的竞争也如此激烈,世界上每天都会推出数十万个新网站。很多人甚至不需要知道如何编程,他们只是使用一些网站生成器就够了。
而且,由于Web应用已整合到一些大平台上,因此创建新网站变得没有了太大意义。
比如,人们大多只是在使用微信、微博、优酷、知乎、Reddit等等。Reddit的最大问题是,如果你想将任何内容商业化——如果它是商业性的——Reddit就不允许这样做。因此,Reddit实际上并不是真正的商业流量来源,这也是我不特别推荐Reddit的原因之一,因为,我相信生活中某些美好的事物并不是免费的(别跟我说什么“生命中最美好的事都是免费的”之类的鸡汤),而通常情况下,人们会为这样的事情收费。你永远不会在Reddit上找到人们可能会要求花钱的真正高质量的内容。
我想说的是,将优秀工程师与伟大工程师区分开来的是市场的检验,是去看你的工作所产生的影响。
我看到很多人在GitHub上发布开源项目、创建框架和库。但是,如果他们不能推销它,如果不能让其他人使用它,那么他们就不会被认为是一位伟大的工程师。
相反,如果有人能够在此基础上,在框架或产品背后通过营销能力吸引大量用户使用他们的产品,那么他们就可以被认为是一位伟大的工程师。
他们会获得很多机会,并且当项目规模足够大时,这就已经是一个了不起的创业项目了。
在当今竞争这么激烈的世界中,要想发挥影响力,工程师需要更加偏重产品和营销能力,这样的话,他们的工作才会有出路。
比如像我,我有一个YouTube大号,有一个Instagram账号——@techleadhd有很多有趣的图片和故事,还有推特,有techinterviewpro.com。所有这些就是让我如此出色的原因,也是让我比其他许多工程师更优秀的原因。但是,我相信还有很多比我更棒的工程师。
我在摄影中学到的一件有趣的事情是,相比宣称你有可靠的技术,说你正运营一项专业的业务,可以让人们更加信赖你。
同样重要的是,要有备用设备,如果你的相机出现故障,你需要它们能够顶上,以确保这一天能够顺利完工,那么在这里说的就是关于可靠性了,一旦你承诺客户将在他们的好日子里赶到约定地点,你就要为此负责,而不是让人感到随时有可能取消。
然后,即使在拍摄完毕以后,你仍需要提供所有其他支持——及时处理照片,将所有照片冲印成册,用精美的包装交付给客户,必要的售后跟进等。这是成为专业摄影师的全部工作。
以上就是我想要说的,总结一下,利用你的技能,将其转化为产品,然后将其推向市场,这就是你发挥影响力的方式,也是彰显(而不是宣称)你的能力的最直接最有效的方法之一。
我喜欢这样一句名言:“当你善于某事时,你会告诉所有人;当你精于某事时,所有人会告诉你。”
我对此非常受用。