We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode #174 How to Survive in Tech When Everything's Changing w/ 21-year Veteran Dev Joe Attardi

#174 How to Survive in Tech When Everything's Changing w/ 21-year Veteran Dev Joe Attardi

2025/5/30
logo of podcast freeCodeCamp Podcast

freeCodeCamp Podcast

AI Deep Dive AI Chapters Transcript
People
J
Joe Attardi
Q
Quincy Larson
Topics
Joe Attardi: 我对创业和管理职位不感兴趣,因为我更喜欢专注于技术工作。我尝试过追求创业,但发现自己缺乏必要的技能和兴趣。因此,我决定专注于提高我的技术技能,并保持作为一名技术专家的就业能力。我喜欢作为一名个人贡献者(IC),专注于解决工程问题,而不是管理他人。虽然有些人认为随着年龄的增长,进入管理层是必然的,但我并没有感受到来自外部的压力,我的公司一直支持我继续走技术路线。我意识到,成为一名成功的管理者需要特定的性格和技能,而我并不具备这些。因此,我选择专注于我擅长和喜欢的技术工作,并通过阅读管理书籍来提高向上管理的能力,以便更好地理解我的经理并为未来的职业发展做好准备。 Quincy Larson: 很多人在职业生涯中会感到压力,认为必须进入管理层或创业才能保持竞争力。然而,Joe的例子表明,专注于技术专长并成为一名优秀的个人贡献者也是一条可行的职业道路。重要的是要了解自己的兴趣和优势,并找到一个支持你职业发展的公司。同时,向上管理也是一项重要的技能,可以帮助你更好地理解你的经理并有效地沟通。

Deep Dive

Shownotes Transcript

在本周播客节目中,freeCodeCamp创始人Quincy Larson采访了Joe Attardi。他是一位软件工程师,也是一位高产的编程书籍作者。我们讨论了:过去21年软件开发的变革;应对AI对该领域带来的巨大变革的技巧;计算机科学学位的演变角色;人们为什么仍然应该阅读O'Reilly风格的纸质编程书籍。 我们在谈话中提到的链接:Joe在freeCodeCamp上的书籍和教程:https://www.freecodecamp.org/news/author/joeattardi/;Joe的网站:https://joeattardi.com/;Joe的Web API Cookbook:https://www.webapis.info/;Joe在GitHub上的开源项目:https://github.com/joeattardi;Joe的办公桌照片:https://x.com/JoeAttardi/status/1849819837360480658;Joe最近玩的一些游戏:https://backloggd.com/u/jattardi/games?page=1</context> <raw_text>0 欢迎回到Free Code Camp播客。我是Quincy Larson,freeCodeCamp.org的教师和创始人。今天,我们与Joe Attardi进行对话。他是一位软件工程师,也是一位高产的编程书籍作者。Joe,波士顿的夏天怎么样?

还没真正开始呢。我们现在正遭遇东北风暴。气温在40华氏度左右,下着雨。那是40华氏度,相当冷。差不多零摄氏度。对于我们的国际听众,Joe,我很高兴和你谈谈,因为你已经在业界工作很长时间了,已经有21年了。

你做了很多事情,我们将会深入探讨。你一路晋升,并且积累了非常广泛的技能。所以我们将讨论过去21年软件开发是如何变化的。我们将讨论应对AI对该领域带来的巨大变革的技巧。我知道你参与了……

AI方面的事情,你也在社交媒体上谈论过一些。我们将讨论计算机科学学位的演变角色。你本人就拥有计算机科学学位。你已经看到它们在招聘经理中的受欢迎程度是如何起起伏伏的。我们将讨论为什么人们仍然应该阅读O'Reilly风格的纸质编程书籍。你正在创作你的第四本O'Reilly风格的书,我很期待听到所有这些。好的,听起来不错,我很期待。

我喜欢这样。

是的,但你对成为创始CTO或从事任何与初创企业或创业相关的事情毫无兴趣。这是准确的吗?是的,我曾经以为我有兴趣,但我感觉我是在强迫自己,而且我并没有那种感觉。我缺乏一些技能,我不擅长市场营销方面的事情,也不擅长商业方面的事情。

我不太擅长,说实话,我对它也不太感兴趣。所以我认为从事技术方面的工作最适合我。好吧,在波士顿,有很多初创企业获得融资。你认为当开发者在职业生涯中达到某个阶段时,他们是否会感到压力,想要走出去做一些创业的事情?

我当然有过这种感觉,虽然那不是本地的事情,但这主要是因为看到,你知道,推特上的人,所有这些公开的建设,现在似乎每个人都在业余时间构建SaaS。所以我有点被卷入其中,但我从未超越构思阶段。你知道,我绞尽脑汁地想出一个好主意,我可能有点想得太多了,但我最终意识到,你知道吗,我只需要专注于保持作为开发者的就业能力,并且,你知道,利用这个角度。是的。

是的。我们将深入探讨你的一些项目,因为你做了很多项目。显然,你撰写了关于各种主题的书籍,例如CSS。你还在为开源项目做贡献,我们还将深入探讨你多年来在开源方面取得的一些成功。但我认为值得注意的是,你对作为……

一名员工工程师感到很满意,你的确切职位是什么?我知道你最近是首席工程师,对于不熟悉软件开发和职位描述的人来说,这有多高?

我的意思是,在每家公司都略有不同。在我的公司,它基本上低于架构师级别。这是之前的步骤。好的。所以在我的公司至少有工程师、高级工程师、员工工程师、首席工程师。是的,非常酷。你……

可能正在使用SAS。我只想说明清楚,因为有很多人都认为,你主要是一个IC,即个人贡献者吗?你完全,你管理任何人吗?不。哇。所以你已经工作了21年,没有人对你说,“嘿,你能……你知道,接管这个部门吗?”之类的?没有。还没有。

我不知道这是否反映了我的技能,或者我只是运气好,我不知道。是的。我的意思是,你喜欢只做一个IC,专注于工程问题。我喜欢。我对任何管理方面的事情都不感兴趣。那不适合我。这很酷。所以我想称赞一下,知道你的兴趣所在,并能够专注于这些,只专注于工程。因为我认为很多人都会感到压力,哦,我必须参与管理,或者我必须回学校攻读MBA,或者我必须启动一些成功的项目等等,才能继续保持相关性并在组织内晋升。在你的工作中,你是否感受到这种压力?

不,我认为我感受到的唯一压力来自我自己,你知道,因为,你知道,我不再年轻了,而且似乎很多,你知道,随着年龄的增长,开发者有时会转向更多管理类型的角色,嗯,逃避繁重的工作,但是,嗯,

我并没有感受到任何来自外部的压力。我觉得自己得到了很好的支持。在我最近几家公司,随着我的职业生涯发展,我得到了很好的支持,让我继续走我正在走的道路。太棒了。你认为这代表了……你认为……

许多开发者?他们就像,你知道,可能有2500万到3000万人靠开发软件为生。你认为很多人可以享受这种状态吗?当你与你的同事交谈时,你认为你是个异类,还是你认为实际上有很多机会?不,

我认为很多人和我处境相同。你知道,我认为这需要某种类型的人,无论是在气质还是技能方面,都想成为一名经理。我相信有些人这样做是因为他们觉得他们必须这样做。而且,你知道,也许彼得原理在这里适用,在那里,你知道,他们可能还没有准备好,他们没有合适的技能,并且在这个角色中并不那么成功。

所以我认为试图防止这种情况发生在我身上。好的。所以彼得原理是指人们会升到他们无能为力的最高水平。对。我相信是这样说的。是的,完全正确。你能描述一下这种现象是如何运作的吗?好吧,我认为,你知道,我认为我必须不断攀登阶梯,阶梯上的每个台阶都有,你知道,更高水平的技能。但是一旦你从技术阶梯转向

