翻译一篇文章:It's Difficult to Grow a Test Developer(成为测试开发工程师的艰辛)

 

以下文章是送给来poptest学习测试开发工程师的学员们,很多人想测试工程师很容易,培训也抱着轻松的状态来学习,但是我们这里学习的强度很大,每天早上9点开始到晚上8点,但是大部分时间可能超过晚上11点,因为Poptest团队在其他培训机构工作过,我们做过评估Poptest测试开发培训的第一阶段培训12天的课程相当于其他培训机构40天的课程量,在这里祝福那些辛勤的学员们,希望你们拿到好的offer,将来发展的更好。

原文:

A lot of testers begin life as software test engineers.  That is, they execute tests but don't do any (or much) programming.  The dream of many testers is to become a test developer or a developer.  Reciprocally, the dream of many test managers is to grow their testers into test developers.  Is this a realistic dream?  It can be, but probably isn't in most cases.

It's very hard to become a self-taught developer.  When we look out at the computer landscape we see plenty of self-taught programmers so it looks easy.  However, for each one that succeeds, many more fail.  Why is that?  Two reasons I suspect.  First is that some people are just not cut out to be programmers.  Second, and perhaps more important, is that it is really hard.  Becoming a good programmer* requires a lot of knowledge.  That means a lot of reading (online or books) and a lot of practice.  It turns out that it is a lot easier to desire to be a programmer than to put in the work to become one.

I covered the first point in my post entitled You Can't Teach Height.  Studies show that a good number of people, even those interested in programming, cannot grok it.  My suspicion is that this has to do with the abstract nature of programming.  This isn't to say that they can't program at all but they can't program well and as the difficulty goes up, more and more drop off.

The second reason is the one that gets a lot of people.  I've seen many try to make the leap and only a few succeed.  Those that did had to put in a lot of work on their own time.  Those that didn't often weren't willing to put in time outside of work.  Anyone desiring to go from tester to test dev with just the time they spend on the job is probably going to be disappointed.  It takes a whole lot of effort to become a competent programmer.  I laid out my recommendations in one of my earliest posts.  I call for learning not just the syntax but also the essentials of computer science.  You can program without these but if you don't pick them up you'll never be great.  Learning them, however, takes a lot of time and effort.

Most of the time employers won't give you that time.  They want you to be productive and anyone learning to program is not productive.  The simplest things take a long time.  There is almost always a more competent programmer on the team somewhere and if work needs to be done, it will be given to him.  It's not that most managers discourage learning to program.  They'd like it to happen.  They just won't often budget enough of your time to actually do it.

Now that I've said how hard it is, are there things that testers can do to increase their odds?  What about test managers?  I'll cover the issue from both perspectives in future posts.

* It is important to note what I'm talking about here.  It's not too hard for someone to teach themselves enough C# to write an ASP.Net page or enough perl to parse some log files.  That, however, is a far cry from being able to write a test harness, analyze performance, or automate the testing of a COM object.

翻译:

很多测试工程师从功能测试开始。即执行测试,但不写任何(或者极少)代码。很多测试工程师梦想成为一名测试开发工程师或者开发工程师。同样,很多测试管理者则梦想把他们手下的测试工程师培养成测试开发工程师。能实现么?现在来看可能性微乎其微。

很难自学成为一名开发工程师。当我们考察计算机业内情况时,我们能够找到很多自学的程序员,看上去好像很容易。但是,一些人成功了,更多的人却失败了。为什么 呢?我觉得有两个原因。第一,一些人不适合做程序员。第二,也许更重要的,自学太难了。想成为一名好的软件开发工程师需要很多知识。这意味着大量阅读(网上或书 上),大量练习。结果就是,做梦容易,实施起来很难。

原因1,我在一篇文章中已经说了。研究表明,很多人,对程序感兴趣,最终无法实现梦想。我认为这和程序的抽象本质有关。并不是说这些人根本无法编程,而是说他们不能写出好的程序。而且,难度越大,放弃的人越多。

原因2也困扰了不少人。很多人试图超越,但只有少数人成功了。成功的人是花了很多私人的时间。没成功的人则不愿在工作之外花大力气。期望从测试工程师成长为测试开发工程师的人,如果仅仅是在工作时间努力则恐怕是要失望了。要成为一名称职的测试开发人员或者开发工程师都要付出很多很多努力。在我早些的一篇文章中我给过一些建议。我建议不仅仅要学编程语言的语法,还要学习计算机科学的基础知识。当然,不学这些你也能编程,但做不到更好。而要学习这些,则要花费很多时间和汗水。

