Why or why do so many people fail to learn programming?
Is it because they fail to see programming as calculation of data and instead see a black box that magically does things?
Or is it because they can't grasp the "strict" typing of a programming language?
What is it, /prog/, that makes programming so hard, even the introductory course seems so hard for people, even with languages like LISP or Python, and books like SICP?
Name:
Anonymous2010-12-01 22:19
Programming is easy. It can be understood by just thinking. You wont get any crazy paradoxes, like this incompletness paradox.
Mathematics, on the other hand, can't be understood at all. Try understand infinite or at least finite sets. How come, set's elements are "unordered"? Does such condition possible in real life? How many angels can dance on the head of a pin?
``Are such conditions possible''
``Do such conditions exist''
Or, if singular
``Is a condition like this possible''
But not ``Does such'' or ``Does condition''.
Name:
Anonymous2010-12-02 0:43
Just love how /prog/ completely ignores actual discussion and talks about stupid shit like mild grammar.
[quote]Mathematics, on the other hand, can't be understood at all. Try understand infinite or at least finite sets. How come, set's elements are "unordered"? Does such condition possible in real life? How many angels can dance on the head of a pin?[/quote]
Set elements are unordered because it let's us talk about more things with the same concept. A set really just has a way of doing some basic things:
Add shit
Union sets
Intersect sets
Remove SOME element
Now think about a list. You can:
Add shit to the front or back
Concatenate two lists
Intersect two lists (warning: may require thinking!)
Remove shit from the front or back
Now think about a BST. You can:
Add shit in a magic ordering
Union two trees (warning: may require thinking!)
Intersect two trees (warning: may require thinking!)
Remove shit
Sets are just a generalized model that can talk about several things at once. Order just allows us to specify even more detail about the contents of a set. Of course order requires you to first ask "What is order?" which may be answered by "Why do I care about order?" Usually we just need a mapping from our set to the natural numbers or integers (whichever is more convenient). Sometimes we need to have a larger set, like the reals.
Also, as for infinite stuff, it's more about talking about generalized models that help us think about things abstractly without getting worried about the specific details. If the universe turns out to be quantized, then we don't need the reals. Will we still use real analysis aka freshman calculus? Hell yes. It's convenient as hell. Would you talk about a software project by talking about every specific asterisk, ampersand, and semicolon? No! You talk about class organization and really useful general design patterns.
Math is just a tool here. And by thinking about weird stuff like the power set of the naturals we can then add specific details to model useful stuff.
Though honestly some of the stuff is pointless. Like category theory. A fucking sandwich fits into that stuff.
Name:
Anonymous2010-12-02 0:45
People are just going to ignore that though and make 50 replies about failing to quote properly instead.
>>6 You talk about class organization and really useful general design patterns.
I fucking puked all over my keyboard. Fuck!
Name:
Anonymous2010-12-02 6:53
>>5
LOL, I thought, "are" and "do" - both denote existence of a process, but "is" is more like "object" specific existence. Though I dont seed any fundamental difference between objects and actions, like Java-people do, they are all processes.
Name:
Anonymous2010-12-02 7:01
>>6
>Set elements are unordered because it let's us talk about more things with the same concept.
But all thing in real life have some relative order. Everything on my desktop ether on front of me, on the left or on the right. Everything in computer memory also has order. Not so in math.
Name:
Anonymous2010-12-02 7:03
>>6
>Now think about a list. You can:
>Add shit to the front or back
>Concatenate two lists
You can sort list, then use binary search to
[quote]
Add shit
Union sets
Intersect sets
Remove SOME element [/code]
in O(log2(N)) time
Name:
Anonymous2010-12-02 7:15
>>6
>Math is just a tool here.
Religion is also a tool. And has pretty much the same intentions - that is to scam people into submission to a state power. And mathemtical Infinity is pretty much like God, withs formulas being being rituals and prayers.
>And by thinking about weird stuff like the power set of the naturals we can then add specific details to model useful stuff.
What use has infinity? Or unordered set? Or the set of all "naturals"? IRL one always have finite number of naturals.
Why are there so many people here from the imageboards?
You can tell it's them with their failed quoting, shitty posting, bad mathematics and overall unprogliness.
Name:
Anonymous2010-12-02 7:36
>>14
And you have nothing to say in defence of mathematics! Because math is a religion. Admit it.
Name:
Anonymous2010-12-02 8:21
The problem with math is: mathematician uses a mathematical metaphor to describe some concept. The metaphor isn't the thing he describes. But math allows one take the metaphor, and run with it, making arguments that are built entirely on metaphor, but which bear no relation to the real underlying concept. And they believe that whatever conclusions they draw from the metaphor must, therefore, apply to the original concept.
People who don't understand math and compare it to religion are hilarious.
Theistic religions typically require accepting something as truth without any verifiable facts and usually plays on emotional cues to manipulate the person.
Mathemathics is a very useful tool/framework which starts with some premises and derives a lot of things from them, thus "If A, B and C are accepted as true (define the system in some way, with some axioms) -> (possibly an) infinity of true statements follow from those base ideas". A lot of processes in real life can be modeled very well by math, while certain things like computer science are basically just a branch of math as everything is certain and user-defined. What math tells you is if you have one system, it will behave in a certain way, and it gives you the tools to investigate it.
Our reality may itself be mathematical (and computable) at its very foundations given its consistency so far, however since we are part of this reality, there are fundamental limitations about our ability to measure things (since we are ourselves made of these 'things' (whatever the basic element of reality is, for example, in a hypothethical theory it could be n-dimensional strings), thus we are such a pattern in the world which can only interact with other patterns). The best we can do is obtain an isomorphic model of our reality which does not fail at any tests we can throw at it, and that will be good enough, at least until we can find a failure point (if at all), and if we do, we just have to adjust the model or make a new one.
It's a bit sad when people don't understand the true nature of information, mathematics and reality itself.
fuck off sussman, why are you trolling us so much these days
Name:
Anonymous2010-12-02 10:33
>>17
>If A, B and C are accepted as true (define the system in some way, with some axioms) -> (possibly an) infinity of true statements follow from those base ideas".
And why should we believe in your crazy math axioms, that state that "for each N there exist N+1 > N". That isn't obvious at all, and in programming practice leads to integer overflow.
>Mathemathics is a very useful
"Useful" for whom? Can you show us usefulness of math?
>certain things like computer science are basically just a branch of math
And as we all know, computer science is a pseudoscience, that diverges far away from sensible reality. You won't find IRL these crazy turing machines or super-computations. Real computers are simple FSMs. No match needed.
>A lot of processes in real life can be modeled very well by math
In practice all "of processes in real life" are finite, so dont require math at all. You can model them with Lisp for that matter.
Name:
Anonymous2010-12-02 10:33
>>21
It is surprisingly easy to get the right answer with fallacious reasoning or without real understanding. Traditional mathematical notation contributes to this problem. Symbols have ambiguous meanings that depend on context, and often even change within a given context. -- Gerald Jay Sussman
Name:
Anonymous2010-12-02 10:37
Suppose we loosely define a religion as any discipline whose foundations rest on an element of faith, irrespective of any element of reason which may be present. [Atheism], for example, would be a religion under this definition. But mathematics would hold the unique position of being the only branch of theology possessing a rigorous demonstration of the fact that it should be so classified. -- H. Eves, Mathematical Circles, Boston: Prindle, Weber and Schmidt, 1969.
>>22 And why should we believe in your crazy math axioms
You shouldn't, moron. >>17 wrote: "If A, B and C are accepted as true", what letter of IF do you not understand, motherfucker?
and in programming practice leads to integer overflow.
If you were using a real programming language instead of a glorified FSM you wouldn't have any such problems. Until then you have no business calling yourself a programmer, you're a FSM operator. So shut the fuck up and go back to your FSM.
In practice all "of processes in real life" are finite, so dont require math at all. You can model them with Lisp for that matter.
You don't understand the difference between actual and potential infinities. Shut the fuck up and go back to your FSM, and also back to 0chan.
Name:
Anonymous2010-12-02 13:14
>>26
>If you were using a real programming language instead of a glorified FSM you wouldn't have any such problems.
You're still limited by the size of available memory. So there is no "halting problem": program ether stops or overflows memory.
Name:
Anonymous2010-12-02 13:22
Let do some hardcore math!
1. All computers, I've seen, had a finite amount of memory.
2. If we take computer with a finite amount of memory and add one bit of memory to it, we will still get a computer with finite amount of memory
3. Now, by induction, all computers have finite amount of memory.
4. Universe, as a computer, has a finite amount of memory, so Universe is finite.
5. If Universe is finite, then God is also finite.
6. But God is Infinity, so Infinity is finite.
Where people go to just say YOU'RE WRONG YOU FUCKING IDIOT for one small thing and ignore any points or help rather than carry meaningful conversations about *le gasp* programming.
Name:
Anonymous2010-12-02 23:09
>>38
1. take screenshot
2. make demotivational
3. ????
4. PROFIT!!!
Name:
Anonymous2010-12-03 2:08
Let's do the Haskell!
Swing your penis around and slap some more!
Yes! Do the Haskell!
Slap your penis gently!
Jerk once!
jerk twice!
Slap your penis!
Praise the ribbon!
Do the Haskell!
Name:
Anonymous2010-12-03 7:23
>>22
Why should one define anything at all? Nobody is forcing you to "believe" into anything, you just take a system of your own definition, and if it's consistent, you'll arrive at a lot of properties of that system. The system doesn't have to be computable or of this world. While our world can only describe computable things, this doesn't mean that uncomputable systems don't let you reach some very interesting conclusions. You intentionally limit your worldview and thus will miss some pretty useful truths. >>28 That's a lot of fallacies and ambiguous definitions right there.
Name:
Anonymous2010-12-03 10:18
>>41
>Why should one define anything at all? Nobody is forcing you to "believe" into anything, you just take a system of your own definition
That wont be mathematics then. LISP, for example, is also a system, but has nothing in common with mathematics.
and if it's consistent, you'll arrive at a lot of properties of that system.
Please, define "consistent" and "arrive".
>You intentionally limit your worldview and thus will miss some pretty useful truths.
What is "thruth"? Does such thing "exist"? What proves its "existence"? Can you prove that it really proves? No? Q.E.D.
>That's a lot of fallacies and ambiguous definitions right there.
Just as in math.
>mathematics
It's what I call "mental masturbation", when you engage is some pointless intellectual exercise that has no possible meaning. -- Linus Torvalds
You probably know that arrogance, in computer science, is measured in nanodijkstras. -- Alan Kay
Name:
Anonymous2010-12-03 11:10
"Why or why do so many people fail to learn programming?"
Can we stop talking about math and philosophy and get back to the OP's original topic.
Name:
Anonymous2010-12-03 11:17
>>50
But many people insist that programming `equals` math, lol. For xample, every programmer is required to enroll calculus classes, where he will be brainwashed with all that infinity stuff, he will "learn" that the universe consists of so called "infinitesimals" and one can measure "distance" in "reals".
Lets assume that "infinity" exists. Then one can conceive infinity series, where each even denominator is negative:
x = /1 - /2 + /3 - /4 + /5 - /6 + ...
Note: here and below "/n" stands for a rational number "1/n"
Using commutativity of addtion, we rearrange elements in such a way, that after each positive number would go to two negative:
x = /1 - /2 - /4 + /3 - /6 - /8 + /5 - /10 - /12 + ...
Now, using associativity of addtion, we group elements in following way:
x = (/1 - /2) - /4 + (/3 - /6) - /8 + (/5 - /10) - /12 + ...
But (/1 - /2) = /2, (/3 - /6) = /6, etc.., so we have
x = /2 - /4 + /6 - /8 + /10 - /12 + ...
Nice flawed logic using ellipses as if they're proper mathematics. Learn to limits. By rearranging in that manner, you're subtracting 'faster' than you're adding. I know ``faster'' isn't a proper mathematical concept in this respect, but this is essentially what you are doing. Subtracting twice as many terms as you are adding for each iteration of your ``loop''.
In more mathematical terms, you're saying that:
lim as n -> infinity of (the sum of i=1 to n of (1^(-i+1)/i))
= lim as n -> infinity of ( (the sum of i=1 to n of (1/(2i-1)) - (the sum of i=1 to (2n) of (1/(2i))) )
lim as n -> infinity of (the sum of i=1 to n of (1^(-i+1)/i))
= lim as n -> infinity of ( (the sum of i=1 to n of (1/(2i-1))) - (the sum of i=1 to (2n) of (1/(2i))) )
<blockquote> <p> <a href="read/prog/1291256476/68">>>68</a><br/> <br/> <span class="spoiler" onmouseover="this.style.color='#FFF';" onmouseout="this.style.color=this.style.backgroundColor='#000'"><sup><sup><sup><sup><sup><sup><span class="o"><span class="spoiler" onmouseover="this.style.color='#FFF';" onmouseout="this.style.color=this.style.backgroundColor='#000'"><sub><sub><sub><sub><sub><sub><sub><sub><sub><sub><sub><sub><u><span class="spoiler" onmouseover="this.style.color='#FFF';" onmouseout="this.style.color=this.style.backgroundColor='#000'"><sup><sup><sup><sup><sup><sup><sup><sup><sup><span class="o"><u><b><tt>PLEASE LEARN TO FUCKING ``sage'' WHEN SHITPOSTING.</tt></b></u></span></sup></sup></sup></sup></sup></sup><span class="o"><u><b><tt>THANK YOU FOR YOUR ATTENTION ``faggot''</tt></b></u></span></sup></sup></sup></span></u></sub></sub></sub></sub></sub></sub></sub></sub></sub></sub></sub></sub></span></span></sup></sup></sup></sup></sup></sup></span><br/> <br/> <sub><sub><sub><sub><sub><sub><tt><span class="spoiler" onmouseover="this.style.color='#FFF';" onmouseout="this.style.color=this.style.backgroundColor='#000'">That was a lot of fucking enterprise BB code. This will most likely not work.</span></tt></sub></sub></sub></sub></sub></sub> </p> </blockquote>
Name:
Anonymous2010-12-03 18:49
>>69
>Implying a bunch of subs and sups are enterprise work.