有时你会遇到天花板,如果你想继续攀登,你必须跳到管理阶梯,这完全是一套不同的技能。有些人两者兼备,有些人没有。我没有。所以如果我成为一名经理,我认为我会在脑子里感到这种感觉。我不知道我在做什么。肯定不会进展顺利。是的。

所以你认为你能——如果有人把枪指着你的头,说你必须阅读——去阅读所有这些机场管理书籍,比如“一小时经理”等等。我认为如果我必须这样做,也许我会。也许我会走这条路,如果我——但是就业市场,现在的情况,特别是对于程序员来说,也许它——

也许在某个时候会变得更现实,但我确实阅读了一些管理类型的书籍,试图了解如何更好地向上管理,你知道,试图了解我的管理层的想法,但也为了准备一些潜在的技能,你知道,以防万一,以防万一我将来会走这条路。这是一个很酷的收获。所以向上管理,就像本质上是管理你的经理,并与他们产生共鸣,了解,

为什么他们要求你做他们让你做的事情,以及他们承受着什么压力。所以你,我想是一种,一种更有同理心的责任,嗯,

是的。向你致敬——很多人只是说,“去你的经理。我不喜欢这个人。”就像整个办公室空间一样。有人看过《上班一条虫》吗?是的,是的。基本上这部电影的主题是,为别人工作很糟糕,你的经理总是傻瓜,就像迪尔伯特漫画一样。哦,是的。我的意思是,彼得原理就是从这里来的,对吧?只是人们——

最终他们,当你听到老板时,是的。“尖头老板”不理解实际的技术细节。你的经理,嗯,你有很多经理以前也是开发者吗?是的。我认为那些往往是比较好的经理。是的。

顺便说一句,这是一个原因,我总是鼓励人们学习编程和硬技术技能。因为即使你打算担任管理职位,我也真诚地相信,几乎每个科技领域的人都需要了解这些事情。因为如果你不了解你所工作的领域,它会限制你。

人们对你的尊重以及你与下属产生共鸣的能力等等。所以这就像,我会停止我的说教,但我认为这真的很酷,你的很多经理以前都是开发者,而不仅仅是“尖头老板”。是的。是的,我非常幸运。我还没有遇到过糟糕的经理,所以希望我能继续保持下去。太棒了。好吧,我想谈谈你提到的该领域的一些变化。你说过像

事情如何发展,你可能不得不转向管理。我不确定这是否只是紧张的插曲,或者,如果,如果这是你认真考虑过的事情,但我们将很快深入探讨这一点。我只想感谢11423位通过每月捐款支持free Coke camp的好心人。你可以加入这些非常棒的人,并且可以通过访问donate.freecokecamp.org来支持我们的慈善使命。我还想说,对本播客的支持来自

所以,Joe,这只是紧张的情绪,还是你认为情况正在发生根本性的变化,开发者的劳动力市场正在发生根本性的变化?我认为对我来说,这主要是紧张。我,你知道……

部分原因是就业市场正在变化,我不禁想到,当我,你知道,接近45岁的时候,你知道,也许在某个时候它会成为我唯一可行的选择。我不知道。我的意思是,我希望不会,因为我喜欢,喜欢从事技术工作,你知道,嗯,

那是我的事情。是的。好吧,我想深入探讨你是如何爱上技术技能的。所以这是播客的自传部分。如果可以的话,让我快速回顾一下你过去43年的生活。我44岁。你43岁。你紧随其后。1980年,1980年。1981年。81年。太棒了。是的。所以也许你可以告诉我们一些关于……

你的童年以及你如何爱上电脑的事情。是的,当然。我有一个叔叔非常喜欢电脑,我总是,你知道,去他家,在那里过夜等等。他会,你知道,向我展示他电脑上的东西。我和他的电脑一起玩,他最终给我买了,我得到了一台,嗯,一台IBM 286克隆机或类似的东西是我的第一台电脑。我认识的12岁孩子中,只有我一个人在玩MS DOS之类的东西。但是,嗯,

我不知道。我无法确定是什么点燃了我对它的热情,但我自从那时起就一直热爱它。而且,你知道,在高中开始编程,嗯,编写QBasic代码。我在这里暴露了自己的年龄,但是,嗯,你知道,然后去学习计算机科学似乎对我来说是自然而然的下一步。嗯,

有一段时间,我不确定,你知道,我不确定我是否想从事编程工作。我更感兴趣的是IT类型的工作。但是一旦我上了第一年的计算机科学课,我就想,哦,这太酷了,编写代码和构建东西。

它吸引了我。多告诉我一些关于你叔叔的事情。他的角色是什么?你经常和他一起出去玩吗?他在波士顿地区吗?是的,他在本地。他们没有自己的孩子,所以我的兄弟姐妹和我总是和他们一起出去玩,让我的父母休息一下。但是是的,他……

我认为他当时在IT相关职位工作,但他在家有各种各样的技术设备。所以他是一个相当大的影响力。你会说他从小就是你的榜样吗?我会说,是的,绝对是。这就是塑造了我今天对计算机和技术的兴趣的原因。是的。好吧,希望每个人都能像你一样有一个很酷的叔叔。没错。是的。或者如果你正在收听这个节目,你可以成为你的一些侄女侄子们的很酷的叔叔。

是的。我各有一个。是的。太棒了。你还有一个儿子。六岁。六岁。是的。非常酷。那么让我们谈谈AI。是的。这是每个人都担心的一个大问题,也是你的

它正在改变软件开发,但它可能会在未来极大地改变软件开发。很多事情还有待确定。很多事情都取决于个人的看法。嗯,你对AI以及它如何影响软件开发的看法是什么?好吧,我认为它绝对正在改变很多事情。我认为,嗯,

仅仅是编码技能本身,我认为可能会变得不那么有价值,因为AI在编写代码方面变得越来越好,我认为,你知道,基础知识,架构类型的技能,你知道,数据结构算法类型的东西,你知道,我讨厌说你在更正式的计算机科学教育中学习的那种东西,嗯,

我认为随着AI取代更多日常编码工作,这些东西会变得更重要。是的。

是的。所以让我们谈谈,让我们谈谈。你最近的一条推文,我将直接引用它,因为我认为它很重要,嗯,你说计算机科学学位将再次被视为更有价值。曾经有一段时间它们有点贬值或被低估了吗?雇主对计算机科学基础知识的兴趣降低了吗?我认为是的。我认为,你知道,有一段时间,你知道,自学成才,嗯,

如果你想这样称呼它的话,我认为变得非常重要。我们看到训练营变得非常流行,出现了很多很棒的资源,比如Free Code Camp,任何人都可以去学习,自学。所以我认为计算机科学学位可能并没有贬值,但它不再是必备的了。我认为很多公司都这么认为,因为我和很多没有计算机科学学位但非常有才华的人一起工作过。所以这不是成功的唯一途径。但我认为

就像我说的,随着AI编写我们越来越多的日常代码,我认为掌握一些更高级的技能会让你更有吸引力,我认为。是的。假设一下,你有一个侄女或侄子。你提到你各有一个,他们想上学,想在学业结束时找到一份稳定的工作。

工作,并且有点像在考虑,你知道,获得商业学位或文科学位,或者计算机科学学位或电气工程学位。就像,就像你将如何根据你的经验和你目前对事物发展方向的感受来建议他们?这是一个非常好的问题。我现在必须考虑一下,但我不知道我现在是否会,

如果我会推荐走软件开发的道路,至少是计算机科学学位的教育,因为,我的意思是,我不知道,它可能有一天会取代我们所有人,你知道,所以我不知道它作为一个职业道路的可行性会持续多久,你知道。我希望它能保持下去,你知道,也是因为我自己的原因,因为我总是开玩笑说,我不擅长其他任何事情,就是编程,就是这样。是的。