大部分时候,企业不会给你时间去折腾。他们想要员工们生产力高效,而正在学习编程的员工不会很高效。他们简单的事情都要做很长时间。当有事情要做的时候, 团队里总是会有更有效率的开发人员可用,因而事情就给他们去做了。并不是这些管理者不鼓励学习编程。他们也希望员工水平更高。但他们未必能预留足够的时间去 让你实际去学习。

我已经阐明这其中的困难,那么测试员可以做些什么来提高他们的成功机会呢?测试经理那方面呢?我将在以后讨论这些问题。

* 请注意我这里说的。人们可以自学C#来写个ASP.NET界面,或者自学perl来分析日志,这并不难。然而,这种程度离写出测试框架,分析性能,或者自动化测试COM对象,还差得很远很远。

翻译一篇文章:It's Difficult to Grow a Test Developer(成为测试开发工程师的艰辛)的更多相关文章

  1. Expo大作战(三十一)--expo sdk api之Payments(expo中的支付),翻译这篇文章傻逼了,完全不符合国内用户,我只负责翻译大家可以略过!

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  2. 翻译一篇SpiderMonkey GC的文章

    前言 这篇文章包含了对SpiderMonkey中Rooted<T>, Handle<T>的解释. 翻译自 https://developer.mozilla.org/en-US ...

  3. 翻译一篇关于jedis的文章

    翻译 自 http://www.baeldung.com/jedis-java-redis-client-libraryIntro to Jedis – the Java Redis Client L ...

  4. 翻译一篇英文文章,主要是给自己看的——在ASP.NET Core Web Api中如何刷新token

    原文地址 :https://www.blinkingcaret.com/2018/05/30/refresh-tokens-in-asp-net-core-web-api/ 先申明,本人英语太菜,每次 ...

  5. github使用-知乎的某小姐的一篇文章

    作者:珊姗是个小太阳链接:http://www.zhihu.com/question/20070065/answer/79557687来源:知乎著作权归作者所有,转载请联系作者获得授权. 作为一个文科 ...

  6. 关系型数据库工作原理-数据库整体框架(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...

  7. 关系型数据库工作原理-数据结构(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  8. 关系型数据库工作原理-时间复杂度(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  9. 关系型数据库工作原理-事务管理(二)(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

随机推荐

  1. ZOJ 1492 Maximum Clique 搜索最大团

    ZOJ1492 题意:给一个无向图 求最大团的大小.节点数小于50 数据有限,考虑记忆化搜索,方程很好给出. 令 Si={vi,vi+1.....vn} mc[i]表示Si最大团的大小,倒着推算. 必 ...

  2. 写好你的JavaScript

    关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 在实际工作中,我们应该经常会看到一些功能上没有问题,但编码风格和规范却十分糟糕的代码,这往往会让人不 ...

  3. Java设计模式之《组合模式》及应用场景

    摘要: 原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6489827.html 组合模式,就是在一个对象中包含其他对象,这些被包含的对象可能是 ...

  4. Think PHP 基础

    ThinkPHP 一.什么框架: 一堆代码的集合,里边有变量.函数.类.常量,里边也有许多设计模式MVC.AR数据库.单例等等. 框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次. ...

  5. Selenium Web 自动化 - 项目持续集成

    Selenium Web 自动化 - 项目持续集成 2017-02-13 目录 1环境准备  1.1 安装git  1.2 安装jenkins  1.3 安装jenkins插件  1.4 jekins ...

  6. Java面试系列

    如果你的面试简历是如下这样写的,请务必准备回答下面的所有问题. 面试职位:Java高级工程师 专业技能: (1)牢固掌握Java基础知识,如集合.并发.I/O等,并对Java源码有一定的研究. (2) ...

  7. 算法模板——splay区间反转 1

    实现的功能:将序列区间反转,并维护 详见BZOJ3223 var i,j,k,l,m,n,head,a1,a2:longint; s1:ansistring; a,b,c,d,fat,lef,rig: ...

  8. 手机端rem如何适配_rem详解及使用方法

    什么是rem 在我看来,rem就是1rem单位就等于html节点fontsize的像素值.所以改变html节点的fontsize是最为关键的一步.根据手机宽度改变相对大小就可以实现自适应了,就不用什么 ...

  9. kali linux 忘记root密码重置办法

    有段时间没用kali linux 的,加上最近装的系统有比较多,系统root的密码忘掉了,真是麻烦啊.之前在网上看到的一些方法尝试后没进的去,可能是因为不同的linux 不一样吧. 如果因为忘记密码而 ...

  10. js数组,字符串常用方法汇总(面试必备)

    字符串: 1.concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串.  2.indexOf() – 返回字符串中一个子串第一处出现的索引.如果没有匹配项,返回 -1 .  3.ch ...