How to learn logical reasoning for coding and beyond
Tags: codenewbie, programming, productivity
Published: 2022-07-22 20:04:57

From the binary digits that computers use to represent data, to the most sophisticated AI programs, logic is key to the development and implementation of the technologies we rely on. Logic isn’t just a tool for programmers, though. We all use **logical reasoning** on a daily basis to think through problems and make decisions. 

There are a lot of advantages to burnishing your logic skills. If you’re learning to code, practicing logical reasoning will help you understand **how programming languages work and how programmers use them** to solve problems. If you’re not at that stage yet, that’s all right: learning logical reasoning will make you a **more effective and self-aware thinker**, and that has applications far beyond programming.

Today, we’re going to discuss logical reasoning: what it is, why it’s important in the context of programming, and how you can start learning it.

**We’ll cover**:
* [Logical reasoning defined](#defined)
* [2 types of logical reasoning](#types)
* [How programmers use logical reasoning](#use)
* [Strategies for practicing logical reasoning](#learn)
* [Next steps for learning logical reasoning](#nextsteps)

<a name="defined"></a>

## Logical reasoning defined

Narrowly defined, logical reasoning is the practice of applying induction, deduction, or another logical method to a problem. More broadly, using logical reasoning means **analyzing the relationships among the constituent parts of an argument or process**. It involves thinking about how elements interact to bring about a certain result.

Logical reasoning has tons of practical applications. You can use it to construct strong arguments and analyze the arguments of others. You can use it to develop step-based processes that are efficient, effective, and internally coherent. This is why logical reasoning is so important to so many disciplines. Philosophers, scientists, mathematicians, and computer programmers all use logic in their work. 

<a name="types"></a>

## 2 types of logical reasoning

There are many types of logical reasoning. We’ll discuss two of the most important before exploring the role of logical reasoning in programming, specifically.

1. **Inductive reasoning** involves **evaluating a body of information to derive a general conclusion**. Whenever you engage in research, you’re using inductive reasoning insofar as you’re gathering evidence and using it to better understand the topic at hand. It’s important to remember, however, that the conclusions you’ll arrive at through induction will often be built on evidence that is incomplete. This means that the outcome of inductive reasoning tends to be probable rather than certain.

2. **Deductive reasoning** is the process of deriving conclusions from **general statements or principles called premises**. The **syllogism** is one of the most basic forms of deductive reasoning. A syllogism includes a major premise, a minor premise, and a conclusion. Here's an example:

   > “All bears have fur. A polar bear is a type of bear. Therefore, polar bears have fur.”

   In this case, the premises are true, and they lead logically to the conclusion. A deductive argument can easily go wrong if the conclusion doesn't follow logically from the premises or if one or more of the premises are false. The following syllogism is flawed:

   > “All bears live in forests. A polar bear is a type of bear. Therefore, polar bears live in forests.”

   The major premise is incorrect, so the conclusion is also incorrect.

In summary, while induction involves deriving general principles from specific cases, deduction involves applying general principles to specific cases.

![Logical reasoning](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3k4woyi2k7g0deoes36h.jpg)

<a name="use"></a>

## How programmers use logical reasoning

Logical reasoning plays an important role in programming. Let’s discuss some of the ways that programmers use logic in their work.

### Problem-solving

Programmers use logical reasoning for [**problem-solving**](https://www.educative.io/blog/think-like-a-programmer?eid=5082902844932096). Before you start coding a program, you’ll have to wrestle with questions about what the program is trying to accomplish, what features it will need to have, what programming language you’ll write it in, and so on. Inductive and deductive reasoning are useful tools for answering process questions like these.

### Writing code

**Coding** is the process of writing instructions in a language a computer can read. These instructions direct the computer to **perform a set of operations**. Writing functioning code requires applying logic. **Imperative programming**, for instance, is a paradigm based on issuing commands for a program to follow on a step-by-step basis. Writing these commands is a logical process. It requires thinking about the relationships between parts. Do the commands interact with each other to bring about the desired outcome? If not, the code isn’t going to work.

Writing functioning code is also dependent on understanding the logic of the programming language you’re using. For example, the logical operators `and,` `or,` and `not` in Python are derived from [Boolean logic](https://www.educative.io/blog/philosophy-software-development?eid=5082902844932096), and they’re an important part of [conditional statements](https://www.educative.io/answers/what-are-conditional-statements-in-programming?eid=5082902844932096) and other logical expressions.

### Creating algorithms

**Algorithms** used in **machine learning** and **artificial intelligence** also rely on logic. An [algorithm](https://www.educative.io/blog/top-10-ml-algorithms-for-data-science-in-5-minutes?eid=5082902844932096) is a set of instructions that tells a program what to do on the basis of certain inputs. A simple decision tree algorithm, for instance, will consist of a series of branching decisions. The logic of each branch is fairly simple: “If a certain condition is met, do *A*. If not, do *B*.” These branching decisions are repeated through later stages of the program to specify the appropriate end result based on the inputs.

<a name="learn"></a>

## Strategies for practicing logical reasoning

The best way to practice logical reasoning is by consciously implementing it in your daily life. Here are a few exercises that might be helpful.

1 . Find a news article or thinkpiece in a reputable publication. Read it and try to pick out the author’s **primary claim**. Then, try to identify the **pieces of evidence** that the author uses to support that claim. Does the author’s claim follow logically from the evidence? Or does the claim go beyond what the evidence actually supports?

   Analyzing how authors use evidence to support their arguments is a great way of practicing inductive reasoning.

2 . Next time you’re planning how to tackle a new project, **break your process down into steps** and then write them down on paper. Does the end result follow logically from the steps that precede it? Or does the process contain steps that are redundant, unnecessary, or counterproductive?

   Remember that logic is all about coherence among the constituent elements of an argument or process. Thinking logically means thinking holistically about how relationships and interactions lead to a certain result.

3 . Find an issue being presented for discussion at the next meeting of your local City Council or zoning board. **Formulate a position** on it, and use logical reasoning to construct an argument that **articulates and defends that position**.

   As we discussed earlier, logical reasoning is a great tool for analyzing others’ arguments, but you can also use it to construct sound arguments of your own. The best way to practice this is by taking a position on an issue and trying to convince others that you’re right.

<a name="nextsteps"></a>

## Next steps for learning logical reasoning

There’s a good chance you already use the forms of logical reasoning we've described in this article. We arrive at judgments and decisions by evaluating evidence (induction) and applying principles that we believe to be true (deduction). Even so, studying logical reasoning and consciously applying it can make you a more rigorous and self-aware thinker. It will help you to **pick out flaws in your logic and others’**, and it will help you to **solve problems and build more efficient processes** – in programming work and beyond. 

If you’re interested in learning more about how programmers think, consider exploring Educative’s [Introduction to Computers & Programming](https://www.educative.io/courses/introduction-to-computers-and-programming?eid=5082902844932096) course. It provides an introduction to programming and how programmers solve problems. It also offers some insight into the logical structure of programming languages, explaining, for instance, how conditional statements work to ensure that programs perform the right operations in response to inputs.

Whether you’re learning to code or just trying to strengthen your problem-solving skills, you’ll find that the rigorous, step-by-step thinking that logical reasoning requires is a major asset.

*Happy learning!*

### Continue learning about computers and programming on Educative

* [Absolute beginner's guide to computers and programming](https://www.educative.io/blog/beginners-guide-to-computers-and-programming?eid=5082902844932096)

* [How to think like a programmer: 3 misconceptions debunked](https://www.educative.io/blog/think-like-a-programmer?eid=5082902844932096)

* [How much math do you need to know to be a developer?](https://www.educative.io/blog/how-much-math-do-developers-need?eid=5082902844932096)

### Start a discussion
Where else have you used logical reasoning? Was this article helpful? Let us know in the comments below!