Model-based testing (MBT) has emerged as a powerful strategy for maintaining high standards of quality in an efficient and systematic manner. MBT transforms the development process by allowing teams to derive scenarios from models of the system under test. These...
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:
- Regular expressions
- Debugging
- Git
- Writing tests
- AWS, Google Cloud or Azure
- Shell-level automation
- Application analyzers
- Pair programming, inspection and code review
- Twelve-factor programming
- Statistics
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:
- Write and speak so other humans understand
- Make the most of meetings
- Work with others
- Manage oneself
- Receive coaching
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
Related Posts:
Model-Based Testing with Ranorex DesignWise
Model-based testing (MBT) has emerged as a powerful strategy for maintaining high standards of quality in an efficient and systematic manner. MBT transforms the development process by allowing teams to derive scenarios from models of the system under test. These...
What Is OCR (Optical Character Recognition)?
Optical character recognition technology (OCR), or text recognition, converts text images into a machine-readable format. In an age of growing need for efficient data extraction and analysis processes, OCR has helped organizations revolutionize how they process and...
Support Corner: API Testing and Simple POST Requests
Ranorex Studio is renowned for its robust no-code capabilities, which allow tests to be automated seamlessly across web, mobile, and desktop applications. Beyond its intuitive recording features, Ranorex Studio allows custom code module creation using C# or VB.NET,...