CatCoding

Twitter 实习生 George Hotz

2022-11-29

经过一轮又一轮的裁员,Twitter 大批骨干离职。

有人戏称:现在 Twitter 办公室里只剩下两个最“硬核”的程序员了。

这两个人中一个自然是老板 Elon Musk。

另外一个则是 33 岁的 George Hotz,一个周薪 2000 美元的 Twitter 实习生。

这位实习生的年龄着实大了一点儿,并且缺乏前端相关的经验,不得不从了解 JavaScript 和 GraphQL 开始,从头一点点学习 Twitter 使用的编程语言 Java 和 Scala,他甚至在网络上直播自己如何弄明白 Twitter 是如何运行的

这样的人怎么可能入得了 Elon Musk 的法眼,逆行加入 Twitter 呢?

原因很简单,George Hotz 是一位超级技术大牛,网络上随处可见他的神奇经历。

2007 年 8 月 21 日,当时 17 岁的 George Hotz 在自己博客宣布成功破解 iPhone,手机不再局限于 AT&T 网络,而是支持其他 GSM 网络,并在博客上发布了详细的解锁过程和视频,最终这部破解的 iPhone 换了一部跑车和三部新的 iPhone,让他在黑客圈子里声名鹊起。

2009 年,他又开始解锁 PlayStation 3,后来被 Sony 起诉,最终因为黑客圈最大组织 Anonymous 施予的强大压力下和 Hotz 和解。

随后几年他去了高校潜心研究机器学习。

2014 年 7 月,他加入 Google 的 Project Zero,短暂工作后退出。

2015 年,专注于驾驶辅助技术,在网上免费发布了他的自主驾驶代码“openpilot”,声称可以用最小的成本做出个更好的自动驾驶技术。

这给特斯拉带来了巨大威胁,Elon Musk 在 2015 年就想“招安”他,让他来特斯拉做自动驾驶,后来因为种种原因谈崩,George Hotz 自己成立了一个做自动驾驶的公司 comma.ai,因此成为了 Tesla 的对手。前段时间他还在点评 Tesla 发布会时,表示对其机器人产品的不屑。

George Hotz 肯定是不缺工作也不缺钱的人,为什么要在这个时候加入 Twitter 呢?

可能是他感受到 Elon Musk 和他是一类人,他喜欢混乱和挑战,他最近一个多月才开始频繁发推,并且开始体会到社交网络的乐趣。

也可能因为他没经过 996 的毒打,很想体验一把鸡血的高强度推特工作。当那封名为 A fork in the Road 的美国版奋斗者邮件发出后,Geroge Hotz 评论到:

This is the attitude that builds incredible things. Let all the people who don’t desire greatness leave.

随后表示自己不想远程办公,想去旧金山进行全职的实习生工作,正好 Elon Musk 也认为远程工作不靠谱:

另外,他正在从自己创办的公司中退出,似乎是对 自动驾驶失去了兴趣 。当然这并不意味着 comma.ai 失败了,而是他觉得自己对运营一个更为庞大的公司没有兴趣:

It’s no longer a race car, it’s a boat. And steering a boat requires too much damn planning and patience.

所以在这个空档期找一些没做过的事情试试,就是这么任性。在一个代码直播中,他自称多年前也做过一些老派的互联网技术,那时候主要还是用 PHP,现在这些互联网相关的技术他之前没怎么实战过,后台开发、前端、微服务,对些他来说都是没折腾过的,所以称之为 For the glory of the technical challenge

至于有的人对此表示不理解,他的回复是优秀的程序员想干什么就干什么,不需要理由:

作为顶尖黑客,geohot 在互联网上有很多轶事。他如何做到如此出色和有创造力,普通人能从他身上学到些什么?

最近几个月,我在业余时间会去看 George Hotz 的 油管视频 ,感觉非常有趣,也有收获。他在直播里通常会把自己的思路自言自语说出来,而且会时不时停下来谈谈对一些事情的看法,有时候还会哼点小曲。他也是一个非常直率的人,说话风趣,说话语速比较快,很有节奏感,有时候可当作 rap 来听,我们还能锻炼英语听力。

