Problem solving is a fundamental key to development. As developers, we are given tasks to complete on a project. The idea of trying to figure out the issue all at once is recipe for disaster. Developers could potentially face imposter syndrome, burnout, or the task being delayed due to the lack of problem solving skills. It does not take a genius to problem solve but a developer who is dedicated to learn problem solving techniques. It is important to remember that problem solving is not a one size fit all solution. We all have a mind of our own so to expect every developer to follow the same approach is not realistic. However, developers will be provided with different problem techniques in this page to help them become better at problem solving.
A developer have been tasked to a new issue by their lead. The initial thought maybe, "how will I figure this out"? While being a dev, you will be asked to do find solutions to problems developers have never solved before. Instead of allowing the unknown to overwhelm the dev, try breaking down the problem using psuedocode.
- Psuedocode is used to break down problems by using steps to find the solution. It does not require actual syntax to be written out, and it is human readable which means it does not get compiled by the computer. developers can write the steps on notepad, whiteboard, or even make temporary comments in a IDE. The point is to breakdown a huge problem into chucks and connect the dots to find a solution in an efficient way. Once the steps seem logical, developers will attempt to convert this psuedocode into code and test their logic. Read more about this here What is Pseudocode? How to Use Pseudocode to Solve Coding Problems
It is impossible to retain everything learned while being a developer. Google is your best friend. The amount of resources available to help complete task is vast. For Example, MDN, CSS-Tricks, Javascript.info, are a few resources for front-end development. Reading Documentation on how a certain library work is key when using it on a project. The documentation should always be a reference when using it. Search for your problem using the error message keywords given to you. Other developers have probably ran into the same error as you and may have solved it. How you google is just as important as what you google, so click here to learn. 11 Tricks To Master the Art of Googling as a Software Developer
Problem solving goes beyond just coding. We use it in our daily life all the time. One of the best ways to become a better problem solver is by making it personal. Video games require lots of problem solving. Think about it, the game gives the player a challenge, and the player has to find ways to beat the challenge or risk not going to the next level. Puzzles are another good problem solving exercise to find the shape that fits other parts of the puzzle. Cooking is another form of problem solving. To follow a recipe, people have gather the items, mix the right amount of spices or seasonings to have the desired meal. As a dev, it is vital to find a hobby that involves problem solving. Read more here about what the greats like Mark Zuckerberg and Elon Musk use to help solve problems. https://www.freecodecamp.org/news/how-to-think-like-a-programmer-lessons-in-problem-solving-d1d8bf1de7d2/
As developers, you will be dealt with task that leave you frustrated or even wanting to quit. The imposter syndrome may come into full effect. In these moments, it's always a good idea to take a mental break. Going outside for a walk can tremendously help clear your mind. Watching your favorite tv show or movie will help calm your mind as well. On a subconscious level, the task is still being processed. If a dev cannot completely set aside the issue, they can use the rubber ducky method. You buy a rubber duck and talk to it about the coding issue. When talking to the rubber ducky, a dev can hear their logic out loud and can deem it as sound or even have a ah ha moment through this process. Take a mental break and when developers come back with a fresh pair of eyes, clarity may be provided and those emotions mentioned are now tamed.
The only way to become a better problem solver is by putting your problem solving skills to work. There are plenty of coding sites that will help you build your problem solving such as leetcode, HankerRank, and Codewars. developers may struggle at first but overtime these skills will help throughout your dev journey by solving problem efficiently. Yes, learning the desired programming language or a framework is important but without problem solving skills, it can be difficult when tasked to create steps to solve a problem. The cycle of developers trying to tackle a task and not problem solve is not ideal and can hinder progress of both the project and developer growth. You can do this! Learning problem solving is a must and will help developers be great on this path to development!