真正的软件工程工作到底是什么样的?

来源:互联网 发布:安卓游戏市场 知乎 编辑:程序博客网 时间:2024/04/28 14:44

作者:Anne LoVerso (Red Hat)  Posted 31 Jul 2014 by 

译者:Sherry

英文原文:http://opensource.com/life/14/7/red-hat-intern-sys-admin

译文链接:http://blog.csdn.net/sherrmoo/article/details/38467103


这个夏天我开始了我有生以来第一个实习。从校园到职场的转换对我来说无疑是个文化冲击,但我仍为自己拥有快速学习的能力而感到自豪。在红帽公司,作为系统管理实习生,我仅仅在第一个星期就学到了很多。

我意识到开源不仅仅是一个用来描述某些含糊的开源社区的单词。学会了如何正确使用git,如何运用Go语言,以及如何高效使用一个Linux设备环境。我了解到软件工程师喜欢从好时巧克力混合包装中挑出黑巧克力,然后留下不那么受人喜爱的Mr GoodBars和Krackel巧克力棒。

我学到了很多,以至于回想第一周时我在工作时“Google”的东西令我感到有些尴尬了:

  • vi how to use (如何使用vi)
  • linux control r (linux控制r)
  • curl command (curl命令)
  • how to use pointers (如何使用指针)
  • chattr
  • git rebase(git复位基底)

然而,我们总是要有那么一个开始的。

这个夏天,我在Atomic项目开发组里工作。Atomic是一个为运行容器而设计的轻量级操作系统。该项目(原子项目)是由一个名为OSTree的强大工具驱动的。该工具由我的导师Colin Walters开发,它被描述为“操作系统二进制码的git”,因为它本质上能够容许在操作系统部署间的原子升级和回滚。在实习期头几周,我就为rpm-ostree开发了一个新指令,是一个集成OSTree和RPM的项目。当我完成了对每一个OSTree命令的帮助页的撰写后,我便能很好地理解了整个架构,能够开展新工程,为系统管理员往这些项目添加功能。

随着一个个新工程、新补丁陆续地上推到git,我感到了极大的满足。我已经看到我的三个特性合并到即将迎来下一次发布的项目中。那种能够做一些我知道将会有真正影响力的东西的感受是令人惊异的。我听说过很多朋友的技术实习的各种各样的经历,他们为自己没有被视为真正的员工、不能担负任何职责、自己的观点得不到重视而感到沮丧。但在红帽公司,我从未有过这种感觉。我在我们这个团队里能够发出自己的声音,而且开源的美妙之处在于,如果你认为需要做出一些改变,那么你就有权力和自由去改变它。

我做的其中2个补丁其实原本并不是分配给我的,我只是因为自己在使用那个系统,觉得“嘿,如果我拥有一个工具,事情会更简单吧”,于是就动手去做了。那里的文化支持并鼓励这种做法,允许自主性,并且相信你的判断有可能是有帮助或者有必要的。红帽公司是一个实习的好地方,因为我从这里洞察到真正意义上的软件工程工作是怎么样的,有好的一面,也有坏的一面。

我为代码最终成功运行带来的欢欣鼓舞,为能有自己努力的一部分合并上去感到自豪,为得知自己能为一些有意义的事情f奉献自己的力量而有一种纯粹的喜悦。另一方面,我厌倦等待代码被编译,也为即使没有任何修改代码却不在起作用而沮丧,以及当突然意识到苦苦跟踪了两个小时的bug竟是因使用了“==”来比较两个字符串而引起的时候,那种不服输的悲哀。

我确信的一点是,当秋季学期来临时,我将以一个全新面貌返校上学。我将会使用Emacs编辑器代替MS word做笔记。我将会指导我的同学如何正确使用git开展行项目协作。我将会尽可能多地使用我的Fedora系统而不是学校发布的Windows系统。我将会是那个提倡使用F/OSS(自由开源软件)的人。

0 0