New Skills for Software Testers and Software QA Engineers: 2013 … and Beyond!

Meaningful Work To Do

If my study of Vim was for research purposes, then I might have finished, stuck it in a drawer, and quickly forgot about it. But my need was more than that. I had a monster program to search through, with tens of thousands of lines of code in one source file. Editing with vim provided me with easy search, copy, and replace, which made me more effective. The meaningful work reinforced and accelerated my learning.

Without the meaningful work, I'm left with simple proofs of concept with no real skill— for example, my recent study of Apache Hadoop. Hadoop is a data-crunching framework. It allows programmers to take massive, unstructured data sets, split them over a thousand servers, and perform searches. You might use Hadoop to construct a query into, say, viewing what pages lead to sales at Amazon.com, giving all the of the log files as input.

I’ve been “looking into Hadoop” for about six months now with no progress. There are two reasons why. First, I need to spool up the servers and deploy the code, which I don’t have great expertise at. The problem is two steps away from my skill set, so I am unlikely to get to it. Second, I don’t have an interesting problem to solve with it. If I spent a few thousand dollars on a nice server and some network-attached storage, all I would get are some nice twinkling lights.

If you want a technical skill to stick, then give yourself some meaningful work. Don’t just study mind maps. Use them to plan or document your work.

One quick way to find meaningful work is to solve a problem, like parsing a log file, automating a task, or just understanding the code the programmers are writing.

A Friend to Learn With
In order to run Hadoop, I need a cluster of servers to run it on. Believe it or not, the folks at NASA and RackSpace have created a free, open-source, private, cloud-computing framework called OpenStack. You can run OpenStack on a single server or, for more demanding tasks, use the server as a controller and point it to dozens or hundreds of systems, automate the process by which systems are created, and, bang, you have the cloud in a box.

I’ve been “looking into OpenStack” for about six months, too.