如何选择有趣的项目:从技能到成果的实用指南

本文分享了如何根据个人技能、兴趣和时间投入选择技术项目的实用方法,包括创建技能清单、评估项目时长和设定明确目标,帮助技术人员找到既有趣又有价值的个人或职业发展项目。

如何选择有趣的项目

Trent Brunson
2021年11月12日
人物,在Trail of Bits工作,职业发展
最初发布于2021年10月15日

立即加入我们的团队!Trail of Bits正在招聘全职高级软件工程师和软件安全研究工程师。

在过去的九年里,我面试了数百名研究和工程职位的申请人。我最喜欢的破冰问题之一是:如果给你50万美元的预算和一年的时间,没有任何监督或后果,你会选择什么样的项目来工作?(没有错误答案。)令人惊讶的是,大多数人从未沉浸在这个思想实验中。为什么?首先,想出一个好项目并不容易!

Trail of Bits鼓励工程师将每周一部分工作时间用于他们选择的内部研发(IRAD)项目,因此他们面临着类似的挑战,即必须承诺一个他们认为可能会喜欢的项目。但在安全主题的海洋中很容易变得无方向,你可能会发现自己漫无目的地滚动HackerNews链接,扫描博客,并仔细阅读arXiv.org上的预印本。因此,在这里,我想分享我在寻找新项目时经历的一个简单练习。

这不是关于说服他人接受你的想法或证明你的项目为什么值得。这是关于你,一个勤奋和好奇的灵魂,发现你真正感兴趣并想追求的主题——不受评判,不受后果影响。

当你做决定时,考虑可能影响你选择的因素:

  • 你拥有的技能
  • 你希望拥有的技能
  • 你有多少可用时间
  • 你在职业生涯中的位置
  • 它将为你的职业生涯做什么
  • 你是否有一个团队来帮助
  • 你希望产生什么影响
  • 你现在在哪里,你想去哪里

通过制作以下五个列表开始收集和组织关于你自己的信息:

  1. 你当前的技能集。写下你在认为自己知识渊博或阅读广泛的领域的优势。列出广泛的主题领域,以尝试全新事物的可能性,或者如果你想将思维引导到特定主题领域,只包括特定领域内的子类别。

  2. 你感兴趣的内容。这真的很简单。你认为什么很酷?也许你读了一篇你认为聪明的文章或博客。也许你钦佩某人的会议演讲。为此,我更喜欢根据我接触的程度对这些兴趣进行分类。这样,我可以在取得真正进展之前看到哪里可能需要留出时间学习基础知识。

  3. 项目将持续多长时间。这不一定是你离开工作去做其他事情的最终日期。我更将其视为一个时间线,你可以在其中停下来问自己是否乐意继续,或者是否想选择不同的路径。

  4. 你每周将工作多少小时。这是为了让你审视当前情况,现实地确定你的投入水平。考虑到你的日程安排、先前的承诺、注意力持续时间和不受干扰工作的能力,你预计每周会专注于项目多少小时?

  5. 期望的结果。这是为了将所有内容联系在一起,并问自己你想通过努力产生什么。结果可能是微妙的,比如学习新东西的满足感,或者雄心勃勃的,比如出版一本书或写论文。

将这些列表并排排列有助于你看到大局,并发现可能导致项目的不同途径。我为自己做了这个来演示它可能的样子:

绿色主题是我相当理解的;我可以轻松地阅读这些主题的学术出版物。黄色主题是我接触过但需要做一些额外的谷歌搜索和阅读来理解一些细微差别的。红色主题对我来说大部分是完全未知的水域。它们听起来很酷,但我不知道我会陷入什么。

发挥创意——使用填空游戏

从左到右阅读这张图表,我可以开始思考所有不同的可能性。

使用我的____________技能,我可以在___个月内学习更多关于______________的知识,如果我每周至少投入___小时来产生一个______________。

当你开始从列表中构建陈述时,应该清楚什么是可行的,什么不是,以及你愿意和不愿意承诺什么。以下是一些例子:

  • 使用我的C++技能,我可以在6个月内学习更多关于LLVM的知识,如果我每周至少投入5小时来产生一篇同行评审的出版物。

听起来不错,但同行评审的出版物可能有点牵强。我完成了LLVM万花筒教程并之前写了一些分析传递,但我从未上过编译器课程,也不熟悉编译器和编程语言研究。因此,一篇博客文章或拉取请求可能在6个月、120小时的投入下更可实现。此外,一个LLVM项目可能对我的职业生涯有好处。

  • 使用我的统计和数值分析技能,我可以在12个月内学习更多关于开源情报的知识,如果我每周至少投入8小时来产生一个新的开源工具。

自从读到Bellingcat如何追踪乌克兰上空的MH17航班击落事件到俄罗斯导弹系统后,我一直对他们的工作非常感兴趣。真的很酷的东西。我认为这个项目和投入水平类似于典型的IRAD项目。在那个投入水平上,我希望它对我的职业生涯产生影响,所以我需要尝试将项目与Trail of Bits的核心价值观之一联系起来。下一步是缩小搜索范围,看看今天的开源情报工具有哪些不足。

  • 使用我的自然语言处理技能,我可以在9个月内学习更多关于主题建模的知识,如果我每周至少投入3小时来产生一篇博客文章。

对于个人项目来说,每周三小时听起来是合理的。它并不完全符合我的职业目标,但这是我过去几年阅读并想了解更多的东西。涉及统计、编程、NLP和机器学习的元素。多酷啊!

立即申请!

在Trail of Bits,我鼓励我的团队将每周20%的工作时间分配给一个IRAD项目。但在讨论想法时,常常听到人们说他们认为自己的想法不够好或不够新颖,不太可能成功,或者要么太雄心勃勃,要么不够雄心勃勃。

使这个选择项目的练习如此有效的是,所有工作只是简单地从你知道的划一条线到你想知道的。你的投入水平可能由你所处的任何情况预先确定。最终目标或结果将由其他四个参数告知。如果认真完成,这种方法应该产生一系列你可能发现自己喜欢的可能项目。我希望你尝试它,并希望你觉得它激励人心。

再次,我想邀请我们的读者查看我们的职业页面,了解我们当前的所有空缺职位。如果你对高级软件工程师或软件安全研究工程师的职位感兴趣,我期待听到你希望在Trail of Bits工作的IRAD项目的更多信息!

如果你喜欢这篇文章,分享它: Twitter LinkedIn GitHub Mastodon Hacker News

页面内容 最近的帖子 用Deptective调查你的依赖项 系好安全带,Buttercup,AIxCC的评分回合正在进行中! 使你的智能合约超越私钥风险成熟 Go解析器中意想不到的安全隐患 我们审查首批DKLs23库的收获 来自Silence Laboratories的库 © 2025 Trail of Bits。 使用Hugo和Mainroad主题生成。

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