4 ms·
Ability to divide a problem in smaller problems recursively until you have problems that are more manageable while avoiding being overwhelmed by the overall pro
by WindyLakeReturn 6y ago
Ability to divide a problem in smaller problems recursively until you have problems that are more manageable while avoiding being overwhelmed by the overall problem. Anyone who has played a new 4x game blind likely has experienced a sort of information overload that can deter someone from learning the game at all. With experience, I learned to break down the new information and UI into parts that closely match existing experience, with verifying that the match does hold, and then slowly expand my knowledge of each area until I've figured out how to play the game. Often this involves playing against the easy AIs until I have the basics and then working my way up the chain until the level of optimization and understanding ceases to be fun.
The same applies to handling a programming problem. Larger problems can involve many smaller problems that are mostly unrelated, but students new to programming can be overwhelmed and mentally shut down because they can't solve the entire problem at once.
Once a student learns to break it down into much smaller problems, they can find the ones they know or can easily solve and separate it from the parts of the problem that requires googling around. If a teacher tells them to use a certain library, knowing how to break down the problem into smaller ones helps arrive at the problems that need the library and the ones that don't. Maybe you need to visualize the data, so knowing if it is possible generate and store the data while ignoring the entire visualization until you are ready, knowing how to handle visualizing sample data you create on the spot while ignoring how it should be created, and knowing how to merge these two partial solutions into a larger one can make a daunting problem much more manageable.
This is a skill you can learn many ways. Just doing sudoku puzzles can teach a methodology approach to problem solving of solving the bits you know and seeing how that opens up more options. Board games are another great tool that can teach similar approaches.
Even a game like Final Fantasy 12 where you can build basic programs your allies follow when fighting can help reinforce concepts like handling edge cases and the computer doing exactly what you specified. Do you keep wiping because you set heals to only happen <20% hp when the boss does 25% hp damage an attack?