# The Most Important Soft Skill for Developers & How to Get Better at It

At its core, programming is just solving problems so a computer can execute a task. Or, as one of our engineers Nick Duckwiler aptly put it: “A lot of engineering is just solving headaches.” Indeed, between fixing bugs and dreaming up app ideas that can address real world difficulties, devs need to be enthusiastic about solving problems of all sizes. 

On top of all the technical knowledge that’s required for engineering roles, you also should work on soft skills, which are personal attributes that enable you to work well with others. Problem solving is one of the most essential soft skills to have in technical positions, and luckily, there are plenty of ways to get better at tackling challenges and finding solutions.

Our course catalog just got a major update with over 70 new courses that cover professional or soft skills, like communication, leadership, productivity, and teamwork. These courses are completely free and can help you unlock essential skills for your career. In the free course Becoming a Successful Collaborator, you’ll master the meaning of collaboration, effective teaming practices, and conflict management styles, so you can enhance problem-solving, productivity, and team interconnection. Read on for more creative proven problem-solving tactics that you can try today.

## Write out the problem

Your problem won’t always come right out and say: “It’s me, hi. I’m the problem, it’s me.” In fact, something that often gets in the way of solving a problem is that we zero in on the _wrong_ problem.

When pinpointing a problem, you can try borrowing a UX research technique that’s part of the design thinking process. After you’ve done some initial research or information gathering, you delineate your problem space and write a problem statement, which is a concise couple of sentences that succinctly define the task and offer a clear sense of direction. Write out the who, what, where, when, and why of your problem.

Getting to the core of your fundamental issue will make addressing the symptoms much easier. You can learn more about this strategy in our free course Learn Design Thinking: Ideation.

## **Don’t try to solve it alone**

Rather than spinning your wheels trying to fix a problem on your own, consider having other people weigh in. Set up a brainstorming session for the problem you’re trying to solve, see if anyone can pair program with you, or send a Slack message to your team and see what your collective intelligence can accomplish. In the free course Expanding Your Communication Skill Set, you’ll learn how to collaborate and get things done in all kinds of workplace scenarios.

It’s easy to get tunnel vision when you’re working on a project and become fixated on one part of it. Getting more people involved in the problem-solving process will enable you to address blind spots, consider fresh perspectives, and ultimately get valuable feedback and validation for your idea. Not to mention, you’ll get experience collaborating with other people, which is a soft skill in and of itself. 

## **Say it out loud**

Ever seen a rubber duck on a programmer’s desk and wondered what it’s doing there? There’s a popular debugging technique called “rubberducking,” where you describe out loud what your code is supposed to do to the duck. As you verbally articulate your code and thoughts to the silent, non-judgmental duck, you may identify issues or problems that you skipped over before. Though you might have to work up the courage to talk to an inanimate object at your desk, you’ll be surprised how effective and practical rubberducking can be when it comes to pinpointing a problem.

## **See how other people approached the problem**

Remember: You’re probably not the first person to have experienced this problem. There’s a plethora of resources that developers use to ask questions, get feedback, or crowd-source solutions for bugs. Go to Stack Overflow and see if someone else has experienced your issue and created a workaround. Or look through Docs, our open-contribution code documentation for popular languages, to see if you can find a solution. (Better yet, once you figure your issue out, you could take what you learned and contribute a Doc for folks to reference in the future.)

## Learn problem-solving skills in our new courses

Our professional skills courses are carefully selected by our team to offer the most relevant and in-demand business skills for learners like you. You can begin learning immediately — all you need is a free Codecademy account to get started.

_This blog was originally published in October 2023 and has been updated to include details about our new professional skills courses._