我为什么擅长编程

本文来自Youtube频道TechLead的一段视频,作者是前Google和前Facebook技术总监,视频中分享了他擅长编程的原因,XR技术研习社对此进行了编译。

1199677-a811c74da6daace8.jpg

在这篇文章里,我将告诉你为什么我擅长写代码(即使,额,被Facebook开除)。

我看到很多所谓的“程序员”努力学习如何写代码,尝试开发一些网站或其它什么东西,他们东一榔头西一棒子,掩饰着他们因冒充者综合征而感到的恐慌。

如你所知,我还比较擅长摄影。拿摄影来说,摄影师的摄影技巧并不是让他与众不同的原因。

使摄影师变得出众的原因,也同样能够使程序员变得更好。

首先是一致性。无论你处于何种状况,都必须始终如一地拍摄出好照片,这就像被付费去给新人拍摄婚礼照一样。

每个参加婚礼的人都可以为新娘和新郎拍一两张好照片。但是很难一遍又一遍地做到这一点,这需要经验。对于编程而言,具有广度和深度的知识以及语言可以帮助到你。

而大多数程序员仅仅认识到这里,他们认为这就是全部,但并不止于此。

你可能会注意到,有很多摄影爱好者去过非洲,他们拍摄了成千上万的狮子和长颈鹿等野生动物的照片。

这些照片都被保存在硬盘上,从没有被人看到过,即使这些镜头可能会获奖。而让市场检验你的工作成果是使你成为专业人士的重要途径。

我有时在旅途中拍一些好看的风景或人物照片,然后将我的照片与《国家地理》上获奖的照片进行比较,然而并没有太多区别。

作品都差不多,但区别是他们的被选上了。

因为这些照片的背后都有故事。他们会找作家为摄影作品写一些文案,让故事变得吸引人。

我意识到,对于很多照片来说,获奖的原因是主题而不是这张照片本身。他们抓住了最重要的东西——一个完整的故事。这是一种产品。

所以在我看来,对于编程能力的讨论不能仅限于在技术的范畴内进行,因为仅凭技术不足以说明你合格或不合格。

你可能整天都在车库里写代码,你可能在内存管理或性能优化方面做得很好,但世界在发展,到了某个时期,这些技能将变得毫无用处,没有人会在乎。而且不经过检验,你永远不会知道自己是否真的做得很好。

因此,使你擅长写代码或擅长于此的任何事情,是对技能的验证。是你对世界产生的影响,是创业者思维。正是这种因素赋予了代码所有的荣耀:一个人能够创造事物并影响世界。

对于那些躲在车库里的人,在一些小工具或某些集成电路上进行优化的人来说,他们从未对世界产生任何影响。

我认识一个人(他叫 James),那是在70年代,他整天都在阁楼上写代码——实际上是在打字机上(那是我们当时使用的语言),他一整天都是在写代码,三餐吃意大利面,然后从体内回收体液,将水重新煮成更多意大利面,通过太阳能供电——一个完全自循环的系统。

没有人知道他今天是否还活着,但是他对世界基本上没有什么影响,这就像当今大多数工程师的情况一样。

从这个层面考虑,写代码实际上只是一种爱好或激情。

但是你需要将爱好与商业分开。工程师的问题在于,他们通常是问题解决者,但是他们不一定能够解决真正的问题。

就像你给他们一个魔方,即使没有目标,他们也会尝试找出答案。你向他们展示区块链或增强现实技术,虽然他们完全不了解这些技术能够做什么,但十年后,他们回来跟你说,他们掌握了增强现实开发技术,虽然还是不知道这些技术的真正用途。

这就是关于编程的现实。

我相信随着时间的推移,编程会变得越来越困难并且会发生巨大改变。

在以前,你要做的就是将网站或者APP做好,然后发布,然后就可以开始做营销了。

你可能会在一夜之间获得成功,如果你在App Store上线几个Demo,那么第二天你会发现自己已经是一家公司的CTO了,周围还有无数的员工。你会领导一个团队,一切会非常顺利,没有人会质疑你那些作为程序员的经验。

这差不多就是过去十年技术繁荣时的景象—— 你有网站、有iOS应用、有安卓应用、有移动网站和游戏、有Facebook应用程序和游戏,你真正需要做的仅仅是写代码。你只要将这些东西放在那里,它就会立即成功。

而现在,游戏规则发生了变化。正如我之前提到的那样,事实是,我认为仅仅会编程已不够了。

因为编程带来的许多营销方面的红利现在都消失了。

我们看到博客几乎已经死了,应用商店的竞争也如此激烈,世界上每天都会推出数十万个新网站。很多人甚至不需要知道如何编程,他们只是使用一些网站生成器就够了。

而且,由于Web应用已整合到一些大平台上,因此创建新网站变得没有了太大意义。

比如,人们大多只是在使用微信、微博、优酷、知乎、Reddit等等。Reddit的最大问题是,如果你想将任何内容商业化——如果它是商业性的——Reddit就不允许这样做。因此,Reddit实际上并不是真正的商业流量来源,这也是我不特别推荐Reddit的原因之一,因为,我相信生活中某些美好的事物并不是免费的(别跟我说什么“生命中最美好的事都是免费的”之类的鸡汤),而通常情况下,人们会为这样的事情收费。你永远不会在Reddit上找到人们可能会要求花钱的真正高质量的内容。