强烈推荐你也去观摩一把,看看顶尖程序员如何工作的。我认为这大概是 Learn by doing 和 Learn in Public 最好的实践。他每次通常会定一个最小目标,然后连续数小时的持续学习,比如:

  • 在直播中开发小巧的、类似 pytorch 的深度学习框架 geohot/tinygrad
  • 在没看过 Clang 和 LLVM 的情况下去尝试实现 C 语言的一个新的语法逻辑
  • 实现一个和自己下国际象棋的 AI 程序
  • 看论文,调试各种机器学习的模型,玩 diffusion

顶尖程序员并不是人坐下代码就噼里啪啦出来了,而是也可能和普通人一样,需要不断地 Google 和翻阅文档,一样可能会混淆行和列,从教程中拷贝粘贴代码,看着报错信息饶头皱眉 wtf,还有程序跑出来正确结果那种孩童般的欢呼雀跃。

这种观感就如同一些观众评论到:

That exact same thing happens to me EVERYTIME. Nice to see someone 10 times smarter than me do the same.

It’s encouraging to see that someone as ridiculously genius as George Hotz still has to Google Python and even struggles with the way stuff works in his program. It definitely made me realize I have just been focusing on memorizing too much stuff when it comes to programming. I just need to make more projects and have more fun doing them! Thanks Geohot!

Dude has an IQ of > 9000

Confuses rows and columns like a normal human Finally,

I feel less shitty now.

当然有的时候你也能看到他速度非常快,敲代码就如同电影里那样 (之前用 Vi,最近改用 VsCode 了):

this guy programs like how hollywood thinks people program

他看文档经常扫一样就知道个大概,看起来就像是凭借直觉在工作,这就是积累下来的自学能力,可以快速迁移到任何项目上,他解释到 Object level skills will die out, metalevel skills will be useful,比如学 Data Science, 我们到底是学了某个公司用的工具,还是去学统计学?前者是 object level 的,后者是 meta level 的。

在这些直播中,我觉得一些比较有趣的观点和片段是:

  • 不折腾编辑器和多屏幕,这些不影响效率, Give me a Macbook Air and a corner。
  • 工作中你也许用不到数学,但学习数学和物理给人一种 Knowing the secrets 的感受,那些给你教条的家长、老师他们可能没你懂世界是如何运行的。
  • 不喜欢远程办公,这让工作感觉像度假,喜欢去公司和同事一起当面工作。
  • 为什么 30 多岁来还去当实习生,薪酬 2000 美金一周 what the fuck, who cares?
  • 我经常搜索一些看起来简单的问题,在别人看来我就是个新手,这不重要,别担心别人的看法 ,关注自己的能力,而不是外在的印象。因为印象和人设是很容易改变的,而能力才是最重要的。
  • 开源代码比内部代码有用,很多公司会把好的代码开源出来 ,而那些内部用的代码质量其实很低。
  • 开发过程中喜欢把主要的步骤用 plain text 写下来。
  • 如何学习编程,想一个自己感兴趣的项目,直接开干,Learn by doing,看编程视频没法学会编程。
  • 推荐的编程语言:Assembly, C, Python, 外加 Haskell 和 Verilog, 你不用对 Assembly 非常精通,但只有懂了 Assembly 才懂计算机底层在干什么,才知道 C 的精妙之处,懂了 C 之后才知道 Python 帮你做了什么,这三门语言是抽象的不同层次。学一下 Haskell 可以帮助你理解编程语言的设计,学些 Verilog 让你知道硬件如何运行。
  • C++ 太复杂,Golang 是给学不会 C++ 的 Google 程序员用的🤣
  • 我们处于编程 2.0 时代,Machine learning 就像是数据驱动编程。
  • 什么是编程,面向新手讲解 what is programming?
  • 相信技术奇异点,两篇改变自己人生的文章,推荐 Staring Into The SingularityUnqualified Reservations by Mencius Moldbug

通过观看这些视频,我感受到他和普通人的明显区别是:极其强烈的好奇心和空杯心态,强大的学习能力和持续专注的能力,这也许是最值得我们学习的。而他去 Twitter 折腾,正如他在博客上写的那样:

I hope that there’s people in the world who get joy from actually doing the thing and not just solving the problem.

公号同步更新,欢迎关注👻