在本周的社区故事里,Brian 和 Jonathan 抽空聊了聊跨文化体验、函数式编程,以及从美国中西部搬到斯堪的纳维亚是什么感觉。
**Jonathan:**大家晚上好,欢迎收听 Exercism 播客。今天非常荣幸,请到了 **Brian **Underwood。**Brian,**你现在住在哪里?也请你讲讲自己的故事,你是怎么走到今天这一步的。
**Brian:**当然。谢谢你邀请我。我在瑞典的斯德哥尔摩。不过我原本是美国人,出生在俄亥俄州,所以从那儿走过来还挺远的。
**Jonathan:**不会吧。
**Brian:**那个,我猜,你想知道的是我来自哪里,以及我中间这段经历吧,我猜。
**Jonathan:**对,没错。你是怎么从美国中部跑到……瑞典、跑到北欧的?这步子跨得可真大。
**Brian:**当然是啊。没错,就是美国中部。你说“中部”我一点都不怪你,真的没人知道俄亥俄在哪儿。所以,挺有意思的。嗯,我大学读的是俄亥俄州立大学。学的是计算机科学和教育。挺有意思的,我很喜欢。我在那里的时候,一直在……人文学院做技术支持。我很幸运,刚入学就在那儿找到了工作。毕业之后我又干了几年。后来,我想我是对当时的状态和做的事情有点腻了,加上我女朋友又跟我分了手。所以,这个就不提了,不提了。
**Jonathan:**可以说是段不太愉快的回忆。
**Brian:**是啊,事后看其实都没什么。不过当时我觉得,好吧,机会来了。于是我决定花几周时间去欧洲旅行,那是我第一次……真正离开美国那么久。欧洲这一趟挺好的。不过在那之前,我就决定要搬家了。我当时定的是搬去波士顿。后来,我不知道算不算走运,我拿到了几个机会。比如我一直做的都是 Mac 支持这块,算是我的老本行,所以其中一个机会就是波士顿一份做 Mac 技术支持的工作。另一个是一家小创业公司,做的是给手机公司用的软件,比如他们怎么在门店里布置商品陈列。其实我特别想转行当程序员。另一份工作则是我做了很久的那类事。但我觉得我倾向的是“好,我要开始新生活,开始我想要的那份职业”这条路。不过能拿到这份工作,我觉得也有点走运,因为他们当时应该很缺人,就把我收了。结果那家公司还挺大,我在那儿干了好几年。嗯,那算是起点吧。简单说,从那儿开始,我遇到了我现在的妻子,我们搬到了普罗维登斯,在那儿结了婚。后来我们搬去加州,我妻子在旧金山找到了工作。我当时想,行,我是软件开发者,我能在旧金山找到工作,没问题,不用担心。那段时间挺好的。我们住在奥克兰,在旧金山工作了几年。后来我们决定出去旅行几年,就带着当时两岁半的儿子环游世界两年。然后,嗯,回到美国待了几年。再后来我们就想,哦,我们旅行时路过斯德哥尔摩,我们俩都很喜欢那里。于是我们说,好,我们要回去。这就是我们过去四年左右待的地方。
**Jonathan:**你妻子是瑞典人,还是只是因为你喜欢斯德哥尔摩?这背后是什么故事?
**Brian:**不是,这问题问得好,很多人都会问。但真不是,我们俩都是美国人。我们三个人都是美国人,包括我儿子。不过他瑞典语说得比我们俩都好。我们还在努力学。总之,我们就是很喜欢那里。我们旅行路过的一些地方里,有几个我们会想,嗯,要是真想搬到哪儿,说不定会住那儿。其中一个就是奥克兰,我们路过那儿,很喜欢。在新西兰?你是说新西兰的奥克兰?对,就是新西兰。不过那有点太远了,要是想回俄亥俄探亲,那可就是长途跋涉了。当然,从瑞典回去也够呛。
**Jonathan:**好。你刚才提到计算机编程,或者说计算机科学,抱歉,还有编程。这两者的区别是什么?因为在我印象里,计算机科学差不多就是编程,但显然不是。或者也许是,我也说不清。你具体指的是什么?
**Brian:**嗯,我也不确定我知不知道区别。我拿的是计算机科学学位,我觉得那也算是编程,但并不是……你可能听别人说过,大学学位里不一定能学到工作中真正用到的那些现实的东西。而且从我上大学到现在,情况大概也变了不少。现在可能更偏向实用性的教育。我记得……当时我们学的主要是 C 和 Java 这两门语言。特别是我记得有一门 Java 课,老师非常……那是一种教学方法,或者说处理问题的方式,要求你把每个函数都写得特别详细,注释清楚,叫做契约式设计。就是说,你要写清楚它的职责。就像一份法律合同,你得说明,好,你的责任是什么?我的责任是什么?用契约来设计一个函数,意思就是,如果你在这些变量里给我这些值,比如这个参数你永远不能给我负数,而且你要保证这个字符串永远不为空,之类的,对吧?这些是你负责的。你做到了,我就承诺去做这件事,让它发生。所以我们有一套注释结构,我记得我当时特别困惑,以为这些注释会被执行,是程序的一部分。我好几天都在想,这到底是要我干什么?后来我才慢慢明白,这只是一种非常正式的方法。我觉得它从某种意义上是好的,因为思考有时会塑造思维。去想一个函数不必处理所有可能发生的情况,这是件好事,因为否则只会把人逼疯。
**Jonathan:**那你上大学时,计算机科学算是你主要考虑的专业。你是怎么做出这个决定的?是因为你在中学或高中就自然而然地对偏科学的学科有偏好,还是某个时刻你突然觉得,这个专业真的很适合我?在决定要读计算机科学之前,都有哪些铺垫?
**Brian:**嗯,我大概挺走运的,天生就被它吸引。我也不知道,我记得……有一次我要在几个项目之间做选择,一边是文理学院的计算机科学方向,另一边是工程学院的计算机科学方向。其中一个要修语言课,比如我从高中起就一直在学西班牙语。另一个则是,哦,你不用修外语,但要多学物理和数学。我当时就想,好,算我一个。所以我想我确实是被它吸引的。虽然我经常想到一件事,也许这是我作为对科学或数学感兴趣的人的一种特权吧,但我觉得大概……数学,做数学。很多人会说,哦,数学,我一想到数学就紧张,或者觉得有压力之类的。我理解,这完全可能。但我在想,会不会有时候……有些人就是不知为什么能在数学里找到乐趣,并且能对它兴奋起来。其实花的功夫是一样的,要琢磨的东西也一样,只是感觉不一样,因为我们玩得开心的时候,就不觉得那么累了。这大概不完全是这么回事,这只是我的一个个人理论,可能只对了一半。
**Jonathan:**不过这挺有意思的,因为我在英国读 GCSE 时学了三年化学,前两年你都在学,一直到 GCSE 考试,然后 16 岁的时候有一大堆考试。你要学很多科目,大概十门,挺多的。然后你决定,好,我要读 A level,要么多学数学、科学,要么学英语、戏剧。但我记得化学对我来说有两年都没开窍,直到考试前一周,一切突然都通了,元素周期表,这一切是怎么运作的,哦,原来所有答案都能从元素周期表里找到,我只要……就像填字游戏一样。那盏灯一下就亮了。从那时起我就觉得,哦,这是有史以来最简单的科目。可走到那一步,我挣扎了两年。这挺有意思的,因为我觉得对我来说编程也类似,就是把自己长时间沉浸在里面,然后突然就懂了。我很期待它慢慢朝那个方向走的感觉。不过我觉得你刚说的那种情况,我见过一些朋友,他们一下子就懂了,而且很享受,解决问题本身就是学习的主要部分,我觉得这很有意思。所以你也有过这样的体验,挺好的。
**Brian:**其实有个 app,我儿子在 iPad 上玩过。有一家公司,或者说一系列 app,叫 Dragon Box。不知道你听没听说过。他们做的教育类 app 很不错。通常我对大多数教育类 app 都挺怀疑的,但他们有几个做得真的很好。其中一个是关于几何的。我经常把这个当作一个比喻,不过我要说的不是几何,是代数。他们也有一个几何的。但代数那个,它其实不教你代数的概念,它教你的是代数的运算机制。
**Jonathan:**别忘了给这个视频点赞,并订阅我们的频道,收看更多类似的视频。
**Brian:**它用的方式是,你有两边,各有一个不同的盒子,你要让两边保持平衡。你把怪物从一边移到另一边,或者把某种怪物变换成另一种。我有一阵子没看了,但我记得很清楚,他学的是代数的运算机制,尽管他并不明白自己在朝着什么目标走、为什么要做这些。但做起来很好玩,他们把它做得让人特别投入。我觉得这最棒的一点是,我想等他开始学代数时再让他玩一遍这个 app,因为我觉得,如果运算机制已经熟练了,你就不用太操心那些东西,可以从更高的层面去思考,而不用为机制上的东西紧张。我想这也许就是你说化学时的感受。我不知道你当时是不是这样,但也许就是,我为什么要关心这些机制、这些规则、这些东西?而一旦你到了某个点,就会想,好,这段我熬过来了,现在我可以去关心我为什么要做这些了。
**Jonathan:**对,对。这是一次很有意思的经历,因为那是我第一次经历这样一个过程:理解了某样东西,然后又经历一段对这些科目失去信心的时期,你会觉得,哦,我的大脑大概不擅长这种思维方式。但后来你再看英国文学,比如我学的就是它,你会非常系统地去看语言、看结构、去理解这些。但同时其中又有微妙之处,有艺术性。你可以说,在开发和写代码里也有这种艺术性的成分。每个人都有自己的小风格,我越来越意识到,任何事情都没有铁律,全都是取舍。总之,这真的很吸引人。那么,你帮我们做过学习小组。如果有听众记得,我们办过 Elixir 和 Golang 的学习活动,**Brian,**你帮了一些忙,尤其是 Elixir 那个学习小组。那你是怎么进入 Elixir 这门语言的?背后有什么来龙去脉?
**Brian:**说起来挺有意思,今天刚好有人问了我一模一样的问题。因为,怎么说呢,它算是一门比较小众的语言。不过我一直待在 Ruby 的世界里。我做了很多年 Ruby 开发者,我真的很喜欢 Ruby,因为,你知道,我是那种想把事情做成的程序员,我想解决难题。而当你纠结于各种小细节、要处理指针之类的东西时,是很难把难题做成的,对吧。所以 Ruby 在这方面很棒。后来,当然,Elixir 的创造者 José Valim 就是从 Ruby 世界出来的。他在 Ruby 圈里已经很活跃,然后决定,不是“需要”,也许是他太厉害了,他要创建自己的语言,并在那里面继续高产,而且做得非常出色。所以我算是被卷进了那个世界。我会听一些播客,他们有时候会聊 Ruby,然后就出现了,哦,这是新东西,Elixir。后来有一个挺关键的转折,其实是件挺根本的事:我当时正好搬回哥伦布住了一段时间,俄亥俄州的哥伦布,José Valim 来到了哥伦布的 Ruby 小组,哥伦布 Ruby 旅。他们说,José Valim 来了,你想讲什么都行。当然,他说,好,我要讲 Elixir,因为这语言是我创建的,我特别兴奋。对,就是这样。我记得,这很好笑,就在一年前,我找到了那次演讲的录像。画质有点糊,但还能看。我还能找到我问 José 问题的那个地方。我记得当时我很困惑,不明白到底是怎么……
**Jonathan:**我真的很期待。
**Brian:**这些概念,比如你创建这些进程,它们能从失败中恢复,如果你有 supervisor 之类的东西。我记不清他具体说了什么,但我当时就是那种,这是怎么运作的?就是,好,你能从错误中恢复。但你会不会,你还能知道那些错误吗?或者,会发生什么?而弄清楚那意味着什么,是一个漫长的过程。我觉得这是一个非常有意思的过程。我想当时 Elixir 社区里很多人都在琢磨,该怎么描述这些概念。现在有更多的博客文章,有越来越多的东西让人去吸收、更快地入门。总之,那就是我进入这个世界的入口。我想那是一个很重要的入口。就是,哦,这听起来很有意思。如果 José 说它很酷,那我就该去看看。
**Jonathan:**那是不是可以说时机刚好合适,你就顺势转了过去?很多不同的事情凑在一起,对你来说刚好说得通。你当时有没有在探索别的语言?你刚才提到指针,那是指 Go 吗,还是你只是在找一门适合自己的语言?
**Brian:**我觉得我……是的,我特别认同一个想法:不同的东西适合不同的用途。我现在非常投入 Elixir。我大概有点偏见,觉得,是的,Elixir 几乎什么都能做。这可能不完全对。至于指针,我想我当时想的是 C,我大学里学过一些 C、C++,我想是这样。 嗯,是的,那么,有好几年我都在用图数据库 Neo4j。我特别投入。我还是 Ruby 版 Neo4j gem 的维护者之一。因为它是这么 不用讲太深,但图数据库能让你把某些事情做得更快,或者说在某些方面更容易。对我来说,它有点像……用 Neo4j 做这个的人不多,但我觉得它有点像 Ruby,它帮你从更高的层面去思考问题,从而让你把事情做得更漂亮。我认同这个想法:图数据库适合这种用途,关系型数据库适合那种,文档数据库又适合另一种。还有,如果我需要做一个小服务,要跑得特别快,也许我会用 Rust 或 Go 之类的来写。所以我该了解这些语言。而更高层的东西,有 Ruby 和 Python,但现在还有 Elixir,Elixir 其实有很多很棒的优势。要弄清什么适合什么用途是非常难的,因为一门语言涉及的东西太多了,要判断它适不适合某个用途很难。而且人,包括我自己,会因为这样那样的原因对自己喜欢的某些语言投入感情。所以,这就很难。嗯。
**Jonathan:**那 **Brian,**你工作中每天都会用 Elixir 吗?你现在的工作是什么?每天大概是什么样子?
**Brian:**嗯,我是 Erlang Solutions 的顾问。我现在在服务 Erlang Solutions 的一个客户,公司叫 VicAI。不知道你听没听说过。我记得 Lars Wirthven 帮过他们一些忙,也在博客里写过一点。他在 Elixir 圈里算是有点名气。他们是那种……帮其他公司做事的公司,他们做了一个应用,用人工智能半自动或全自动地帮公司处理发票。好。所以,他们当然有机器学习模型,但他们还有一个 Elixir API,用来协调很多东西。
**Jonathan:**好。那你平时是同时对接很多不同的客户,还是说你在一个专门的团队里,跟着一条线走、和客户合作?这套是怎么运作的?
**Brian:**嗯,我通常在一个功能团队里,有产品经理,还有一位 Web 开发者、一位移动端开发者,有时还有一位后端开发者,以及机器学习团队。有时候会有一位产品或者 QA 的人,帮我们和客户对接,尽量帮我们搞清楚用户和客户真正需要的是什么、最需要的是什么,这挺好的。不过这有点分层,取决于具体是什么,我们有一个大的直接客户,也和一些会计系统、ERP 打交道,他们有专门的人负责录入自己的客户。说实话我不太直接碰客户那一侧。但我想我们有很多种对接客户的方式,得跳很多不同的舞才能把系统集成起来,这本身就是个挺有意思的问题。
**Jonathan:**那你的每一周都挺多样的吗?一周里会做很多不同的事,还是说比较可预期?
**Brian:**嗯,是的,我觉得,我挺走运的,我……通常我手上有一个项目在做。但比如,有件事我觉得可以说,最近我在帮忙确保我们处理发票时的回算逻辑是正确的。因为这事可能挺棘手,光是处理这个就够麻烦了。尤其是当发票来自一堆不同的供应商,他们各自的做法可能不一样。不过我很幸运,他们希望我们确保代码质量过硬,整体上把事情做好。所以我们会花不少时间去做一些让事情变得更好的事,让代码更好,或者改进一些东西。这也是我个人的作风。我通常会尽量抽出一些时间去做,比如我们做了很多和 Data Dog 的集成,用来追踪我们的请求和后台任务之类的。这让我特别开心,因为一旦做完,我就有了做好工作所需的工具。还有,我最近对某样东西产生了兴趣,就是一种组织代码、引用其他模块的方式。Elixir 世界里有个工具叫 Credo,可以让你在代码风格上强制执行不同的规则。所以我写了一条新的 Credo 规则,也许能强制执行那条规则。我挺好奇效果会怎样。
**Jonathan:**好,很酷。说实话,这有点超出我的理解了,不过我相信会有人明白是怎么回事。你前面提到,你好像在一家创业公司干过一小段时间,我没理解错的话。你既有技术支持这一面,也有一段创业公司的经历。将来你会不会还对创业公司感兴趣,还是一直放在心里?你觉得未来五年、十年,你在编程这条路上大概会怎么走?你也许也不确定,但我就是想问问大家,你觉得五年、十年后的自己会在哪里?
**Brian:**是啊,这问题好。我其实……说到创业公司,我一直都是在中小型公司之间来回。
**Jonathan:**谢谢。
**Brian:**我在大公司里待得也挺开心。以前我从来没想过自己会做顾问,直到最近,我有点觉得,能去不同的公司、试着帮他们解决问题,然后再换一家公司,这挺有意思的。我是说,如果有 Big Gag 的人在听,我没有不开心。
**Jonathan:**我本来想说,我不该在播客里问别人这个,不过显然,假设一切都很好。抱歉,我的猫在挠门。
**Brian:**哦,是啊,我们大概一个月前刚养了一只小狗,所以我经常得……她要叫,或者,你知道,一两次在床上尿尿,我就得去处理。
**Jonathan:**我们刚养的小狗,太疯了。每天早上 5 点,凌晨 4 点半,她就跳到床上,开始用爪子扒人的脸。又萌又可爱。但过一阵子你就会想,行了行了。不过,说回刚才的话题,接下来这几年,你最想做到或者实现的是什么?
**Brian:**嗯,这问题好。我挺喜欢去琢磨……我觉得 Elixir 吸引我的一个地方,可能是它还比较新。所以我喜欢去想,有哪些办法可以开辟新路、找到新的模式。尤其是,你知道,不只是,我以前在 Ruby 世界里待了挺久,所以进入 Elixir 之后,有时候会想,哦,这个东西我在 Ruby 里有,要是能把它做出来或者实现出来就好了。但也有一些东西是,哦,这是我在 Ruby 里没法做得很好的,但只要我这么做,就能利用 Elixir 的优势,做得更棒。所以我感兴趣的就是这类事情:找到那些巧妙的用例,把它们讲出来、分享出去。因为这也一直很激励我,我读到一些东西时,尤其是读到真实的用例、看到其中的细节,而不只是,是的,我们做了这件事,大概就是这么做的。我想看到的是代码,或者细节到底是什么。对。
**Jonathan:**听起来你很享受优化这一面,就是拿一样东西,开创一种新方式,把它做得更好、更高效。至少我听出来是这样。你觉得说得对吗?
**Brian:**是的,我觉得,高效是好事。但也许我更想说的是,找到让事情变得有意思的办法。我特别认同这个想法:我们怎么解决问题,才能不用再为它操心?比如做成库,这样我们就能说,好,那个问题,对,那个问题解决了,现在去做别的,去做更值得我们花时间的事,对吧?
**Jonathan:**当然,有道理。我挺喜欢问大家的一个问题是,尤其是,因为我觉得自己算是比较新地进入科技这个行业,也不是从小就开始做开发的那种背景。经常让我注意到的一点是,你听在科技圈的朋友也会这么说,到处都是各种各样的观点,这好像挺常见。不过我们有个问题,喜欢问来播客做客的人,就是:在科技领域,你愿意为之死守的“山头”是什么?当然,说得有点半开玩笑。有没有某个想法或观点,是你觉得,这是我愿意捍卫的?什么都可以。比如一个很好的例子是 DJ,他是我们的维护者之一,你可能认识,他的山头是真正关键的对话所扮演的角色,就是在科技领域进行善意、高质量的对话。也就是说,进行那种扎实、有挑战性的追问,而且建立在正确的基础上。我还在想别人说过什么。Unison 的 Rebecca 说,她宁要团队里有 50 个勤奋、认真、也许天赋没那么高的人,也不要一个天才,却是没法沟通的噩梦。希望这些算是好例子。我这个问题问得有点突然,算是把你坑了一下,因为你可能有很多观点。但有没有一个是你觉得,不,这个我就是要坚持到底的?
**Brian:**嗯。是啊。因为我第一个想到的是,哦,驼峰命名还是下划线命名这种。不过我不知道我会不会为它死守。我觉得很多东西,比如
**Jonathan:**我也想不出来……
**Brian:**是啊,是啊,但很多东西我觉得,随着时间推移,我大概越来越没什么强烈意见了。不过你刚说的那些更高层面的东西,我挺喜欢的。我觉得我可以……我喜欢。让我想想能不能把它说出来。可惜你在剪辑,所以我这些停顿都会消失,对吧?
**Jonathan:**至少是这么打算的。
**Brian:**嗯。有一个工具叫 Remote Retro。我用过好几次,非常推荐。我了解到它,是因为它是用 Elixir 写的。但除此之外,我觉得它设计得很好。随着时间推移,它变得越来越好用。它每次开始都会先来一条“首要原则”,我现在看,发现它是取自 Norm Keith。这里有个 wiki 页面,你可以去查。想看的话可以去 remote-retro.org。不过……嗯,这是那条首要原则,我觉得它就是你在一场回顾会开头读给大家听、把人带入正确心态的东西。它说的是:无论我们发现什么,我们都理解并真心相信,每个人都尽了当时所能尽的最大努力,基于他们当时的所知、他们的技能和能力、可用的资源以及当时的情形。嗯,我觉得这很好。我觉得类似的是……你要确保自己总是……其实我还可以再说一件事。有一篇采访,如果你想的话我可以分享,把链接放进节目说明里之类的。
**Jonathan:**当然,会引用的。
**Brian:**嗯,我一直推荐这篇文章,虽然它总是特别难找,我也不知道,它现在大概已经有点被埋没了。文章讲的是……一个人,他是美国退伍军人事务部,一个政府部门的行政人员。具体来说,我想他管的是他们的医疗系统。有一次采访,他来自航空航天领域。他讲的很多东西是……在航空航天里,在很多,可能不是所有地方都完美,但在他的很多经历里,出了事你会怪流程,而不是怪人。如果哪里出了问题,你会说,好,这不是……比如我在生产环境里删掉过一张表。但幸好没人怪我。他们说,好,那现在怎么办?那我们就让它在生产环境的控制台上弹出来时提示是红色的,这样就很清楚你在生产环境里,对吧?因为我犯过那个错,我以为当时是开发环境。对对。所以我很幸运,在一个会怪流程、不怪人的地方工作。这真的很好。他讲这些,是在医学的语境里,比如,有时候护士可能会给病人拿错药。那是因为有时候标签让人困惑,或者有些东西就是很难,或者怎么样,不理想。那就说,好,我们来修一下。既然我们真的在乎病人,那就把流程做得更不容易出错。所以这件事我觉得对我很重要。
**Jonathan:**这真的很棒。我一定要把这些放进节目说明。这算是敏捷吗?可以说是建立在敏捷方法论之上的吗?还是说有点别的东西?你怎么看?
**Brian:**你知道,这问题好。我的印象是,它在某些航空航天工程圈子里算是相当悠久的传统。我是说航空航天,我想也许就是因为它和,如果你在做飞机,或者在做火箭。你的工作性质就是,这东西必须能用。而当我们要把人放上去,不管是宇航员还是乘客,我们都得让它尽可能可靠。最好的办法就是把自尊放一边,然后说,我们要怎么做?
**Brian:**如果我们照着流程做,怎么做才能每次都尽可能成功。我觉得这也是其中一部分,对。
**Jonathan:**因为我在查 Remote Retro 的时候,看到很多类似敏捷的术语。所以我在想,它是不是从那儿某个地方演变过来的。不过这真的很棒。我以前没听过这个。我听过的那个是关于检查清单的,尤其是在医疗和航空航天领域。比如飞行员会过一遍检查清单,他不会偏离清单。医生也一样。这真的很棒。**Brian,**我们要开始降落了。今晚我还想再问你一个问题。就是,你对 Exercism 社区,接下来这一周有什么建议?如果只能给一条建议,什么都可以。可以是去喝康普茶,我不知道,去你当地的熟食店,或者去跑步、去北冰洋里游泳,什么都行。如果你有一件事想推荐给 Exercism 社区去试一试,这一周会是什么?
**Brian:**干杯!嗯。我会说……嗯,在,在你自己的能力范围之内,因为……你知道,给所有人建议总是很难的。但有一件事对我来说影响很大。有一次我因为突然头疼去了急诊室。当时担心可能是那种突发性头痛,那可能挺严重的。所以我去了,医生看了看我,一切正常。不过医生就随口问了一些一般性的问题,比如,好,你运动量有多少?你的活动量怎么样之类的。我当时,作为一个美国人,就说,嗯,我走得挺多的,大概每周 8000 步,每月,或者说平均每天。他说,你应该每周出去三次,每次 45 分钟,要真的出汗那种。我当时没有马上做。但大概五六个月后,我确实养成了跑步的习惯,通常一周三次,有时一周两次。我觉得那是我生活中很大的一个变化。我觉得它帮了我很多。我知道这件事特别难,对我来说也特别难开始。我想我做到的一部分原因是,我告诉自己,好,我出去跑,如果最后 75% 的时间都在走路,那也行,就这样。我一点点积累起来。
**Jonathan:**这很棒。我觉得你提到这个挺有意思的,因为我们……
**Brian:**我觉得你提到这个挺有意思的,因为我们……
**Jonathan:**不,这真的很棒,因为我们做学习小组时一直在想的一件事就是,怎样才能帮助大家成长、学习,往前推进,在编程这条路上积累势头。其中一个办法就是走出去,哪怕一天只有 10 分钟,就是把自己放到“试一试”的位置上。哪怕你没什么进展,哪怕你只是读了说明,今天就这样了,只要你以某种形式出现了,就会很不一样。不过我觉得这是个很棒的建议,肯定也提醒了我,该去运动一下了,因为老坐在屋里实在太久坐不动了。所以如果有听众在,就采纳 Brian 的建议,出去跑一跑。不过接下来几周斯德哥尔摩会开始变冷。你冬天也在外面跑吗,还是改成室内跑?
**Brian:**嗯,我会跑。而且我会说,最好的运动就是,如果你要每天出去三四十分钟,一周三次之类的,那就是做你最喜欢的那项运动。因为如果你不喜欢跑步,那你大概坚持不下去。所以我先说这个。不过冬天,我有顶帽子,斯德哥尔摩天还黑得早。我妻子给我买了一顶帽子,里面织了反光纤维。好,那挺不错,能保证我的安全。我还有面罩和耳罩可以戴上。对,所以我得把自己裹起来。不过冬天也挺好的,因为天冷的时候,我可以保持低强度,照样能跑起来。对,就是这样,就是这样。
**Jonathan:**哦,太棒了。Brian,我只想对你今晚抽出时间表示大大的感谢。今天大概是很长的一天,还有孩子、工作、新养的小狗之类的,所以我想谢谢你抽时间,也谢谢你和我们分享。听众朋友们,我们会把节目说明放在下面的描述里,你们可以去看看。如果你有机会,又在听这期节目,就去看看 Elixir 学习路径吧。还有 **Brian,**我不知道你有没有在 Elixir 学习路径上做指导,但也许如果你哪天进入指导这个领域,可能会看到一些新面孔冒出来试试看。我听过很多关于 Elixir 的好话,我觉得它肯定是未来值得关注的一个。好了,Brian,祝你今晚愉快。我停止录制后你再稍等一会儿。很高兴能请你来,也谢谢你分享了 Brian Underwood 生活的一些片段。谢谢大家收听,祝大家今晚愉快。回头见。
倾听、学习,并从我们的社区成员那里获得启发。