这是我关于在 NetworkX 实习期间经历的博客系列的第二部分。如果你还没有阅读第一部分,可以在这里找到它 这里。
随着你在贡献阶段的推进,你可能会想知道如果你被选中,你的实习会是什么样子。以下是我作为 **NetworkX** 实习生的经历,以及一些可以帮助你度过实习期的建议。
我在 NetworkX 的实习经历#
我于 12 月份开始实习。我学校的作业几乎都完成了,正要进入期末考试季。这是一个开始实习的疯狂时间,但一开始通常不会很紧张。第一周是与 NetworkX 团队会面,并决定你在实习期间想做什么。作为你实习的一部分,你被鼓励以任何你想要的方式进行研究和贡献。这意味着你并不一定要从事拟议的项目。我开始编写笔记本,因为我觉得自己很擅长做这件事,但你也可以探索其他任务。作为编写笔记本的一部分,我花了大量时间阅读论文和进行研究。这很有趣,让我培养了一些有趣的技能。此外,这让我对未来作为一名计算机科学家想要做什么有了更清晰的认识。由于我的笔记本是关于图同构的,因此我研究了新的同构算法,并评估了在 NetworkX 中实现它们的可能性。在编写笔记本时,我阅读了很多文档,因此我也修复并添加了一些内容。毫无疑问,以任何你能想到的方式进行贡献是关键。对我来说,在 NetworkX 工作不仅仅是完成特定的任务,而是对项目有一个广泛的了解,并思考如何让它发展壮大。这种方法让我深入了解了像这样的项目是如何管理和维护的,我认为这是我在实习期间学到的最重要的事情。
以下是一些可以在实习期间帮助你的具体建议:#
-
当你开始一个新的笔记本时,请先做一个初始草稿,其中包含笔记本的一般结构。这将有助于你确定你的研究方向,并更好地组织你的想法。
-
始终先进行一些研究,即使你认为你已经了解所有材料。总有一些你不知道的想法、直觉或有趣的应用。
-
花时间学习对你的实习有帮助的东西。Outreachy 实习旨在帮助你获得技能,以便你能够继续你的科技生涯。有时你会觉得你花在学习上的时间比花在实践上的时间更多,这很正常!这首先是一次学习体验!
-
没有笔记本的想法?阅读 **nx-guides** 上已有的内容可以成为灵感来源。此外,你可以在书籍和互联网上寻找酷炫的图论现实世界应用。
-
代码库是关于项目的信息宝库。如果你在某些方面遇到了困难,你可以查看所有相关的 issue 和 PR。在那里,你将能够找到可以让你更好地理解某些事物为何以特定方式存在的讨论和解释。
-
了解项目结构。Python 包不仅仅是一堆 Python 代码放在一起,还有许多其他包用于使文档和测试工作正常进行。了解所有底层的工作原理通常会使你的工作更容易,而且也是一项很棒的技能。对我来说,了解像这样的项目是如何诞生的非常有趣,因为这是我以前从未关注过的事情。
-
你会在实践中理解事情。所以,如果你不理解所有内容,不要过度焦虑。随着时间的推移,一些细节会变得清晰。但同样重要的是,当你无法理解某些东西时,不要立即放弃。关键是要保持自信,即使你感到有点迷茫。
-
组织你的工作并学习如何远程工作。如果这是你第一次远程工作,那么你需要找到自己的方式来组织你的时间。有很多策略可以帮助你弄清楚如何在一天中组织你的工作。尝试不同的技巧,直到你找到最适合你的方法。如果你是一名大学生,你可能希望使用在学校对你有效的相同系统,但工作是不同的,因此你可能需要探索其他选项。对我来说,拥有两个列表很有用:一个待办事项列表,因为它可以激励我跟踪我的进度,以及一个包含我想做的事情的想法列表,通常是一些较小的贡献,当我对较大的任务感到疲倦时,我可以做这些贡献。我还尝试过番茄工作法,但对我来说,更有效的方法是完成任务,然后如果我想要休息就休息。
-
作为 Outreachy 实习的一部分,你需要撰写博客、提交反馈并参加非正式聊天。请注意这一点,并组织好所有截止日期,以便你和你的导师不会错过任何一个。
-
制作一张包含所有有用命令和链接的备忘单。这样一来,你就无需每次需要这些信息时都重新经历查找的过程。如果有一系列你经常使用的命令,请尝试编写一个 bash 脚本。这里是我的备忘单的代码库: https://github.com/paulitapb/Outreachy2023
总的来说,我作为 **NetworkX** 实习生的经历很棒!我不仅获得了许多不同的技能,而且现在我对自己的在科技领域工作的能力更有信心了。我发现了开源社区,并且意识到自己能够做出有价值的贡献。此外,我现在对自己未来在科技领域的职业规划以及自己的选择有了更清晰的认识。