是的。这是,这是,这是我的希望。但是,嗯,即使是我的儿子,我一直都像,哦,我要让他从小就学习编码。而且,嗯,我现在不太确定了,尽管他们在他的幼儿园班级里做了一些与编码相关的事情,这让我很吃惊,他们这么早就开始了。是的。好吧,就像软件开发或现代经济的某些方面一样,除了你理解的那些方面,根据你对AI工具的看法,哪些方面不太可能被自动化?是的。

我认为是那些技术工种。在很长一段时间内,我希望不会有AI电工。我认为那些更人性化的事情。我认为像我如果是一名平面设计师,我会非常担心。作为一名作家,我有点担心。我认为这些类型的道路将面临更大的风险。但我认为汽车修理工、电工,这类东西。我认为更多……

类型的角色我认为在一段时间内仍然会有价值,至少在一段时间内。就像,谁知道会发生什么,对吧?你知道,我只是……云4.0刚刚发布,它据说是巨大而革命性的。所以,就像,谁知道呢?它日新月异,你知道吗?只能根据我们所知道的进行规划。你认为其中有多少可能是公司为了将这些开发者从他们的资产负债表中移除而进行的营销炒作,因为开发者非常昂贵?我认为是……以及你认为有多少是实际的……

有多少是实质,有多少是虚张声势?是的,我的意思是,肯定有一些这样的情况。我认为如果公司开始用AI大规模地取代软件工程师,那么将会有很多需要清理的烂摊子。然后他们会把我们都重新雇佣回来,我们将获得丰厚的咨询费,你知道,清理所有糟糕的代码。但我认为肯定还有一些这样的情况。是的。所以这听起来是一个相当平衡的看法。当你,像……

你已经在业界工作了21年,所以当时有一个很大的推动,那就是将事情外包,让我们把所有东西都转移到印度,例如。我对印度工程师评价很高,但从根本上说,存在许多跨文化沟通问题。有很多协调工作。我们正在与来自完全不同文化的人合作,就像在世界另一端一样。是的。

你会如何比较这种热情?这可能是一个有偏见的问题。围绕着用Dev和Data AI取代开发者的热情,或者像英伟达一样,提供每小时1000美元的开发者服务,而不是像你支付给工程师的5000美元、10000美元那样。其中有多少只是他们的一厢情愿,有多少是你认为实际的……

这实际上可以用当前的能力实现。让我们不要假设它会以几何级数继续增长。每个人都想相信这一点,但我们可能正在接近极限。我们不知道。我们不知道拐角处是否会有阶段性变化,或者这是否已经足够好了。我们可能已经达到了80%的优秀程度,然后从这里开始只是……

渐进的进步。直到下一次重大突破。而大型语言模型就是一个重大突破。这是一个重大发现,如果你只是在那里放入足够的数据,你就可以获得非常好的生成式AI输出等等。我认为这更像是一种发现,而不是某种特定的发明,因为中国对冲基金以非常低的预算复制了相当的质量。所以

它可能不是这项大型专有技术,但大型语言模型可能就像,你知道,那些每个人都拥有电子表格的东西一样,编写你自己的电子表格并不是什么了不起的事情。这是free code camp中关于函数式编程的练习之一,编写你自己的电子表格,对吧?或者创建你自己的Twitter,对吧?Twitter并不是什么了不起的事情。它就像,发现你可以获得社交网络,然后变得有用。嗯,所以我认为AI或大型语言模型更像是一种发现,而不是发明。嗯,但是

存在既得利益,你知道,这些市值达数十亿美元的公司等等。所以我想说的是,对于这个问题的非常冗长的铺垫,鉴于当前

这些系统的能力,你理解它们,假设没有某种疯狂的能力增长即将到来。但是如果我们只是,如果一切都被冻结在时间里,你认为它会逐渐对行业产生多大的影响?因为没有什么事情会立即发生。事情需要一段时间才能传播开来,让路边的那些小企业采用不同的工具等等。你认为当前的工具会产生多大的影响?

我认为它肯定会产生影响。你知道,我不会

我不是那些相信它会在12个月内让我们所有人失业的人之一。我认为不会发生这种情况。我认为人的因素仍然非常重要。但当然,由于剩余的工程师从AI工具中获得的生产力提升,公司可能不需要雇佣那么多工程师了。所以就像你说的那样,按照今天的情况,我认为肯定会有影响,但这还没有结束。是的。

我认为。好的。所以当你说你不会一定建议你的侄女侄子去学习与计算机相关的领域,比如计算机科学或软件工程时,你对自己的职业生涯有什么感觉?因为你还很年轻。我43岁。你认为你20年后、25年后还会工作吗?我真的很希望如此。嗯,你知道,因为就像我说的那样,我不知道我会做什么。嗯,

这是我经常思考的事情。想到这一点会让我感到焦虑,所以我尽量不去想太多。我努力让自己尽可能地保持相关性,并希望在我被机器取代时有足够的退休金。是的。好吧,让我们谈谈……

计算机科学以及你所学到的东西,以及你认为你的本科学位中真正有帮助的东西。我们可以谈谈你的大学经历。你上的是一所公立大学。它不像是一所超级有选择性的花哨大学。它就像很多想获得工程学位并且不想背负巨额债务的人去的地方,对吧?对。洛厄尔马萨诸塞大学。洛厄尔。好的。是的。

并且你能够完成你的学位。据我了解,你获得了一些奖学金,你只贷了学生贷款,你毕业时大约欠了2万美元。是的。这是相当可控的。我偿还了一段时间,每月还款。然后最终我决定,你知道吗?让我们摆脱这笔债务。我很幸运能够偿还学生贷款债务,

让它消失。这,你知道,有些人背负着巨额债务。这实际上不是一个选择。嗯,这很艰难,但是,嗯,是的。你在马萨诸塞大学洛厄尔分校的四年中学到了什么,嗯,你作为软件工程师在日常工作中使用得最多?所以最难忘的课程和事情是,它是,它是,它是一个为期两学期的序列,全部关于,嗯,UI方面的东西,嗯,

那时是Java小程序之类的东西。我又暴露了自己的年龄。它真的点燃了我内心的热情,让我对前端开发、用户界面、人为因素感到非常兴奋,这直到今天都一直伴随着我。那是……

当然,除了基础知识、算法和图遍历之类的东西,这些东西我多年来断断续续地使用过。并非所有……你总是说,我什么时候才能用到这个?但你会用到很多。我认为即使你没有直接使用其中的一些……

你仍然有背景知识,并且可能会激发一些想法。你可能会想到一种算法,它有点像你以前学过的算法。我认为这些东西让它变得有价值。是的。所以它一直伴随着我。只是拥有某种

就像你脑海中关于计算机如何工作的关联网络一样,它允许你进行类比,并进行你可能不会想到尝试的尝试,如果你只是参加了一个纯粹的技术项目,他们会说,像,你知道,12个月的训练营或12周的训练营。

所有华尔街的人都去过。但这是真的。这实际上是去训练营的人。谁去训练营找工作?是那些来自华尔街的人,他们想,嘿,我可以作为一名软件工程师赚更多钱,而且风险比在这家银行工作要小。所以我将支付一大笔钱。我将支付 2 万美元。我将参加 Hack Reactor 课程,这是现在许多已停办的项目之一,然后我将在……

优步或其他地方找到工作。有些人能够做到这一点。但他们大多数人已经拥有大学学位和大量的职业经验等等。但他们只是学习了一种……

我会说,就你实际需要的工作技能而言,这是冰山一角。我想他们只是在工作中填补空白,或者,嗯,也许他们做得并不好。我不知道,因为他们没有计算机科学学位。他们没有掌握基础知识,但这在繁荣时期是可以做到的,你知道,2010 年、2012 年。嗯,

