Problem Solving
Contents
Problem Solving#
Must Understand
Problem solving is the most important skill to advance you technical cybersecurity competencies! You are only as good as the problems you can solve. Take this advice very seriously and become a master problem solver.
Problem solving in cybersecurity requires a combination of technical and non-technical skills. On the technical side, problem solvers must be able to understand and work with complex systems. They must also have a good understanding of security threats and how to defend against them. On the non-technical side, problem solvers must be able to communicate effectively with others and work well in team settings.
The ability to solve problems is critical to the success of any cybersecurity professional.
In this section, we offer some problem solving and structured analytics techniques you are encouraged to learn and master.
Problem Solving Techniques#
Problem solving is the process of identifying and resolving issues or obstacles that are preventing the attainment of a desired goal. In many cases, problem solving involves overcoming challenges or obstacles that are blocking the path to the goal, but it can also involve finding new and creative solutions to seemingly insurmountable problems. There are a variety of different approaches that can be taken when problem solving, and the most effective approach will vary depending on the specific problem that needs to be resolved. In some cases, a simple trial-and-error approach may be all that is needed to find a solution. However, for more complex problems, a more systematic approach may be necessary.
Simple Techniques#
Here’s a list of techniques that can help with problem solving:
Look for a pattern
Break the problem into different parts
Make a table
Make a diagram
Make an equation
Work backwards
Develop tests that will only work once the solution is reached
Solve a simpler problem before coming back to this one
The Pólya Method#
George Pólya was a mathematician who proposed a general approach to problem solving that can be applied to software and cybersecurity problems.
Step 1: Understand the problem
In order to solve a problem, it is first necessary to understand what the problem is. This may seem obvious, but it is often overlooked. All too often, people try to solve a problem without first taking the time to fully understand it. This can lead to a lot of wasted effort and frustration. A good way to start understanding a problem is to ask some questions about it.
Do you understand all the terminology and parts of the problem?
What are we trying to achieve?
What are the data? e.g. error messages, input values etc.
What is the unknown?
Are there any assumptions?
Do you have enough information to solve the problem?
Asking these kinds of questions can help to clarify the problem and make it easier to solve.
In order to understand the problem, it is important to consider all of the factors that may be involved. This includes looking at the situation from multiple perspectives and gathering as much information as possible. Once you have a good understanding of the problem, you can start to develop a plan to solve it. Keep in mind that there may be multiple ways to solve the problem, so it is important to explore all of the options and choose the one that is best suited for the situation.
Tip!
Drawing figures and diagrams is usually helpful when trying to solve hard problems.
Step 2: Devise a plan
There are many ways to devise a plan to solve a problem. One way is to brainstorm a list of possible solutions and then evaluate each one to see which is the best. Another way is to look at the problem from different perspectives and try to find a creative solution. Sometimes it helps to talk to others about the problem and get their input. Once a plan is devised, it is important to put it into action and see if it works. If not, it may be necessary to adjust the plan or come up with a new one.
Understand the goal
Look at other problems for inspiration (i.e., do you know a related problem?)
Choose a smaller part to try
Tip!
Ask yourself “What is the simplest, quickest, safest, cheapest, easiest and surest way to try solve the problem?”. Too often, people come up with over complicated plans and ideas!
Step 3: Carry out the plan
There are many different ways to carry out a plan to solve a problem. The most important thing is to make sure that the plan is comprehensive and well thought out. Every step of the plan should be carefully considered, and each potential obstacle should be taken into account. The plan should be designed to solve the problem in the most efficient and effective way possible.
Focus on one part at a time
Regularly check with the goal
If something isn’t working, use that information to learn more about the problem, then try something else
Step 4: Look back
When we look back after having solved a problem, we can see how far we’ve come and how much we’ve learned. We can also see what we could have done differently, and how we can improve in the future. This hindsight is valuable, and can help us to become better problem-solvers.
Be clear that you reached the goal
Find something you can learn