旅行者学习技术的方法:从城市探索到技术架构的思维模型

本文通过城市探索的类比,分享了高效学习技术的方法论,包括从广度优先到深度钻研的策略,适用于安全咨询、软件开发及技术领导者的持续学习与知识管理。

旅行者学习技术的方法

作者:Joe Basirico
发布日期:2020年5月1日
阅读时间:6分钟

我在安全咨询职业生涯中最喜欢的一点是不断学习新主题的机会。安全贯穿软件的每个方面,而软件无处不在。你口袋里的手机、耳机中的蓝牙芯片、汽车以及每天依赖的SCADA系统都在代表你执行数百万行代码。每个系统都让我有机会获取新知识,这确实令人兴奋,但当总有这么多要学习的内容时,也可能令人望而生畏。

自从十年前担任领导角色以来,我不得不学习以前完全不在我专业范围内的主题:管理、财务、人事、人力资源等等。与此同时,我需要在技术上保持敏锐。作为组织中的领导者,我必须了解几乎每一个新的技术工具、漏洞、流程和方法。我也必须现实地认识到,我的工作是能够与团队中的专家进行智能对话,并帮助他们找到最佳解决方案,而不是自己提出最佳解决方案。我无法像团队中的工程师那样深入了解所有细节,所以我信任他们比任何人都更了解细节,然后我可以帮助提供背景:历史的、业务的、技术的、政治的等等。

我想分享我的认知和学习方法,以帮助你快速学习新概念。自从我进入这个行业以来,我一直在使用这些思维模型。我认为无论你是刚进入一个新领域,还是在增加数十年的经验,它们都同样有效。

城市探索

当我第一次搬到西雅图时,我选择了一个我认为我会喜欢的地区(大学区),并在那里住了相当长一段时间。我会在我的社区散步,探索街道和餐馆。这样做时,我建立了该地区的心理地图。一段时间后,我对该地区的了解看起来像这样:一些经常光顾的咖啡店的熟悉路径,以及一些只有粗略了解的领域。

最终,我想探索新的社区。这一切都发生在谷歌地图或iPhone出现之前,所以导航有点困难,可能会把你带入未知领域。幸好有MapQuest可用,但我必须打印出方向(在纸上)并完美遵循这些指示才能到达目的地。如果我转错了弯,我可能会发现自己在一个全新的地方,花很长时间寻找我计划的路径。

我发现这种导航方式让我能够增长对新地区的了解,并将其锚定在我现有的理解中。首先,我会了解一点关于新社区的信息,然后每次回去时,我会了解更多关于该地区的信息或到达那里的新方式。第一次访问一个新地区时,地图很小,连接很弱。

但随着时间的推移,我会学习新的连接并发现有趣的地方探索。

最终,我会建立更好的我的社区及附近其他地区的地图。

随着时间的推移,我创建了城市大部分地区的详细心理地图。我发现了探索的公园和湖泊,并偶然发现了城市中似乎不协调的部分,因为有不和的城市创始人在街道方向上无法达成一致。

应用到技术

不同技术之间和学习新城市有许多相似之处。学习技术从选择一个感兴趣的领域开始。然后你开始探索该领域,直到感到舒适。你了解工具,知道该领域的领导者,并阅读了相关书籍。一旦在一个领域感到舒适,你可能会扩展到相邻领域。你与新主题的连接起初会很薄弱,但如果你觉得有趣,你会不断返回,直到你很好地了解第二个领域。

当你继续探索新领域时,会变得更容易。有时你可以使用相同的工具或地图,或者也许只是因为你有基于所有其他使用过的东西的参考框架,工具和地图变得更容易理解。

我认为这与架构和框架类似。所有使城市相似的范式也可以应用于新技术的思考。客户端服务器模型可以应用于大型机和终端,或移动应用和API,或带有集中控制器的SCADA系统。

如果你在洛杉矶长大后走在罗马的街道上,你可能会发现自己很容易迷失方向,就像从Web应用开发跳到机器学习一样,但一旦你学习了足够多的新社区,事情就会变得更容易。

从高层次看每个社区如何连接,以及在街道层面如何应用技术,使新主题更容易理解。

先广度认知,再深入钻研

我喜欢了解一个新城市的隐藏宝藏,但更多时候我会从“必看”地标开始。我使用步行或火车等标准旅行方式在社区之间移动。一旦我在一个新地区花了一些时间,我会开始更深入地探索。当我在一个新城市时,我首先寻找相似之处和与我以前见过的东西相似的地方。

学习技术也是如此。首先,尝试应用熟悉的范式。什么与我已知的其他东西相同?接下来,寻找地标。什么使这项新技术独特或根本不同?最后,深入探索。什么深奥的概念使这项技术真正不同和令人难忘。

我想对我接触的每件事都有深入的理解,但我也必须现实地知道,对于每一项可能的技术来说,这是不可能的。能够快速浏览并理解什么最有趣已经成为我最大的资产之一。这类似于开发人员在编程库时有时会“存根”新功能。在你的脑海中做一个标记,这样你就知道如果需要学习更多,可以回到哪里,但然后继续前进以获得完整的画面。技术的某些领域你可能会深入学习,而其他领域可能永远不会再返回,即使它们曾经非常有趣。

例如,我从未完全掌握LINQ在.NET中的使用方式以及它与Entity Framework的区别。在需要获得这些深入知识之前,我转向了Ruby on Rails和Active Record作为我的ORM。因此,关于LINQ的知识在我的脑海中是存根的。我知道它是什么,如果需要返回,我知道在哪里学习更多。我还有从使用Active Record和其他ORM时获得的地图和工具,所以我知道我可以快速掌握它。

知道何时学得足够多,以及深入多少本身就是一种技能。有些主题比其他主题更适用于你的工作,而有些主题比其他主题更有趣。归根结底,理解广度和深度之间的权衡是一个值得的目标。

我希望这些学习模型能帮助你构建新的挑战。学习你的第一个新社区会很困难,但一旦你成为一个世界旅行者,你将积累工具、地图和框架,使学习更容易和更快。但不要忘记停下来探索沿途的那些隐藏宝藏。

请订阅我们的时事通讯。每个月我们都会发送一份时事通讯,包含新闻摘要和我们最近几篇文章的链接。不要错过!

另请参阅

  • Defcon - 进入安全领域从未有更好的时机
  • 安全培训能改变生活吗?
  • 总是关于人
  • 与公钥基础设施之父的对话
  • 它会出错。当它出错时你会做什么?

分享与讨论

  • 在HackerNews上讨论
  • 在Twitter上分享

归档 under
Leadership, Training, Careers, Learning, Guidance, Professional Development

Joe Basirico & Jason Taylor © 2023

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计