我认为你现在可能做不到。你可能需要建立这些基础。是的,我也这么认为。是的。所以,如果有人没有资源去参加计算机科学学位课程,或者他们根本没有时间,他们是一个忙碌的父母,他们 40 岁了,仍然想成为一名软件工程师。你会建议他们如何去做呢?因为你写过几本关于不同事情的书,比如,你知道,Web API、CSS 等等。而且你显然对开发者教育了解很多。比如,

你会如何建议某人获得这种基础知识?我认为最重要的一步是了解你的学习风格。你知道,书籍很棒。我喜欢书,但有些人学习效果不好,从书中记住的东西不多。其他人从交互式教程或视频中学习得很好,或者,你知道,有些人从所有这些中学习得很好。所以我认为确定你的学习风格是最重要的,以确保

你学习的东西会记住,而你不需要太费力,如果这是有道理的话。是的。你确定过自己的学习风格吗?我发现我最擅长观看视频和阅读。是的。假设你的老板来找你。

他们说,乔,我们需要你学习 Kubernetes。所以有一些东西,你什么都不知道,对吧?比如你的工作取决于你从现在起八周内掌握 Kubernetes。是的。根据你多年来学习的所有其他知识,向我们介绍一下你将如何去做。我可能会诚实地从 Udemy 开始,寻找 Kubernetes 课程,

嗯,我在那里有很多好的结果。你知道,有些课程不好。嗯,但是,嗯,有些课程真的非常好。嗯,然后我可能会找到一本关于它的好书,并用一本来支持另一本,你知道,比如,比如,嗯,你知道,我看课程的一部分,然后找到书中谈论相同内容的部分,并尝试将它们关联起来。嗯,实际上,最重要的事情我甚至都没有提到,但是

……尝试构建一些东西。因为你可以学习所有你想要的东西……

但如果你不把它用于任何事情,你就会忘记它。我的意思是,你知道,完全,说实话,我学习过 Python、Ruby、PHP、Elixir。我都忘记了,因为我从未使用过。我现在正在重做 Python 教程,因为我忘记了所有内容。你知道,我认为当你用你正在学习的东西来构建东西时,它真的会在你大脑的另一个部分巩固它,并且会持续更长时间,当然。是的。

绝对的。是的,我赞同这一点。免费烹饪核心课程非常注重项目,因为我们希望你能够在构建的同时学习,因为我坚信以项目为导向的学习可能是最普遍的学习风格。我知道有些人更喜欢看书,但我认为只是构建一些东西。是的,证据就在那里。

事实上,我与之交谈的很多人强调了实际构建的作用。对。所以你多年来已经构建了许多开源项目,这非常酷。感谢你对开源的贡献。也许你可以谈谈对你来说成功的开源项目。当然。是的。首先想到的是,我构建了这个表情符号选择器组件,

我想挑战自己只用纯 JavaScript 构建一些东西,而不使用框架或任何其他东西。我不太记得当时的情况了,表情符号选择器似乎是一个很酷的想法。所以我选择了它,我花了很多时间来开发它,顺便说一句,这真的很困难,在没有某种框架或库的情况下用 JavaScript 构建一些非平凡的东西真的很困难。我,

说实话,最终在这个组件中创建了我自己的小型框架,以使其可行。但是,我不知道我是否会说它非常成功,但我对它的最大名气是星巴克一年一度的促销活动,

某种关于南瓜和南瓜香料拿铁的秋季促销活动。他们有一些,我不记得了。已经有一段时间了,但这是一种表情符号寻宝游戏。他们,有人问,他们在 GitHub 上发布了一个问题。他们,他们提到他们正在开发它,他们在星巴克的东西中使用了我的表情符号选择器。那真是太酷了。嗯,

就是这样了。它有点——使用量下降了,生活中发生了其他事情。我决定,不,我认为是时候让这个东西休息一下了。但它是一个很酷的项目,直到它结束。是的。你什么时候知道你需要把你的虚拟开源项目带到棚屋后面?好吧,我认为这取决于——

你希望用它来完成什么。如果你想让它成为一个大型流行项目,而没有获得关注,也许就是时候了。或者如果生活中发生其他事情,你变得忙碌起来,比如你有一个几岁大的孩子,并且有更多时间与他相处,也许那时……

是时候缩减规模了。这取决于。这取决于你希望用它来完成什么以及你的生活中正在发生什么。是的。我非常欣赏你的一点是,你似乎拥有非常好的平衡。你工作,很多人只是满足于工作,而不在工作之外做任何事情。然而你做到了。你有一些项目,但你仍然会抽出时间陪伴家人,并且会抽出很多时间陪伴自己。我们稍后再详细讨论。但你可能只是

满足于你的工作。我知道很多开发者,他们甚至没有社交媒体账号。他们甚至没有领英账号。他们只是在工作,然后他们下线,然后去玩电子游戏或出去远足之类的。然而你却在构建开源项目,你还在

写很多书。据我了解,你现在正在写你的第四本书。这些都是你在巴诺书店看到的那些大型 O'Reilly 图书,或者你通过网上订购。但它们是实体书。是的。你可以把你的电脑显示器放在上面,如果它太低的话。或者如果你孩子够不着桌子,你可以把它放在孩子下面。读完之后,你可以把它放在架子上。

看起来很聪明,因为你的架子上有一本技术书籍。或者你可以用它们作为参考,对吧?当你继续前进时,你可以翻阅页面并查看索引。拥有一本实体书有一些好处。但我想要问的是,是什么驱使你在仅仅是那个下线后享受生活的人之外做其他事情?完全透明地说,一个原因绝对是我想——

它可以帮助我获得更好的就业机会,希望如此,你知道,这肯定是一个原因,你知道,获得更多的曝光率,但这不仅仅是那样。我只是,我只是真的很喜欢这样做。我认为做这种事情很有趣。我喜欢用这个比喻,之前也和你提过,你知道,一个可能从事木匠建筑或其他工作的人,他们周末也会做他们的木工项目,因为他们只是,他们只是喜欢这样做。对我来说就是这样。是的。是的。

让我印象深刻的一点是,你似乎没有很大的自我,就像一个强大、有能力的超级聪明的软件工程师。你谈论木匠,就像他们是你的同龄人一样。你谈论水管工和电工,就像他们和你处于同一水平一样。请继续。我的意思是,你感觉是这样吗?

是的,我没有自负。我认为,如果有什么不同的话,那就是相反的。即使在 21 年后,冒名顶替综合症仍然困扰着我。你知道,我一直都在处理它,总是拿自己与他人比较,尤其是那些在 Twitter 上的名人。他们正在构建所有这些疯狂的、大型的、很酷的东西。不可避免的是,你知道,你会把它与自己进行比较。但是,是的。

是的。我认为,我认为世界上每项工作都很重要,你知道,世界在继续运转,因为所有这些不同的工作都在完成。你知道,我很快就要打电话给水管工修理我地下室的东西了。我做不到。而且,你知道,而且,而且,水管工,他,他关心他的工作。我希望我打电话给的那个水管工关心他的工作。他不断学习新东西。而且,这,这有很多相似之处,我认为。

是的。是的。这是一个非常酷的视角。我只是,我只是想指出这一点,因为我有时会和那些说,好吧,我有这个高级学位,以及这么多 Twitter 粉丝等等的人交谈。然而,这真的很酷。这只是我。那些喜欢的人,这只是我的工作。我得到,每个人都是社会的一部分,并试图完成他们需要完成的事情。因此,违规行为,

垃圾被收集了。垃圾工让办公室工作人员递送我的邮件,我可以可靠地向朋友发布一些内容,或者我们可以向人们发送免费的代码营衬衫。顺便说一句,我们有像这样的免费代码营衬衫。无需运费。它,

你知道,你可以得到一件,感谢美国邮政服务公司将它们发送到美国的任何地方,是的。嗯,但是,但是他们,他们使这成为可能。所以,呃,你知道,当我看到邮政工作人员在麦当劳时,当我像为我的妻子买早上的咖啡一样,通常我们会把咖啡烧掉,但是,假设我们正在开车,我们正在进行公路旅行去看那个人。对。嗯,而且,而且,

