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

作者: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(自由开源软件)的人。

一个真正的软件测试工程师应该具备以下几个方面的能力和素质: 1. 熟练掌握测试方法和技术:一个软件测试工程师应该熟悉各种测试方法和技术,例如黑盒测试、白盒测试、性能测试、安全测试等。同时,还应该能够根据具体的测试需求选择和应用合适的测试方法和技术。 2. 具备良好的测试设计能力:一个优秀的软件测试工程师应该具备良好的测试设计能力,能够根据需求和文档编写详细的测试用例,同时能够通过测试用例的设计和执行发现潜在的缺陷。 3. 有扎实的编程能力:虽然软件测试工程师不需要成为一名专业的程序员,但是具备一定的编程能力能够帮助软件测试工程师更好地理解代码和开发过程,同时还可以编写一些测试脚本和工具来提高测试效率。 4. 具备良好的沟通能力:一个软件测试工程师需要和开发人员、产品经理等多个角色进行沟通和合作,因此应该具备良好的沟通和协调能力。 5. 具备分析问题和解决问题的能力:一个优秀的软件测试工程师应该能够对测试结果进行分析,找出潜在的缺陷并提出合理的解决方案。 6. 具备持续学习和自我提升的意识:随着软件技术的不断发展,一个优秀的软件测试工程师应该具备持续学习和自我提升的意识,不断了解最新的测试技术和方法,并且能够将其应用到实践中。 总之,一个真正的软件测试工程师应该具备上述几个方面的能力和素质,并且能够通过不断的学习和实践不断提升自己的能力和水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值