Like many, I found coding to be initially intimidating. Although I love abstract thinking and regard myself as capable of distilling complex problems into simple steps, I am not the best at writing an intricate algorithm to solve a highly complicated problem. Fortunately, I am very good at pseudocoding and was hoping these skills would be enough to carry me through any technical interviews.
What is Pseudocoding?
Pseudocoding is an invaluable skill that bridges the gap between communication skills and technical skills. Anytime I had trouble wrapping my head around a certain functionality that needed coding, this was the skill I leaned on the most. A step-by-step guide of what I wanted the computer to do suddenly made things much clearer and helped me practice those fundamentals. It was also invaluable at kick-starting my coding process whenever I was stuck looking at a blank page, like the programmer’s equivalent of “writer’s block.”
When to Use Pseudocoding
But how often do we encounter these situations in the professional software field? Across the field as a whole, you’ll rarely be building anything from scratch. In our consulting business, we’re probably the ones who build from scratch the most frequently. Still, even then, I don’t find myself pseudocoding too much at the start, as most of the ‘outlining’ work has already been done by our Business Analysts and Technical Leads.
Highly complex tasks, such as when my bootcamp group built an entire turn-based combat game engine, are far less frequent in web development. Furthermore, we typically use high-level languages for coding business applications where much of the complexity is abstracted out. And we are regularly encouraged to use existing npm packages since we are far less susceptible to package bloat and don’t need to spend time reinventing the wheel.
Different Skills Than Traditional Coding
That’s not to say that professional coding is any easier; It just requires a different set of skills. “How well can you solve a complex coding problem?” isn’t as important as, say:
- How well do you navigate your IDE?
- How long does it take to understand a large codebase that multiple people have worked on?
- How well do you really know how to use the various frameworks like React and how quickly are you willing and eager to learn a new one?
- How well can you communicate during troubleshooting?
- Is your code readable?
These skills are all just as important as your ability to solve a tricky coding algorithm with an O(n) time complexity, but they are rarely tested. Part of that is due to the difficulty of designing a way to test these qualities. It is also simply because the algorithm challenge is so deeply entrenched in the ‘culture’ of software development. And that’s a problem. Especially if a candidate has some of those other valuable skills – and even can solve complex coding problems – but just can’t do it under the high-stakes stress of a technical job interview.
Now, being able to pseudocode out a complex problem is certainly an important skill and useful in the algorithm challenges; one could argue that algorithms are good at testing a developer’s ability to pseudocode out a problem. And when developers are starting out, pseudocoding is a vital skill to train the brain to break down a problem into a series of logical steps. But this skill is so infrequent in my day-to-day work that I question the utility as a core part of the technical interview.
Moving Forward in Evaluating Software Development Skills
Ultimately, software development still has a lot of growing pains, and I hope more and more professional institutions recognize the limitations of the algorithm challenge as a litmus test and try to seek out alternative ways to test the technical skills necessary to do the job. Because if there’s one thing I learned from my journey into the field of software development, it’s that I had no need to feel intimidated. I may not be the best at solving a very complex algorithm, but I have a plethora of skills that are arguably far more important and far more relevant in my day-to-day work.
At Soliant Consulting, we leverage a variety of ways to evaluate a software developer’s coding skills as well as critical soft skills. If you’re looking for a new career opportunity with a company that prioritizes professional development and mentoring, check out our career page.
If you’re an organization seeking help with software and cloud-native application development, contact our team and learn more about how we help our clients grow with efficient custom solutions.