当我看到邮政工作人员时,我会说,嘿,谢谢你的帮助。我真诚地感受到了。我觉得你也感受到了。然后,你知道,你,

你认为每个人的工作都很重要。我现在要说的是,有些工作可能对社会有害,人们的工作方向与人类的利益相反等等。嗯,他们参与零和博弈,比如很多金融相关的工作。嗯,我希望我没有冒犯任何收听节目的听众,但是,比如有些工作,好吧,这实际上是一份好工作吗?是的。积极的。对。嗯,

但是你正在做的事情,让我们谈谈你的工作。再说一次,你在一家大型安全公司工作,我不想深入探讨你所做的事情。因为我知道其中一些是,你知道,我不希望他们不得不删除采访的部分内容,但我理解的是,你们创建的软件可以帮助人们识别,呃,你知道,供应链类型的攻击等等。呃,CVE,呃,常见漏洞和暴露,呃,

类型的东西。你编写的软件基本上会扫描人们的技术堆栈,呃,以查找他们正在引入的依赖项和库,并确保没有任何未解决的已知问题,呃,安全方面的问题。这是准确的吗?是的。是的。也许你可以谈谈你正在做的工作为什么很重要,以及如果人们停止关注安全会发生什么。是的。

哦,各种糟糕的事情都会发生。我认为安全非常重要,尤其是供应链类型的事情。我的意思是,你经常听到关于这些 NPM 包的故事,这些包会做坏事,你知道,它们会被安装,

感染你的整个应用程序并窃取你的 API 密钥以及各种讨厌的东西。我认为如果没有这样的工具,你就是在冒险。在你看到的过去 21 年中,这些事情发生的哪些最突出的例子让你觉得,哦,天哪,他们应该使用我们的软件。是的。

是的。我的意思是,我知道有,我忘了它叫什么,但有一个大型 OpenSSL 漏洞。是 Heartbleed 吗?Heartbleed。就是这样。是的。是的,这是一个很大的漏洞。我记得。这是我最突出的一次。但我认为它,你知道,它变化如此之快。实际上,现在一种可能独特的漏洞载体是,

我曾经和我的一个同事谈论过这件事,有时你正在使用 LLM,它可能会幻化出一个不存在的 NPM 包,并建议你去安装它。好吧,也许我作为一个邪恶的人,我会说,嘿,我要去创建那个 NPM 包,让它做一些坏事,窃取一些 API 密钥或其他东西,然后发布它。然后下次 LLM 为其他人幻化出它时,

嘿,我现在有三个可安装包的 API 密钥了。我的意思是,你只需要注册大量的 NPM 包,希望 LLM 会幻化出它,或者即使是错字抢注也是如此,你知道吗?是的。错字抢注是一个巨大的问题。比如 FreeCookie 拥有大约,我不知道,60 多个域名,因为人们总是忘记我们的名字,或者像,你知道,在我们的名字后面加一个 S 之类的东西。谷歌实际上拥有……

像转换成谷歌的数字一样,像在手机上一样。真的吗?太棒了。那些域名,任何可能被错字抢注的东西,或者,你知道,像 SSL 证书一样,你得到网络钓鱼链接,你会想,这实际上是,你在输入密码之前检查 SSL 证书,它就像,你知道,谷歌是山景城的证书,你

我会说,好吧,这是合法的吗?比如,然后你打开,你尝试在不同的窗口中打开它,或者尝试以某种手动方式导航到它。所以你没有使用电子邮件中的直接链接。我前几天收到一个关于 x.com Twitter 上某种商标纠纷的事情。对。嗯,我几乎可以肯定这只是一个网络钓鱼企图,呃,

我并不完全确定,但是,是的,这很可怕。比如,嗯,我可以想象当你没有时间去查看不同包的代码,而你这个人只是随意编码,比如,你知道,在他们的软件中包含大量漏洞时,情况会更可怕。所以有了像你这样的工具,它可以识别错字抢注的包。是的。

如果存在谈论它的漏洞记录,那么是的,我认为是这样。那么让我们谈谈这些 CVE 文档是如何被整理到这些已知漏洞列表中的等等。你对……了解多少?一点。我肯定不是这方面的专家。是的。

但我要说的是,实际上我的——我认为是我的 EmojiPicker 库实际上有一个几年前针对它的 CVE。所以这是我的荣誉勋章。是的,是的。你是否告诉人们,哦,这没什么问题?或者这实际上是你必须修补的东西吗?不,这是一个有效的问题。我不记得了。我没有发现它。其他人通过 GitHub 报告了它。

他们创建了一个 GitHub 安全建议,然后这也创建了一个 CVE。但我认为这是一个跨站点脚本漏洞。我不记得了,因为那是几年前的事了。但我认为那里有一些非常聪明的研究人员,希望他们能够负责任地披露他们发现的这些东西,这可能是这些漏洞的最大来源之一。

这些东西被发现和发布。是的。希望,就像我说的,以负责任的方式,这样公司就有机会在告诉全世界之前修补它们。是的。我将借此机会公开感谢所有负责任地披露 Free Code Camp 开源平台漏洞的人。哦,不错。是的,这非常酷。比如,这些人就在那里,而且他们中的许多人都在寻找错误赏金,我们没有错误赏金。但是如果你……

所以请不要给我们写信询问数千美元,因为你发现了这个非常常见的漏洞,它实际上并不是漏洞。我们收到很多垃圾邮件,人们试图这样做,只是希望也许——是的,不。这是一个已知的——这就像一个有意的功能或类似的东西,你必须纠正它们,它们会占用你很多时间。但是对于每一个这样做的人,都有人负责任地披露我们真正错过的东西。

这是开源的一大优点,有了足够的错误,有了足够的眼球,所有的错误都很浅显,因为你有一些安全研究人员在为你寻找。这些人非常聪明。比如我读了一些这些 CVE,以及利用方式。我会说,有人会想到尝试吗?太疯狂了。这让我大吃一惊。是的,非常酷。所以我想谈谈一下,

实际的书籍出版过程,因为我认为这真的很有趣,我之前在免费可卡因播客上采访过一些已出版的作者,比如在密歇根大学任教的 Chuck 博士,他出版了一些书籍等等。而且他,嗯,但是你,呃,

写了三本书,你正在写你的第四本书。所以有一些,我认为它就像 Web API。有一本 CSS 书。第三本书有点,它是一本旧书,全部是关于 Gatsby 和 Netlify CMS 的,它们都是某种,

是的。当然。

典型编程书籍的保质期就像我们通常认为的那样,我只是称它们为 O'Reilly 书籍。我知道还有很多其他优秀的出版商,比如 Manning、Opress,还有其他出版商,但我只是称它们为 O'Reilly,因为这是每个人最熟悉的品牌。对。我认为这取决于主题,但我的意思是,根据我的经验,我现在正在写的一本书是我的 CSS 书的第二版,它是在

大约五年前出版的。所以我的意思是,这取决于事情变化的速度。如果它是像 CSS 这样的东西,总是在不断添加新内容,但现有内容不会改变。所以也许这持续的时间更长一些,这就是为什么他们花了五年时间才对做第二版感兴趣的原因。那么工作流程是如何运作的呢?假设,

有人正在努力工作。他们在银行或医院工作了五到十年,或者可能在大型科技公司工作,或者某种工具,比如你正在使用的工具,或者你可能在工作中使用的许多工具之一。比如他们被邀请——

他们被邀请了吗?出版社的某个人会联系你,还是你联系他们?我联系了他们。我的意思是,这两种情况都可能发生。我见过一些人的故事,你知道,也许他们写了很多关于某个主题的博客,然后出版商联系他们说,嘿,我们应该对做一本书感兴趣。就我而言,实际上,我的书最初是在——

