软件工程师的工作究竟是怎样的?

还没有读者喜欢这篇文章。
Hands together around the word trust

Opensource.com

今年夏天,我开始了我的第一个实习。从学校过渡到工作场所肯定是一种文化冲击,但我通常以自己是一个快速学习者而自豪。在红帽公司,作为一名系统管理实习生,我在第一周就学到了很多东西。

我了解到开源不仅仅是一个用来描述某些模糊的编码社区的词汇。我学会了如何正确使用 git,如何编写 Go 代码,以及如何高效地浏览 Linux 开发环境。我了解到软件工程师喜欢从什锦好时巧克力袋子里挑出黑巧克力棒,只留下不太受欢迎的好时先生和克拉克巧克力棒。

我学到了很多东西,以至于我有点不好意思回顾我在工作第一周时在 Google 上的一些搜索记录

  • vi 如何使用
  • linux control r
  • curl 命令
  • 如何使用指针
  • chattr
  • git rebase

但是,我们都从某个地方开始。

今年夏天,我所在的团队开发了 Project Atomic,这是一个旨在运行容器的轻量级操作系统。Atomic 由一个名为 OSTree 的强大工具驱动,OSTree 由我的导师 Colin Walters 开发,并被描述为“操作系统的 git”,因为它本质上允许操作系统部署之间的原子升级和回滚。在最初的几周内,我为 rpm-ostree 开发了一个新命令,该程序将 OSTree 与 rpm 处理集成在一起。在为每个 OSTree 命令编写了手册页之后,我对该结构有了足够的理解,可以开始新的项目,为系统管理员的这些程序添加功能。

随着每个新项目、每个推送到 git 的新补丁,都有一种压倒性的满足感。我已经看到我的三个功能被合并到程序中,准备用于下一个版本。做一些我知道会产生真正影响的事情感觉很棒。我从很多朋友那里听到了关于他们(技术)实习的不同故事;他们感到沮丧,因为他们没有被当作真正的员工对待,他们没有得到任何责任,或者他们觉得自己的意见没有被听到。我在红帽公司从未有过这种感觉。我在我们的冲刺团队中拥有发言权,开源的美妙之处在于,如果你认为有什么需要改变,你就有权力和自由去改变它。

我的两个补丁实际上从未分配给我;我只是开始做它们,因为我正在使用该系统并思考:“伙计,如果我有一个工具来做……,这会容易得多。”那里的文化支持和鼓励这种行为,允许自主性并信任你对你认为可能有用或必要的事情的判断。红帽公司是一个实习的好地方,因为我对软件工程工作真正像什么有了很多了解,包括好的方面和坏的方面。

我感受到了代码最终运行的胜利,补丁被合并到上游的自豪感,以及知道我在为有意义的事情做出贡献的简单快乐。另一方面,我感受到了等待代码编译的疲惫,代码明明什么都没改却停止运行的挫败感,以及突然意识到你追踪了两个小时的错误是由使用“==”比较两个字符串引起的,那种无法抑制的悲伤。

我确信的是,秋天回到学校后,我会变成一个不一样的人。我会成为那个用 Emacs 而不是 MS Word 做笔记的人。我会成为那个重新教同学们如何正确使用 git 进行协作项目的人。我会成为那个尽可能多地使用我的 Fedora 机器而不是学校发放的 Windows 构建版本的人。我会成为那个在那里倡导 F/OSS(自由及开源软件)的人。

阅读更多关于开源领域年轻专业人士的类似文章。

User profile image.
2014 年红帽系统管理实习生。奥林工程学院 2017 届毕业生。

1 条评论

感谢分享你的故事。听起来实习经历很棒。

Creative Commons License本作品根据 知识共享许可协议 授权。
© . All rights reserved.