Junior tester learning software testing from a flipchart

Weekly, I cross paths with junior tech workers who wonder, “What should I learn next?” What a wonderful question! But, it’s a somewhat misguided one.

It’s a good question because computing is a continuous improvement profession, and we’re all involved in lifelong learning. To ask, “What next?” suggests that the questioner is humble, is eager and takes initiative to move forward.

Without qualification, though, the question suggests a lack of recognition that quality responses come from quality questions.

In isolation, it’s easy to answer. Junior testers should learn how to ask for help with software and other systems. They should practice:

  • Providing specific, pertinent details
  • Describing a goal or expectation
  • Sharing a current state or observation

All of these skills also come in handy when writing bug reports. That’s why I recommend writing good bug reports as an instructive model for a wide range of other communications.

No single sequence is right for everyone

That starting point surprises the questioners I’ve encountered. Most seem to believe that computing has a fixed curriculum somewhere, and, once they’re comfortable with HTML or Python or JavaScript, then the next step is determined: PHP or Haskell or CSS.

But learning sequences in computing aren’t nearly so mechanical, for several major reasons:

  • You don’t have to satisfy everyone. In fact, you don’t have to satisfy many. Your computing knowledge is just right if it satisfies you. Aspire to what the marketplace demands only if that meets your goals. This approach isn’t necessarily easier, as this realization demands you think through your own goals, preferences and opportunities.
  • Computing is almost incomprehensibly broad. The diversity among the well over 20 million programmers already in the world is hard to grasp. Even when restricted to what sounds like a single subject — Python, say — the daily work of a robotics specialist and a marketing analytics application developer might differ so much that they barely recognize they’re working in the same language.
  • What look like market-determined goals themselves turn out to be personal and individual in application. Is the point of what one learns next to hit a career milestone? Is it to round out one’s own understanding? To fill a résumé gap? Vanishingly few job postings for the Forth programming language exist, for example, but Forth is incredibly mind-expanding for many who invest a modest effort in it.
  • Computing is a fashion industry. While Vue and React might be the hottest JavaScript frameworks this month, it seems inevitable that Svelte or Gatsby or an even less familiar name will be a darling as we approach 2022. Although the roles of Lisp, Cobol and Fortran have shifted only incrementally over the last 60 years, plenty of other technologies have peaked and then flamed out in only 10, or even five. That doesn’t make thinking about what to learn next pointless; it does, however, make it a delicate matter, one highly sensitive to the details of what the questioner is after.
  • The cultures of different technology communities are only loosely coupled to technical characteristics. You might not think much of C as a programming language, but if you are in daily contact with generous, humane C specialists, then C might be the best language for you to learn now.
  • Tech students most need non-tech expertise.

That last point is important enough for deeper explanation.

Soft skills are valuable

When a programmer or system administrator asks me what to learn next, they usually expect an answer like F#, PowerShell or Kubernetes. I have definite favorites in that regard: I consistently recommend various combinations of SQL, Python, Erlang, XSD and so on, especially to commercial practitioners. I delight in explaining the advantages of each.

More than whole technologies like programming languages, though, most juniors do well to catch up on several “edge” techniques or tools that are applicable to many languages but rarely taught in school:

As much as these skills can help in daily programming chores, another domain is even more valuable than programming languages or use of smaller tools. Soft skills are the ones developers and testers most need.

By “soft skills,” I mean how to:

Want to push your  career forward? You might achieve the biggest and fastest results by volunteering with a local food bank, Rotary chapter or beginners computer course at your library. That will grow the skills you likely most need.

Keep learning

What should you learn next? It’s easy: Learn how to ask questions concisely but effectively. Be specific and concrete, with good awareness of your true goals.

Once you have that ability under your belt, practice a few essential strategies that schools rarely teach, like continuous integration or Linting an application. Then, learn how to run meetings, speak in public, write effective technical documentation, control your own schedule, and ask a mentor for help.

Let me know how these subjects work for you.

All-in-one Test Automation

Cross-Technology | Cross-Device | Cross-Platform

About the Author

Cameron Laird is an award-winning software developer and author. Cameron participates in several industry support and standards organizations, including voting membership in the Python Software Foundation. A long-time resident of the Texas Gulf Coast, Cameron's favorite applications are for farm automation.

You might also like these articles