在 leanpub 上自出版的。而且它们几乎没有卖出去。我只是凭一时兴起说,你知道吗,为什么不呢?我把它推荐给出版商。最糟糕的情况是什么?而他们基本上已经写完了这本书。这只是分销。对。对。是的。

他们有这些收购编辑。他们的全职工作是寻找新的作者并启动新书。他们基本上只需要填写一份很长的提案表格。你做书的大纲,哪些其他书籍会与这本书竞争,你知道,独特的卖点是什么,所有这些东西。如果你能为它提出一个足够好的理由,他们就会和你一起做一本书。

是的。那是如何运作的呢?从金钱的角度来看,因为写一本书需要付出很多努力。是的。你知道吗?是的。尽可能详细地向我们介绍一下。如果有人曾经考虑过写一本技术书籍,乔就要透露了,给我们详细介绍一下。是的。

不要为了致富而这样做。不要为了钱而做。这是肯定的。除非你是那些罕见的情况之一,你的书非常成功。破解编码面试。我认为 Miguel McDowell 是她的名字。多年来,她从这本书中赚取了数百万美元。哦,是的。但通常的做法是,他们会给你预付款,这是一笔预付款。

这将抵消未来的版税。所以,你知道,我的一本书,我预付了 1000 美元,然后这本书开始销售。在我从人们购买书籍中获得的 1000 美元用完之前,我不会再获得任何版税。嗯,它最终发生了,你知道,我,我,

我每个月大概能从书籍版税中赚到 20 美元或 30 美元,这可以让我买一杯咖啡。也许每隔几个月可以让我买一个新的电子游戏,但仅此而已。但这没关系。我曾经对,哦,它卖得不好。这是一部失败的作品。但对我来说,这已经不再重要了。它是什么?

写作的过程,我只是喜欢写作。这对我来说真的很有趣。此外,你还会学到很多东西。比如这些书的某些部分,我对某些章节的内容不太了解,所以我必须先学习很多东西,然后才能写出来,我认为这实际上是最大的好处之一,那就是我现在对 CSS 的了解比写这本书之前要好得多。

是的。自你大约五年前出版的第一版书籍以来,CSS 发生了哪些变化?因为你花了大量时间学习和了解过去五年中 CSS 的许多变化和改进。比如,你书的第二版中将有哪些最大的变化?

所以有些事情,比如,例如,第一版已经涵盖了 CSS 网格之类的东西,但是现在有了 CSS 子网格,当你嵌套网格以及所有布局如何协同工作时,这是另一回事。另一件事实际上是,有很多这样的事情,你过去需要像 less 或 Sass 这样的预处理器框架才能做到,而现在 CSS 就可以为你做到。

你知道,比如变量、嵌套规则。CSS 中甚至现在有一个函数,你可以混合颜色,你知道,以一定的比例混合不同的颜色等等,这是我添加到第二版中的一件事。但它变化太快了。有一个锚定位置,

锚定定位。所以你可以,如果你有一个弹出式元素,你可以让它相对于另一个元素浮动。你可以让它固定,这样当你滚动页面时,它会随着页面一起移动等等。嗯,发生了太多事情。这很难跟上,当然,但写一本书来帮助你学习其中的一些内容,当然。是的。而且,呃,如果他们正在考虑写一本书,人们应该考虑哪些事情,比如

时间投入。是的,这是一个很大的时间投入。所以我与 O'Reilly 合作的那本《Web API 食谱》,从开始写作到完成大约花了我一年时间。CSS 那本,我现在正在写的那本,我是在 12 月开始写的,我可能几周后就会完成第一稿,所以时间没有那么长。但你肯定需要六个月到一年的写作时间

但是,这并没有结束,因为那只是草稿。然后你通常会有技术审稿人提供他们的反馈。你确保你写的内容是真实的。然后你需要检查并进行更改。然后,文案编辑会更改你某些词语的表达方式。所以这是一个漫长而冗长的过程。我的意思是,你的书真正上市可能需要一年半甚至更长时间。好的,太棒了。你在 freeCodeCamp 出版物上出版了一本手册。是的。

呃,我们确实有一个编辑团队,呃,他们会查看它并进行一些基本的核实。我们没有像 O'Reilly 提供的那种完整的技术审查流程和专家小组。你能比较和对比一下你出版的那本手册的写作过程吗?我在节目说明中链接了这本书。我在节目说明中链接了很多令人兴奋的东西,包括 Joe,你最近完成的电子游戏合集。是的,因为你是一个努力的程序员。我们稍后会谈到这个,但是,对于书籍,呃,

嗯,比如,比如你可以比较和对比一下在……是什么?O'Reilly 的出版经历,呃,出版商是……嗯,O'Reilly 是什么?《Web API Cookbook》是 O'Reilly 出版社出版的。另外两本是 A-Press 出版社出版的。好的。呃,所以也许你可以比较和对比这两个过程以及所涉及的时间。是的。当然,写作,你知道,对于我为 freeCodeCamp 做的那一本,时间要少得多,嗯,

它更快,你知道,这是因为,首先,它是短篇幅的内容。它不是一本 300 页的书,这就是为什么,你知道,有时需要很长时间。但是这些短篇幅的东西,它们往往以更简化的方式进行。这也要取决于编辑流程。那么,在撰写技术书籍并经历这个过程方面,技术……

技术审查流程是什么样的?当你与大型……比如,你真的认识这些人吗?还是通过电子邮件来回发送?还是有什么大型的 Google 文档,每个人都在上面?还是有什么更专有的工具?是的,这有所不同。嗯,取决于出版商,当我为 O'Reilly 工作时,大部分反馈都是通过……通过 Google 文档或电子邮件发送的。嗯,那更严格。那本书我有四位技术审稿人,嗯,这是一个非常严格的过程。嗯,

而 A-Press 就稍微简化了一些。我有一位技术审稿人,他们只是在 Word 文档(也就是第一稿)中留下评论。这很酷。你说修订过程需要一年半左右才能完成……比如写出书的草稿。然后是修订过程,需要多长时间?

那可能需要,你知道,至少还需要几个月的时间,这取决于需要进行多少更改,多少轮更改。对我来说,实际上最耗时的事情是在完成一轮更改后,他们更新了书籍的校样。然后我基本上必须多次阅读整本书,并确保一切看起来都很好,并且我们没有发现其他问题。是的。

好的,所以书基本上完成了。你已经收到了预付款。这本书准备开始运送到书店或列在网上商店中了。你能带我们了解一下所谓的最终金唱片制作完成,现在开始印刷之后会发生什么吗?

我的意思是,这是主要过程的结束。之后你扮演的重要角色是尝试推销它。你知道,出版商只能做这么多,这就是为什么我要说这可能是一个有争议的声明。我不知道,但是……

我认为拥有大量在线粉丝的人更容易出版畅销书,因为有更多人看到你关于它的宣传推文和帖子。是的,这并不奇怪。许多最优秀的儿童书籍作者只是名人,有人为他们写了一本儿童书籍。没错。

我的意思是,也许马修·麦康纳确实写了那本美国每个图书馆都觉得有义务购买一本的儿童书籍。但我认为他们只是在他的书上贴上了他的名字,对吧?我们会看到的。不针对德克萨斯州的同胞马修·麦康纳。但是……

所以这本书,你基本上是在为你的书加油鼓劲,比如尝试说,“嘿,看看这本书。这本书……”你是否做过任何签名活动或参加过任何会议或在这里宣传你的书?没有,我在 Twitter 上进行了一些签名书的赠送活动,这很酷。反响非常好。嗯,但是,没有,我没有以宣传书籍的名义参加过任何会议。我很想做这样的事情,但机会还没有出现。是的。你认为你会写更多书吗?这是一件长期的事情吗?我知道你正在更新这个 CSS 东西。你认为……

