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.
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
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.
- 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
- Writing tests
- AWS, Google Cloud or Azure
- Shell-level automation
- Application analyzers
- Pair programming, inspection and code review
- Twelve-factor programming
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.
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