Live data from Hacker News

Is learning to program inherently hard?

computinged.wordpress.com

51–60 of 69 posts

Re: Is learning to program inherently hard?

#53
post #43

I've said it before, and I'll say it again. In my experience, the problems that students have ultimately fall into one of two categories: 1. Learning to think algorithmically; 2. Abstraction. What do I mean by these? By "thinking algorithmically," I really mean "taking a large problem and breaking it up into an ordered series of steps or sub-problems." This is surprisingly hard for a lot of people, in part because th…

You can simulate by indenting four spaces in

Ah, thanks! I'd been trying to figure out how to do that. I missed the memo on how to use HN's comment formatting system. Now, if I could just figure out how to edit a comment...

Re: Is learning to program inherently hard?

#54
post #35

I've said it before, and I'll say it again. In my experience, the problems that students have ultimately fall into one of two categories: 1. Learning to think algorithmically; 2. Abstraction. What do I mean by these? By "thinking algorithmically," I really mean "taking a large problem and breaking it up into an ordered series of steps or sub-problems." This is surprisingly hard for a lot of people, in part because th…

I'd honestly go ahead and bite the bullet and say these students are lacking in an important intellectual capacity if they can't handle that extremely modest amount of abstraction. If they are successful it is probably due to a solid work ethic.

You know, that's what I thought for the longest time, but I eventually saw enough otherwise-perfectly-normal adults get hung up on the same problem--- and talked to enough other teachers who reported the same thing--- that I came to believe that there was something fundamentally different going on, and that it wasn't just a few tough students.

As somebody who's been programming for most of my life, it was really hard for me to learn to think about this stuff from the perspective of somebody who'd never seen it before. Many thought patterns and cognitive skills that are second nature to us programmers are, for a lot of people, very difficult to learn.

Re: Is learning to program inherently hard?

#55
post #43

Earlier quoted context omitted.

You can simulate by indenting four spaces in

Ah, thanks! I'd been trying to figure out how to do that. I missed the memo on how to use HN's comment formatting system. Now, if I could just figure out how to edit a comment...

Huh. OK, I can edit this comment's parent comment ("Ah, thanks!...") but not my original comment. Is there something going on whereby comments older than a certain number of hours can't be edited?

Re: Is learning to program inherently hard?

#56
post #50

I've said it before, and I'll say it again. In my experience, the problems that students have ultimately fall into one of two categories: 1. Learning to think algorithmically; 2. Abstraction. What do I mean by these? By "thinking algorithmically," I really mean "taking a large problem and breaking it up into an ordered series of steps or sub-problems." This is surprisingly hard for a lot of people, in part because th…

The idea of abstractions has really been nagging at me lately. Specifically the abstractions that other people use to understand the world. I know that personally I enjoy conversing at least specific level of detail that includes only the subset of things that are relevant, while my wife will enumerate all the elements in a set even if there is a perfectly good description or name for that set. I really just want to…

The word you're looking for might be "metacognition" ("thinking about thinking"), and I agree that it's a fascinating concept. We spend our whole lives locked inside our skulls looking out, and it can be fascinating to imagine or learn about how others experience their cognitive worlds.

To me, that's one thing I enjoy about teaching- a lot of the time, you're having to try and figure out how a student is perceiving the subject or lecture. In essence, you're constantly reverse-engineering your students' perceptions of what you're telling them.

Re: Is learning to program inherently hard?

#57
I think programming is a vague term. If programming just means rigorously encoding an imprecise set of instructions then while not easy I cannot say it is especially difficult.

But if your programming involves complex mathematics,physics, linguistics, biological, intricate interactions with the world, heck even philosophical concepts then programming is in the cartesian product of the domain and field and is as hard as the toughest problem you are attacking, judged with respect, also to the source field. The true difficulty is in balancing multiple species of abstraction, domain knowledge, device knowledge and encoding instruction in a way that satisfies all of these.

So there is the base difficulty of abstracting and then converting mental concepts to a set of computations compounded with the difficulty of getting the abstractions of your domain knowledge to transfer to a set of mental concepts that are transferable to a set of computations. heh. If the field you are dealing with is easy And Or you are continually dealing with the same problem more or less (just different facets) such that you had internalized most of the process to automated subthought (mastery) then yes it will appear easy.

Programming then, would only be bounded by its own internal difficulty, which gets easier the more you explore it and learn widely applicable abstractions. Once you mix in the difficulty of the field the same applies till you have reduced the interactions of field+programming to mastered concepts. If the field has a high minimum then this reduction may still always remain extremely difficult. So if one finds programming easy it could also be a sign that you are not challenging yourself enough, not pushing your boundaries sufficiently.

My theory is that those of the greatest skill have burning curiosity and will to improve, respond positively to challenge, and have great ability to focus - together this allows them to hold on to and continually attack a problem to a greater depth than most. You need only pick 3, maybe only 2. If there is any inherent genetic advantage held by some - greater ability to focus, efficient use of nutrients, quicker and more enduring synaptic connections, whatever - for the rest of us, I feel the brain is marvellously malleable and can be tuned down another set of dimensions. The space of intelligence is gigantic and non euclidean and likely with no concept of a global maximum. If the person is so determined they will work around their deficiencies and or train their mental processes stronger so that any "lack" of inherent skill does not get in the way of what they wish to do. This is what I believe I do and did. I do be slow as molasses.

Re: Is learning to program inherently hard?

#58
post #26

Earlier quoted context omitted.

I would be useless as a mechanic. 90% of being a good mechanic, just as 90% of being a good programmer or a good doctor, is debugging. If you're a good debugger, you can damn well do anything .

A good portion of the remainder is not being afraid to make things worse temporarily, I'd say.

You don't get the luxury of revision control with engines.

Re: Is learning to program inherently hard?

#59
post #57

I think programming is a vague term. If programming just means rigorously encoding an imprecise set of instructions then while not easy I cannot say it is especially difficult. But if your programming involves complex mathematics,physics, linguistics, biological, intricate interactions with the world, heck even philosophical concepts then programming is in the cartesian product of the domain and field and is as hard…

I am new here and so do not understand the intricacies of this community. Is there anything particularly offensive or especially stupid about my comment? I tried to be careful but perhaps I failed and so would appreciate any insight for further edification.

Re: Is learning to program inherently hard?

#60
post #59
post #57

I think programming is a vague term. If programming just means rigorously encoding an imprecise set of instructions then while not easy I cannot say it is especially difficult. But if your programming involves complex mathematics,physics, linguistics, biological, intricate interactions with the world, heck even philosophical concepts then programming is in the cartesian product of the domain and field and is as hard…

I am new here and so do not understand the intricacies of this community. Is there anything particularly offensive or especially stupid about my comment? I tried to be careful but perhaps I failed and so would appreciate any insight for further edification.

Don't worry about it. Your comment was fine. People sometimes downvote for idiosyncratic reasons but someone else usually comes along and neutralizes that (as I just did). The main thing is to keep the discussion on-topic and not go meta.

You make an excellent point: the difficulty of programming is not only that of instructing the computer but also that of the problem the program is to solve. I agree.

(As an aside, the main problem with your comment is that it was rambling. This obscures your otherwise valuable insights. I recommend a course of obsessive-compulsive editing :))

Post reply on HN