我想说的是,将优秀工程师与伟大工程师区分开来的是市场的检验,是去看你的工作所产生的影响。

我看到很多人在GitHub上发布开源项目、创建框架和库。但是,如果他们不能推销它,如果不能让其他人使用它,那么他们就不会被认为是一位伟大的工程师。

相反,如果有人能够在此基础上,在框架或产品背后通过营销能力吸引大量用户使用他们的产品,那么他们就可以被认为是一位伟大的工程师。

他们会获得很多机会,并且当项目规模足够大时,这就已经是一个了不起的创业项目了。

在当今竞争这么激烈的世界中,要想发挥影响力,工程师需要更加偏重产品和营销能力,这样的话,他们的工作才会有出路。

比如像我,我有一个YouTube大号,有一个Instagram账号——@techleadhd有很多有趣的图片和故事,还有推特,有techinterviewpro.com。所有这些就是让我如此出色的原因,也是让我比其他许多工程师更优秀的原因。但是,我相信还有很多比我更棒的工程师。

我在摄影中学到的一件有趣的事情是,相比宣称你有可靠的技术,说你正运营一项专业的业务,可以让人们更加信赖你。

同样重要的是,要有备用设备,如果你的相机出现故障,你需要它们能够顶上,以确保这一天能够顺利完工,那么在这里说的就是关于可靠性了,一旦你承诺客户将在他们的好日子里赶到约定地点,你就要为此负责,而不是让人感到随时有可能取消。

然后,即使在拍摄完毕以后,你仍需要提供所有其他支持——及时处理照片,将所有照片冲印成册,用精美的包装交付给客户,必要的售后跟进等。这是成为专业摄影师的全部工作。

以上就是我想要说的,总结一下,利用你的技能,将其转化为产品,然后将其推向市场,这就是你发挥影响力的方式,也是彰显(而不是宣称)你的能力的最直接最有效的方法之一。

我喜欢这样一句名言:“当你善于某事时,你会告诉所有人;当你精于某事时,所有人会告诉你。”

我对此非常受用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 很难说出哪一种编程语言是最好的,因为这取决于你的目标和需要解决的问题.不同的编程语言适用于不同的场景,有些语言擅长于快速开发,有些则擅长于性能优化. 例如,如果你希望开发网站或者桌面应用程序,那么 Python,Java,C# 和 JavaScript 等语言可能是不错的选择.如果你希望开发移动应用程序,那么 Java 和 Swift 等语言可能是不错的选择.如果你希望开发游戏,那么 C++ 和 Unity 等语言可能是不错的选择. 因此,在选择编程语言时,你应该考虑你的目标,以及你希望解决的问题.最好的编程语言就是最适合你的目标和需求的编程语言. ### 回答2: 最好的编程语言这个问题没有一个确定的答案,因为最好的编程语言是根据使用场景和个人喜好而定的。 首先,不同的编程语言适用于不同的应用领域。例如,C和C++是底层编程语言,更适合开发操作系统和嵌入式系统;Java和C#是面向对象的语言,适用于开发大型应用程序;Python是一种简洁易读的语言,适合快速开发原型和科学计算等任务。因此,最好的编程语言取决于你想要开发什么类型的应用。 其次,个人的编程经验和偏好也会影响最好的编程语言的选择。对于有经验的程序员来说,他们可能已经掌握了某种语言,并了解其优点和缺点,因此会倾向于选择他们熟悉且喜欢的编程语言。此外,编程语言的易用性和学习曲线也是一个考虑因素,有些人可能希望选择一个较为简单易懂的语言。 最后,编程语言的社区和资源也是选择最好的编程语言时需要考虑的因素之一。一些流行的编程语言拥有庞大的社区和丰富的资源,例如JavaScript和Python,这意味着在遇到困难时可以更容易地获得帮助和支持。 总之,最好的编程语言是因人而异的。根据应用场景、个人经验、偏好以及社区和资源等因素综合考虑,选择最适合自己的编程语言才是最好的选择。 ### 回答3: 这是一个非常主观的问题,因为每个编程语言都有其独特的优势和适用场景。以下是几种流行的编程语言,并简要介绍它们的特点: 1. Java:Java是一种面向对象的编程语言,具有平台无关性和强大的生态系统。它被广泛用于开发跨平台的企业级应用和安卓应用。 2. Python:Python是一种简洁易读的编程语言,有着广泛的库和工具支持。它适用于数据分析、人工智能和Web开发等领域。 3. JavaScript:JavaScript是一种用于前端和后端开发的脚本语言,广泛应用于网页交互、动态内容和移动应用程序开发。 4. C++:C++是一种高效率的编程语言,被广泛应用于游戏开发、系统级编程和嵌入式设备等领域。 5. C#:C#是一种优秀的面向对象编程语言,主要用于开发微软平台上的应用程序和游戏。 6. Swift:Swift是苹果公司推出的编程语言,用于开发iOS和macOS应用程序,具有简洁、安全和高效的特点。 无论选择哪种编程语言,最重要的是根据具体的项目需求和个人的喜好来进行选择。最好的编程语言是那种能让开发者高效、舒适地实现自己目标的语言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XR技术研习社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值