因为它听起来非常耗时,而且并没有赚很多钱。这只是你的爱好吗?你会继续这样做吗?我不知道。因为每次我完成一本,而销量达不到我的预期时,我总是说,好吧,我想我不再写书了。然后又会有一些其他的事情出现,我说,也许我会再写一本。所以……

任何事情都可能发生。我认为我现在还没有计划写其他任何东西。但是,你知道,谁知道呢?我可能会有一些很棒的想法。写一本关于 MCP 的书什么的。我不知道。模型上下文协议。据我了解,它基本上是与大型语言模型对话的 API。是的。是的。所以随着技术的不断发展……好的。然后是技术写作,我忍不住要问关于人工智能的问题,因为……

每个人都在问,技术写作是不是要消亡了?我们是否只需要人工智能来编写我们的文档?进而编写我们的技术书籍?呃,人们是否只需要通过与大型语言模型对话来进行对话式学习?呃,或者他们会对 Google 进行人工智能概述,比如总结整本书?比如,

你认为技术书籍的未来会怎样?你认为人们会取代他们学习风格的这一方面吗?那些在 TikTok 上长大的孩子们会直接跳到简短摘要,比如人工智能总结吗?

我认为这是很有可能的。我认为对于作者来说,创作真正脱颖而出的内容会越来越难,因为人工智能在创作这些东西方面越来越擅长了。嗯,

拥有你曾经写过的所有东西和我曾经写过的所有东西的不公平优势。没错。这就像试图与你自己的鬼魂竞争一样。是的,没错。我认为这将变得更具挑战性,并且

我认为人情味仍然是一个优势。我的意思是,他们有一些可以检测人工智能写作的东西,因为它仍然是可以检测到的、可预测的。但我认为情况会好转,这可能会变得更具挑战性。是的。所以……

你认为如果有人在 Twitter 上有不错的粉丝,比如假设他们在 Twitter 上有,我不知道,比如 2 万人,或者 2 万人,但在我看来,LinkedIn 现在实际上比 Twitter 更重要,用于建立粉丝群。呃,但是,比如,假设他们在 LinkedIn 上,并且可能有大约……

2 万名粉丝,只是通过做会议演讲、四处走动、与人交谈、在行业中工作了一段时间获得的,你认为他们会从写技术书籍中受益吗?你认为他们有能力宣传它吗?是的,我认为他们肯定有能力宣传它,当然。我的意思是,即使可能有很多拥有大量粉丝的人,你可能只需要自出版,你就可以通过这种方式卖出很多书。在这种情况下,你不需要出版商。如果你自出版,你的版税率肯定会高得多。

是的。如果你要自出版,你会怎么做?只是为了说明一下,这并不重要,但是你大约有……

2000 多名 Twitter 粉丝,你在 LinkedIn 上有 1000 多名粉丝。是的,所以自出版,我的意思是,这真的很容易。你制作一本 PDF 格式的书,然后使用 Gumroad 或类似的网站来销售它。我不应该说这很容易。你仍然需要编写内容并格式化书籍等等。但是实际的分发方面是……

你没有技术审稿人。你会让朋友技术审稿吗?你会只是与大型语言模型交谈,看看它是否能发现错别字吗?如果你想自出版一本书,你会怎么做?我认为我现在可能会至少两次利用大型语言模型。

在某些时候,我会尝试检查一些东西。这段话准确吗?但是我会再次检查它所说的内容,因为它可能会说,“哦,是的,这是不对的,因为这实际上意味着这个。”我查了一下,它就像某种无效的 CSS 语法,这种情况仍然会发生。所以我认为它是一个工具箱中的工具,但它不是。

它不是全部,它不是全部。是的,一直在说,但是,是的,是的。这将很有趣,看看会发生什么。我当然。我仍然没有完全相信我们会拥有……

马克·吐温,就像在《星际迷航》中一样,马克·吐温和你一起闲逛,或者莱昂纳多·达芬奇和你一起闲逛,给你建议之类的事情。是的,她总是去全息甲板上与莱昂纳多·达芬奇交谈。对。嗯,但是,

我想,根据你目前每隔几年出版一本书、继续担任软件工程师、偶尔构建开源软件的生活方式,你认为你职业生涯的未来几年会怎样?假设人工智能不会完全颠覆一切。你认为 20 年后你会在哪里?

嗯,我现在正在尝试计划的一件事是尝试在未来寻找更像架构师类型的角色。你知道,真正好的事情是像一个利基市场,比如 UI 架构师,因为 UI 确实是我的强项。你知道,有时我想知道为什么我还没有这样做?因为我知道一些比我年轻得多、经验少得多的架构师。但是每个人的旅程都不同,你们不会同时到达那里。但我认为这是……

这可能是我想去的方向。不过,我还想能够编写一些代码。是的。你认为你会如何获得架构师级别?在我的情况下,我认为我在过去几十年里犯的一个错误是,我过于关注技术技能和代码技能。

并以此为重点。我认为软技能、沟通能力、某种程度上的商业知识。我认为这些都是我在准备好担任这样的角色之前需要真正努力改进的事情。你知道,领导能力类型的技能,正如我提到的,我还没有管理过任何人。所以我可能不像其他人那样拥有领导能力。所以是的。

是的。你认为会议扮演什么角色?你参加过很多会议吗?过去参加过吗?我参加过几次。我想参加更多。但我认为……

我的意思是,我不知道。对我来说,他们只是强化了学习技术知识。你知道,我过去参加过一些不太技术性的演讲,但我从我所看到的会议演讲中并没有获得很多软技能类型的内容。并且

我相信它们存在。我可能只是倾向于更关注更技术性的主题。我认为我需要更多地突破我的舒适区。是的。除了工作和你在白天戴着的软件工程帽之外,当你写书、从事开源工作、做你的日常工作时。

你还有其他方面。这不像你是一个安卓系统,一旦工作完成就会关机。对。不,你回家做其他事情。我想谈谈这个。我谈论这个的目标之一是看看你是否有可能利用你的爱好和其他事情作为潜在的途径,来结识更多的人,而不仅仅是你所说的,比如纯粹专注于安全软件的人,专注于……对。是的。

很多你关注的事情。嗯,但是,也许你可以谈谈你每周花在工作以外的 100 多个小时里做的事情。嗯,通常下班后的时间是家庭时间。通常,你知道,那是我能和儿子一起度过大部分时间的时候。嗯,

一旦他睡觉了,一旦其他人也睡觉了,通常就是游戏时间。就像我说的,除了软件开发之外,我的最大爱好可能是游戏。自从我上中学甚至更小的时候起,我就一直这样。在我儿子出生后的头几年,我暂停了一段时间。我没有时间。但是后来我复出了,做了很多这样的事情。

我也喜欢很多桌面游戏。实际上,我将在几周后与一些朋友开始一场龙与地下城战役。我很期待。我已经很久没有玩了,所以这应该很酷。这是主要的事情。我喜欢阅读很多科幻小说和奇幻小说,尤其喜欢。

当我想要逃避现实时,有时我会这样做。是的,所以你了解电子游戏,你了解桌面游戏,你了解软件开发。你有没有想过,伙计,我应该……我的意思是,你是一个作家,你有没有想过要制作游戏?我有想过。说实话,我确实想过。我从未想到过一个我认为足够有趣的游戏创意,但我不会说永远不会,因为如果我能想到一个很酷的游戏创意,有一些很酷的游戏机制,即使我没有多少背景,任何背景,在游戏开发方面,我认为与大型语言模型合作,我可能可以做些什么。看看人们现在正在制作什么……

现在是vibe编码这些游戏。令人难以置信。如果曾经有过尝试的时候,现在可能是好时机。是的,嗯,开发游戏的工具非常强大。我的意思是,这款游戏《Hotline Miami》。哦,这款游戏很棒。哦,是的。是的,它是在……

