本文共 1268 字,大约阅读时间需要 4 分钟。
软件工程需要什么样的电脑
今年夏天,我开始了我的第一次实习。 从学校过渡到工作场所无疑是一种文化冲击,但我通常以能够快速学习为荣。 在Red Hat,作为系统管理实习生,我在第一周就学到了很多东西。
我了解到开源不仅仅是一个用来描述一些模糊编码社区的词。 我学习了如何正确使用git,如何编写Go以及如何有效地导航Linux开发环境。 我了解到,软件工程师喜欢从混合的Hershey巧克力袋中挑选黑巧克力条,只留下不那么受欢迎的Goodbars先生和Krackel巧克力条。
我学到了很多东西,以至于我很尴尬地回顾了工作第一周以来的一些Google搜索:但是,我们都从某个地方开始。
今年夏天,我与一个团队合作开发了Project Atomic,这是一种旨在运行容器的轻型操作系统。 Atomic由强大的工具OSTree驱动,该工具由我的导师Colin Walters开发,并被称为“操作系统二进制文件的git”,因为它实质上允许在OS部署之间进行原子升级和回滚。 在最初的几周内,我为rpm-ostree开发了一个新命令,该程序将OSTree与rpm处理集成在一起。 在为每个OSTree命令编写了手册页之后,我对结构的理解已经足够好,可以启动新项目,为系统管理员为这些程序添加功能。
在每个新项目中,每个新补丁都被推到git上,给人以压倒性的满足感。 我已经看到我的三个功能已合并到程序中,可以为下一个版本做好准备。 做一件我知道会产生真正影响的事情真是太神奇了。 我在(技术)实习中听到了许多朋友的不同故事; 他们感到沮丧的是,他们没有被视为真正的员工,没有承担任何责任,或者感觉不到自己的意见被听到。 我从未在Red Hat感受到这种感觉。 我在我们的sprint团队中有发言权,开源的魅力在于,如果您认为某些事情需要更改,则您拥有改变它的能力和自由。
我的两个补丁实际上从未分配给我; 我刚开始做这些事情是因为我正在使用该系统并思考:“伙计,如果我有工具...会容易得多。”那里的文化支持并鼓励这种行为,允许自治并信任自己的判断力。在您认为可能有用或必要的情况下。 红帽是实习的好地方,因为我对软件工程工作的真正面(无论是好的还是不好的方面)都有很多了解。
我感到代码的胜利终于奏效了,在上游合并了补丁程序感到很自豪,并且很高兴知道我为有意义的事情做出了贡献。 另一方面,我感到等待代码编译的烦恼,尽管什么都没做,但代码停止运行的挫败感,以及突然意识到您要跟踪两个小时的错误是由顽强的悲伤所致使用“ ==”比较两个字符串。
我确定的是,秋天我会换个人上学。 我将成为在Emacs中而非MS Word中做笔记的人。 我将成为重新教我的同学如何在合作项目中正确使用git的人。 在学校发行的Windows版本中,我将尽可能多地使用Fedora机器。 我将是其中一位提倡F / OSS(免费和开源软件)的人。
翻译自:
软件工程需要什么样的电脑
转载地址:http://yidzd.baihongyu.com/