Hacker News new | past | comments | ask | show | jobs | submit login

>> If you see someone sorting papers and try to figure out why they are doing it inefficiently, that is mathematical inclination.

Not really, I would say it was a logical inclination not necessarily a mathematical one. And therein is the rub I see programming as logic and problem solving with little to no inherent math unless I am dealing with a mathematical problem. Kind of like the way writing books is not an inherently mathematical in nature even if quite a bit of math is involved in writing a mathematics text book.




This is bordering on semantics. What's the difference between mathematical inclination and logical inclination? The field of computer programming has made a separation in alot of people's mind that simply didn't exist before. People, especially programmers, view mathematics far too narrowly because they lack historical context.

George Boole was a mathematician. The logic textbooks are full of words that betray their background, e.g. the "lambda calculus". All of these things have their roots in mathematics. And before there was computer science degrees, these things -were- mathematics.

I doubt, very seriously, that Djikstra would draw much of a distinction between "logical inclination" and "mathematical inclination". So while you might, the original context of the quote in question needs to be considered.


Agree fully with lbrandy's point. Just to add a little more, people seem to get confused between the expression of mathematical thoughts and having mathematical thoughts. Mathematical symbols are abbreviations for ideas that, if expressed in natural language, would become tedious. Mathematical thinking is something people do everyday. For example, parents have to use combinatorial optimization everyday to figure out a best strategy for running errands. Few parents are schooled to a formal expression of the mental processes they go through in determining a solution but they weigh different goals and optimize nonetheless.

Oddly, a study that is all about exploration of ideas and abstraction has been narrowly defined in many people's minds. Hopefully mathematics educators can break these limited views in years to come.


What's the difference between mathematical inclination and logical inclination?

Logic is a strange area since it bridges fields, primarily math, philosophy, linguistics and computer science.

In my experience, designing software more frequently taps into logic as applied to philosophical arguments and conceptual formal logic more than heavily mathematical areas of logic. The reason is that creating software is basically the process of taking something from the real world and reducing it to a series of logical components and relationships. This is pretty much the exact process for applying formal logic to philosophical questions.

On the other hand, actually coding the software taps far more into the mathematical and linguistic aspects of formal logic, since it's involves piecing together units of mathematical logic to construct a logical machine.

In practice, this whole process is obviously more nuanced, interconnected and filled with gray areas.

It's also certainly possible to argue that all reasoning is math, but this isn't a new concept and dates back to Plato.


Maybe it's my engineering background, but I don't feel like this is semantics - it's unfair to categorize logical thinking as "mathematical" thinking. There are plenty of us from different backgrounds who are big on logic, and IMHO make great programmers. Mathematicians are far from the only ones who can think logically, and the term is at least somewhat misleading.


Uh, logic is a branch of mathematics. From wikipedia:

Logic is the study of the principles of valid demonstration and inference. Logic is a branch of philosophy, a part of the classical trivium, as well as a branch of mathematics.


potatolicious has a point.

In fact, in universities, logic (formal logic, with symbols) is usually taught by philosophy departments.


Only by tradition, and in my experience the philosophy department only teaches the class that serves to introduce formal logic to all undergrads. Philosophers deal with words. They like to discuss the various ways a verbal problem might be reduced to logic, and they might be interested in what can be said (in terms they already use) about a system of logic, but that's the limit of their interest. If you take a graduate-level math class in logic (or metamathematics or foundations or whatever your local math department calls it) or even if you just take an upper-division set theory class, you'll learn more about mathematical logic than anyone in the philosophy department wants to know.


the philosophy department only teaches the class

Most or all undergrad pure logic classes, as far as I've ever seen. There aren't usually a whole lot of pure logic classes, so it's entirely possible that your school(s) might only have had one.

Philosophers deal with words.

Philosophers deal with logic in arguments. I took a couple logic classes during my undergrad and they were entirely symbolic logic. I also took a couple philosophy classes, and they used symbolic logic extensively to describe the flow of logic in arguments. Skimming through MIT OpenCourseWare indicates it's similar there: http://is.gd/qaE0

