Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Does coding improve one's formal logic?


  • Please log in to reply
44 replies to this topic
Benny-D
  • Members
  • 1485 posts
  • Last active: Sep 27 2016 11:23 PM
  • Joined: 29 Feb 2008

Is it true or not? I heard it somewhere, but I forgot where exactly.

 

AHK was my first and, until today, the only experience that I've ever had in programming.

 

You may call it pathetic, but my biggest lesson that I've learned from almost 5 years of

coding in AHK is that it is way better to split my whole code into functions and run them

according to my desired order, rather than have the whole script as just "flat" list of

commands.

 

However, I am not sure if I am now thinking more logically compared to what I was 5 years

ago (from what I just said about code with functions you may in fact conclude that I 

don't think logically at all happy.png )

 

Well, anyway, what's your experience? Did programming help you think more logically?

 

 

EDIT:

I've  change the title. The original one was:

"Programming helps thinking more logically?"



jaco0646
  • Moderators
  • 3165 posts
  • Last active: Apr 01 2014 01:46 AM
  • Joined: 07 Oct 2006

I read the title as, “Does writing more code make a person better at logical thinking?”.

A simpler version is, “Does writing more code make a person better at coding?”.
 

The answer to both is no, not necessarily.
 

                more = quantity

                better = quality

 

So an even simpler version of the question is, “Does quantity equal quality with respect to coding? (or thinking?)”.
 

Again no, not necessarily.
 

Personally, answering questions on the forum helped my logical thinking process as much or more than writing code.



Benny-D
  • Members
  • 1485 posts
  • Last active: Sep 27 2016 11:23 PM
  • Joined: 29 Feb 2008

I see your point. Thank you. Actually, I like your rephrasing. I think, I will use it in the title.



IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007

It depends on which level you are referring to "coding".

 

Writing code implies that one has already made abstract thinking and modelling of a problem. This modelling, designing and planing will improve your logical and abstract thinking.

So, if you solve "new" problems with coding I would say it strongly improves logical thinking, which actually (hopefully) is mostly the case.

 

If you write boilerplate code, it obviously does not really help to improve your logical thinking.



G. Sperotto
  • Members
  • 539 posts
  • Last active: Jun 20 2015 04:54 PM
  • Joined: 12 Dec 2011

The exercise of thinking, the way you may be forced to do when trying to explain a solution in a deterministic language, may indeed be a good exercise for such a kind of tasks. And indeed, if you get used to do it, you may come to realise that within time, you will become better at it.

 

But i am inferring that the title implies some connection to logic OUTSIDE of computer programming, right?

 

The applications of this exercising outside of computer programming are probably very debatable. Some people advocate playing sudoku 10 hours a day as a "means of getting smarter". I would have to disagree with such statements, as i would disagree if you were claiming the same for coding because you will mostly just become better at tasks that involve similar rules. What about other kinds of tasks?

 

"Smarter" is actually a very broad term. And also is "logical thinking". The statements:

 

-> Stalion is a horse.

-> Horses have hearts.

 

May lead one to conclude that:

 

-> Stalion has a heart.

 

But i don't think it's only mathematically-deterministic logic that is being applyed here. There is a context, and it adds lots of complexity to the problem.

 

So let's take a look at alternate ways of improving logical thinking. Mechanical engineering, for example. Being good at programming won't necessarily make you consider the possibility of water drops leading to corrosion on a given part of a machine. And a mechanical engineer may argue that it is pure logic that is leading him to consider the effects of water drops and corrosion.

 

Again, i think mechanical engineering is a different exercise to computer programming. Are they related in such a way that becoming good at one will make you good at the other one? I wouldn't say so, specially because i know some people that are good in mechanical engineering and very bad at programming, even though they attended classes on both matters.

 

In resume, i suppose that you will become good at logical thinking only if you get to regularly exercise many forms of applying logic to solve problems, not only computer programming, even though it is certainly a valid exercise for a part of it.


"What is a suitable automation? Whatever saves your day for the greater matters."
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!


Benny-D
  • Members
  • 1485 posts
  • Last active: Sep 27 2016 11:23 PM
  • Joined: 29 Feb 2008

WOW!!! IsNull and G.Sperotto, thanks for these contributions.

Very enlightening !

 

guest3456
  • Members
  • 1704 posts
  • Last active: Nov 19 2015 11:58 AM
  • Joined: 10 Mar 2011
jaco is back

sinkfaze
  • Moderators
  • 6367 posts
  • Last active: Nov 30 2018 08:50 PM
  • Joined: 18 Mar 2008
It depends entirely upon what you mean by being better at logical thinking.

Do you become better at logical thinking in terms of programming? Probably. (Hopefully.)

Do you become better at logical thinking in general? For me, somewhere between 'not necessarily' and 'no'.

dmg
  • Members
  • 2395 posts
  • Last active: Nov 04 2015 06:46 AM
  • Joined: 19 Nov 2010

I would say that scripting a lot will probably make you better at the logic involved in scripting, and to a MUCH lesser extent more organized and logical in your thinking in general. Even if what you learn while scripting doesn't really transfer to other areas, any thought intensive activity can your boost concentration and problem solving skills. Basically, the more you exorcise your mind the better it will work. This has been proven in multiple studies.


"My dear Mr Gyrth, I am never more serious than when I am joking."
~Albert Campion

-----------------------------------------------------------------------------------------------
Website | Demo scripts | Blog | External contact

tidbit
  • Administrators
  • 2709 posts
  • Hates playing Janitor
  • Last active: Jan 15 2016 11:37 PM
  • Joined: 09 Mar 2008

If you've coded for a while you might start to read more and pay more attention to stuff aswell. and try stuff yourself.

So maybe a tinsy-winsy bit (or a lot) smarter/logical, it depending on what you do.

If anything, it'll make you more self-sufficient assuming you are the type that TRIES and not begs other people..


rawr. be very afraid
*poke*
. Populate the AutoHotkey city. Pointless but somewhat fun. .


derRaphael
  • Members
  • 872 posts
  • Last active: Mar 19 2013 04:42 PM
  • Joined: 23 Nov 2007

Generally you may say: Logic and logical thinking are skills which can be learned and trained. Depending on how you train this skill, you might improve logical thinking.

 

But ... this is only true when a huge set of conditions is met. To name some of the most important ones:

 

  • You need to focus on new problems, which dont have a solution yet or develop a solution which is drastic different to the existing one.
  • You need to continue to learn about never-met-before topics, in order to estalish a broad in-depth-knowledge where many facts apply to your logical dispute.
  • The training you do, must include different types of logic, not only the same

 

In a nutshell, one might say, yes, by more coding you become better in logical thinking. If your coding doesnt improve over time, by using knew coding techniques, you wont improve your logical thinking, but stay on the same level.

 

Coding may teach you several things, neccessary to improve your own logic:

 

  • Problem fragmentation
  • Partial-Reusable-Solutions
  • Abstracting Problems

 

And such. Additionaly it may improve your own research qualities and improve these aswell.

 

They key factor is your will to expand your know how. Expanding knowhow leads to new problems and solutions, which after all, may affect the way you code or rule out unimportant factors for a software project.

 

Sticking to only one language such as ahk, teaches you a lot about windows and common problems such as simple GUIs and lil nifty tools. The main problem is that ahk is limited to a certain environment - windows and its typical usecases.

 

As a conclusion: Coding will only improve your logical thinking, when your code covers a lot of different problems from different subjects. If you only stick to certain topics, such as remote control a software, improve UI do some GUIs and show some static content, your logic wont improve.

 

dR



All scripts, unless otherwise noted, are hereby released under CC-BY

Benny-D
  • Members
  • 1485 posts
  • Last active: Sep 27 2016 11:23 PM
  • Joined: 29 Feb 2008

Thanks to all for the most recent answers!

 

In a nutshell, I can tell now from the answers that logic in itself is quite useless,

however, it is really useful when applied to a certain field, however, there in that

filed the logic is very much dependent on how much a person who is using logic

is well-versed in that field.



sinkfaze
  • Moderators
  • 6367 posts
  • Last active: Nov 30 2018 08:50 PM
  • Joined: 18 Mar 2008

In a nutshell, I can tell now from the answers that logic in itself is quite useless...

 

 

I don't think any of us were saying that logic is useless. On the contrary, thinking logically is one of our greatest potential assets. The problem is that, as you hinted at, we're often unable to see the forest for the trees when it comes time to use logical thinking about other topics or fields (usually because of our inexperience).

Coders/programmers, in my experience for example, appreciate the subtlety and complexity of the process of writing and executing code. Musicians, similarly, appreciate the subtlety and complexity of the process of writing and playing music. But when people from both groups are asked for their opinion on the social implications of, say, a piece of political legislation, the appreciation for the subtlety and complexity of human behavior is often lost on them. It's not necessarily that they couldn't be logical about it, but that they don't understand all of the factors in play like they do in their field.



Benny-D
  • Members
  • 1485 posts
  • Last active: Sep 27 2016 11:23 PM
  • Joined: 29 Feb 2008

So, to sum up what you just said, would I be safe to say that it's

impossible to be logical in a certain field unless you have experience

in that filed?

 

I am a bit puzzled by your example of musicians. I mean, programmers

definitely need to be logical in writing a code, otherwise the code will

not work, but musicians writing music, i.e. composers, aren't they more

like artists painting pictures? I mean they create pieces of art that can

be highly illogical, however, the art is not the matter of logic, but  the

matter of taste - some like it, some don't.



derRaphael
  • Members
  • 872 posts
  • Last active: Mar 19 2013 04:42 PM
  • Joined: 23 Nov 2007

Benny-D you should read about http://en.wikipedia....and_mathematics which probably enlightens you about logic and music :)

 

 

They key factor is your will to expand your know how. Expanding knowhow leads to new problems and solutions, which after all, may affect the way you code or rule out unimportant factors for a software project.

 

Basically by extending your own knowledge, and by abstracting this knowledge you'll learn about other problems and their proper solutions - if they exist. However by doing so, as a result this will affect the way you think and therefore the way you think logical. As long as you'll only stick with a specific topic you will gain a tunnelled vision, which, as sinkfaze stated, doesn't allow you to judge on other type of problems, simply because you'll lack the expirience.

 

Logic itself is a trained behaviour which results on transferring abstracted facts onto new situations. This is something which can be learned. Take simple maths, we all learned about numbers in our early school days - this allows to a certain degree to use this knowhow in new situations and do simple calculations with ease - allthough we didnt learn every single item from a multiplication table, but rather the concept behind it. 

 

Unless one's brain is physically damaged, everybody may learn anything - it's just a matter of time and one's personal will. And with anything i mean anything, one can also learn to be intelligent or creative. But again, it always starts with the will to do so and one's capability to do research - which is something that can be learned, too.

 

For all those screaming, that intelligence cannot be learned, have a look at a ways to cheat at an IQ test, to cut it short, when you train such tests more often, it's very likely that your measured result will be higher than it would have been otherwise ;)

If you take the IST-2000R which is one of the 'modern' tests, the only thing it proves is how much you've already learned, as most of the testing subjects need a form of prior knowledge in order to understand the test itself. Extending this prior knowledge (verbal, mathematical, visual "intelligence" tasks etc.), doesnt make you more intelligent, but allows only to cheat on the test itself and pushing your result.

 

As for creativity it requires to learn many different issues, mostly about humans psychological structure, ethical and moral thinking and such - if this know how is combined with efforts on creating something new, it will be regarded as "creative". A gifted person, doesnt need to learn this particular topics, but does this entire process more intuitive - which is a genetical matter, but the results are the same.

 

Thinking logical is a mere consequence of trained and adapted behaviour. Programming itself may help to train that, but only in certain scenarios - as outlined before. 



All scripts, unless otherwise noted, are hereby released under CC-BY