某种游戏制作工作室或类似的东西中制作的,哦,是的。哦,酷。这太疯狂了。现在想象一下,一个独立开发者可以用虚幻引擎或类似的东西做些什么。对。或者,哦,是的。Unity 或类似的东西。是的。所以工具已经进步了。我们在 free 上发布了大量关于游戏开发的教程。呃,但是再次,比如是什么,呃,

游戏应该是什么样的?你有没有想过,哦,我只是要制作一个 JRPG,或者我要制作一个交互式的龙与地下城类型游戏,甚至是一个 roguelike 地牢爬行类型游戏之类的。我的意思是,感觉上有一些明确的类型,你可以玩耍的形式。我认为如果我要制作游戏,我可能会想制作某种故事驱动的 RPG 类型游戏。因为除了第一人称射击游戏之外,这可能是我最喜欢的其他类型。是的。

我玩了很多《刺客信条》游戏,以及那些具有更多 RPG 元素的新游戏,我认为这真的很有趣。虽然我不总是擅长这些类型的游戏,但我确实很喜欢它们。

是的。嗯,告诉我你的龙与地下城小组的情况,因为这是一个巨大的现象,很多人,尤其是在疫情期间。龙与地下城变得非常流行,人们通过视频远程玩耍。你实际上是与波士顿都会区的人见面吗?你们聚在一起坐在一张大桌子旁玩吗?嗯,在我们即将开始的战役中,我们将虚拟地进行,因为其中一个人在匹兹堡,我认为。

但我过去也这样做过。实际上,当我上高中的时候,这要追溯到很久以前,我的家乡有一家游戏店,人们会去那里。我们在那儿进行了一场龙与地下城战役。我们会玩《轴心国与盟军》。这太棒了。他们有你可以租用时间并在上面玩《魔兽争霸 2》的电脑。这是最好的。

那家店的名称是什么?你还记得吗?叫做 Paradox Books。Paradox Books。非常酷。是的,像那些当地的游戏店,LGS。你最近去过这些地方吗?我已经很久没有去了。我知道波士顿地区有很多团体进行桌面游戏等等。这可能是一件很酷的事情,可以让你离开电脑屏幕,与真实的人做一些事情。是的。是的。

麻省理工学院有一个棋盘游戏之夜,我去了,我只是闲逛,我不知道,大约 10 年前,12 年前。也许是 15 年前。那是很久以前了。但基本上,我去那里,我只是坐下来玩这个游戏《纵横天下》,和一群非常聪明的人一起玩。这很轻松。他们不在乎我是否愚蠢或其他什么。是的。所以专业提示,

波士顿很棒。另一个专业提示。不要在冬天去。嗯,除非你真的,真的喜欢……很冷,呃,但是,呃,但是是的,比如向麻省理工学院棋盘游戏俱乐部致敬,呃,欢迎我并让我和他们一起玩了一晚上。嗯,桌面游戏是建立……社交联系的好方法,而不是整天盯着矩形看。

是的。是的。不针对那些想玩电子游戏的人,但肯定有一些话要说,那就是只是坐着、交谈、拥有更多真实的纸张和雕像等等,以及四处走动。是的。

是的,我们过去玩……我不知道你是否玩过《帝国突袭》这款游戏,但它是一款带有微缩模型的棋盘游戏,我们过去经常玩。我们过去会成群结队地玩。我们会去我家附近的一家红帽办公室玩,我们会一直玩到凌晨 2 点。这很棒。你认为是什么吸引了这么多未来的软件工程师玩桌面游戏?你认为为什么这么多桌面游戏爱好者最终会从事工程工作?

嗯,我认为有很多相似之处,你知道,就规划和战略而言。你知道,你必须真正理解有时非常技术性的游戏机制。我认为如果你有这种能够理解这些东西的头脑,你也可以将其应用于构建软件或构建你自己的游戏。你知道,正如你所知,其中一些游戏确实有复杂的规则集和规则。

我认为它可能只吸引某种类型的人。是的。是的。太棒了。嗯,我很高兴和你交谈,我还有一个最后的问题要问你。那就是……所以现在,你非常成功。你养家糊口。你正在做有意义的工作。你正在出版书籍。是的。

从事开源工作,你正在实现梦想。我认为很多人都会喜欢你现在的样子,Joe,并且住在非常酷的城市。是的,比如能够在新的技术出现时进行实验。但是也许还有一些其他的事情,比如你可能比现在更进一步。我想借此机会让你向自己发送一个时间胶囊。

当你上高中的时候,也许你正在努力弄清楚该做什么,该优先考虑什么。比如你会给自己发送什么建议?呃,大约 20、23 年前。

嗯,我不知道高中。我不知道我能给高中时代的自己多少可行的建议,但我肯定会对自己说,至少在我的职业生涯早期,因为我犯的另一个错误是我没有找到导师,因为我从未这样做过。我认为这也阻碍了我很多成长。我没有导师来教我这些东西的技巧。我不得不自己弄清楚,这花了更长时间。但我也会说,我想,是的,

也许更全面一些,不要总是只专注于编码,你知道,学习商业知识,学习生活知识,对我来说,你知道,也许如果我那样做了,我会……我会已经担任架构师职位,或者也许我已经开始做 SaaS 并现在变得非常富有,谁知道呢,但是是的,嗯,但我认为这是我会给自己的两条主要建议,我的意思是,总的来说,我认为在我的高中时代,事情进展得相当顺利,嗯,

我认为。关于指导,只是一个很小的后续问题。呃,你自从……或者也许不是正式称为指导,但像你与之密切合作过的人,帮助过你,或者你是否反过来以这种身份帮助过其他人?我,

我的意思是,我还没有正式指导过任何人。我认为我确实对某些人扮演过这种角色。即使在后来的几年里,我也没有真正找到可以仰慕的人来帮助我处理一些事情。这很难,因为有时这必须自然而然地发生,而对于某些人来说,有时就是不会发生。但这是我从未与某人建立这种关系的遗憾之一——

来……来……来帮助我成长。嗯,但我认为,我认为现在帮助更年轻的人仍然对我有帮助。它,它有助于强化某些技能,因为那是更多软技能,我想你可以这么说,嗯,它的人性方面。我有一些,我仍在努力学习更多并变得更好,当然。是的。是的。

最后,最后一个问题。你之前提到的那个叔叔,他在给你提供奋斗目标和让你对技术感兴趣方面发挥了如此重要的作用。他还活着吗?是的,他还活着。他的名字是什么?

马克·罗伯特。马克·罗伯特。好吧,如果你正在收听这个节目,感谢你所做的一切,成为一个积极的影响。谢谢,马克叔叔。是的,在 Joe 的生活中。愿每个人都能如此幸运地在生活中拥有一个马克叔叔,或者为下一代孩子们服务,就像马克叔叔一样。是的,这就是重点。嗯,Joe,很高兴和你交谈,向你学习。非常感谢。我玩得很开心。祝你即将出版的书一切顺利。

谢谢。是的。下周见,大家。继续做你正在做的事情。哦,谢谢。是的。

我们不会去任何地方。freeCodeCamp 将会在这里。我们将继续为每个人制作这些开放式学习资源。再次,如果你想支持 freeCodeCamp 的使命,请考虑成为通过每月捐款支持我们的超级轻松的人之一。Joe,再次感谢你来到这里,伙计。谢谢。我玩得很开心。谢谢。是的,下周见,大家,编码愉快。编码愉快。

我们不会去任何地方。freeCodeCamp 将会在这里。我们将继续为每个人制作这些开放式学习资源。再次,如果你想支持 freeCodeCamp 的使命,请考虑成为通过每月捐款支持我们的超级轻松的人之一。Joe,再次感谢你来到这里,伙计。谢谢。我玩得很开心。谢谢。是的,下周见,大家,编码愉快。编码愉快。