If you take a graduate-level math class in logic ... even if you just take an upper-division set theory class, you'll learn more about mathematical logic

So you are saying that heavily mathematical logic is more heavily mathematical? Interesting. Do you also learn about tautologies in these classes?

I'm guessing that you are actually implying that mathematical logic is more useful to programmers. As I stated elsewhere, during my undergrad I took classes that touched on both philosophical and mathematical logic concepts and I definitely find myself using both. In my experience: symbolic/philosophical concepts in high level development, symbolic/mathematical concepts in low level development.


The distinction I'm making is between logic that is purely symbolic, where conclusions follow mechanically from assumptions and rules, and logic that is applied to verbal argument. You can describe verbal argument using symbolic logic, but applying symbolic logic to words easily results in ludicrous conclusions unless you apply other filters.

I'm not saying that mathematical logic is more heavily mathematical, I'm saying that philosophers are only interested in mathematical logic concepts they can extract from their mathematical context and apply in words. Aside from that, they are not interested in mathematical logic at all. Whether they are interested in mathematically defined concepts such as "complete," "consistent," and so forth depends entirely on whether the concepts have suggestive names that seem to imbue mathematical results with meanings beyond mathematics.


I'm arguing that the application of logic to arguments and ideas that was part of philosophy has greater impact on high level application design and architecture than math. Taking a real world concept, need or set of actions and translating them into a structure that can be constructed with a programming language uses logic in fundamentally the same way philosophy does, although in an academic setting this area is computer science. Math is most useful at an implementation level, generally coming into play when dealing with components, algorithms and other more narrow implementation details.

The point is that logic used in computer science/information science is a hybrid that is informed by other forms of logic (including linguistics), not just math.

I'm saying that philosophers are only interested in

I don't know what philosophers are only interested in because I don't know what a "philosopher" is.


I think I misunderstood you; I thought you meant mathematical logic (the kind that can be generated mechanically from axioms and rules) and not the kind of logic that requires judgment and applies to words and concepts. If you meant the second kind, then I retract what I said. But you did say, "formal logic, with symbols," and that kind of logic is a pretty weak tool to apply to arguments and ideas.

As for what a philosopher is, we're all philosophers, but not all of us get paid for it.


That raises an interesting question, doesn't it? I wonder how many mathematicians turn out to be good programmers vs how many philosophers turn out to be good programmers?


From experience, I have concluded that whether mathematicians become good programmers depends on whether they have an engineering aesthetic. Mathematical elegance and engineering elegance are not exactly the same thing. A mathematically trivial solution can be a huge practical mess. Mathematicians with no engineering aesthetic can't see the difference and tend to produce big blobs of unmaintainable code. Mathematicians with an engineering aesthetic are some of the best programmers I've worked with.

I've only worked with one philosopher. He's very creative and produces reams of working code, but new requirements always mean new reams of code. Everyone suspects there must be a lot of redundancy in his code, but then, nobody has needed to look, because it all works....


Why would you consider unfair to call logic thinking as mathematical thinking? Maybe it is the engineering background indeed, at least it is for myself. Maybe it was all those "engineering math" mandatory courses... you know, calculus, differential equations, linear algebra, statistics. If we keep thinking about math in terms of some sort of computation which ought to result in a numeric answer... then, absolutely, I agree that has nothing to do with logic.

However, least see what happens when one does not apply mathematical thinking into his own reasoning. I do it myself from time to time and refer to it as my "rat intelligence". You go over and over the facts, one at a time, trying to figure out the way out... It feels pretty much like a rat walking through a maze inside of my brain.

But it comes to a point, when the problem is very hard, that no matter how many times the rat goes over and over the same data, it does not find the answer. In that case you need a superior type of reasoning. You need to step aside and look at the problem as a whole. To find patterns that you can abstract out and rephrase the problem in a way more tractable. And I think in this broader sense logic and math use the same type of mental tools (principles) to attack the same issues.


Actually, all of those computations "which ought to result in a numeric answer" are done according to the principles of logic. Maybe I see it more clearly having taught myself calculus and more advanced math without having someone to "explain" things to me, but all mathematical problem solving is also logical reasoning.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: