Were you a master of Geometry in high school? Love proofs? Live to assess the facts at hand and come to useful conclusions for problem solving? You may have a skeleton in one of the most important skills for coders. There’s a reason so many people that study math and physics end up as coders. Figuring out what mistake/bug/bad line of code led to an issue in a project is partially intuitive, but often an exercise in logic. So how do you build up your logic skills? Treat them like muscles, and exercise them. There are tools like Dcoder which gives you challenges/problems that will develop your reasoning. Another way to build logic skills is through conditional thinking, which essentially means, if this, then that. For example, let’s say if you climb more than halfway up the mountain, you’ll get a nose bleed. If you stay below the halfway point, you won’t. In programming, this style of thinking is used to test variables against values, and order action based on what conditions are met. It can be understood like this:
if (a condition evaluates to True):
then do these things only for ‘True’
otherwise do these things only for ‘False’.
Simple mechanisms can’t do this. It’s these conditional statements that let the program take on an analytical life of its own and not just follow one set of instructions to its end. It’s important to use conditional thinking or statements to your benefit, but not live or die by them. They’re a tool to help expand the abilities of what you’re creating, but shouldn’t box you in in your ability to troubleshoot. Take the previous example. It’s important to realize just because someone’s nose is bleeding, doesn’t mean they went halfway up the mountain. Nose bleeds happen for all kinds of reasons. Removing yourself, and your subjective experiences from the situation at hand will be helpful. What you’ve encountered, or think you know, should be used as a suggestion, but not an end all. Be open to being proven wrong. Observe any problem or task as it is, and let that dictate how you approach it, doing so so from a what, how and then why progression.