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.
Next month, we’re hosting an exclusive three-part livestream series all about developing core soft skills: problem solving, planning, setting priorities, and critical thinking. The events will be led by Merri Lemmex, a management and leadership expert who has decades of experience training people who work in tech and business. The first session on November 1 is focused on problem solving approaches and tools. Be sure to register today for the virtual events and read on to learn more about the problem-solving strategies that developers use in their work.
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.
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 course
Join us next month for an engaging three-part livestream series dedicated to honing essential soft skills, including problem solving, strategic planning, priority setting, and critical thinking. These skills are your secret sauce for nailing your next job interview, making an impression on your team leader, or feeling confident at a networking event. By the end of the livestream series, you’ll have a soft skills toolkit that you can continue to refine throughout your whole career.
Our first session on November 1 delves into effective problem-solving techniques and tools. Secure your spot for these virtual events today. Quick note: These are only available to Codecademy Pro and Codecademy Plus members, so make sure you upgrade your account or start a free seven-day trial to attend.