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:
Anonymous2011-04-05 16:50
Most people just don't have the motivation (or the autism) needed to become a good programmer.
I think that more often than people outright fail to understand programming, they just don't know how to overcome the obstacles they encounter.
I remember my first programming class in highschool, I went through half of it trying to outright write an entire program before compiling it, without completely understanding what I was doing. Then when it didn't work, I would ask people until someone told me what was wrong. This is the model of problem solving people are used to in an academic environment. In most academic fields, the work you do doesn't have to be perfect, just be decent and look good. You hand it in, get a grade, and move on.
Programming doesn't conform to this model. People used to the model will do their best to write a program using their normal techniques, and when they fail, they will get frustrated and give up because they don't know what else to do.
Basically, the problem is a combination of the wrong approach, an unwillingness to accept the unforgiving critique of a computer, and a lack of a burning desire to solve problems and/or masochistic rage.
Name:
Anonymous2011-04-05 19:36
Programming should be stimulating on an intellectual level as well as creative and expressive in nature. Most newcomers fail to grasp the primary theory behind such an expression, or don't see any reason to partake in this at all. The purpose of programming IMO extends beyond sole semantics to a level of creative joy in not only solving a problem, but doing it well.
It is my understanding that most newcomers feel they will be able to program sufficiently in a given language simply by reading a book or two about it, when really the only solid way to learn is to do. I'd like to make a personal note here that I learned my first language through trial and error; I read maybe two or three introductory pages on syntax from a book then dove straight into forming whatever ideas crossed my mind into compilable code, referencing the book and various manual pages for unknown API.
I don't enjoy discussing why someone can't do something, rather how someone will be able to do this. My hypothesis is that the subject needs to first have the aptitude or desire to learn such a thing, and secondly must have some guidance on where to start with a source to reference as it becomes necessary for the subject to utilizes other aspects of the language/interface. You could also forcefully create a scenario where learning such a thing is required; such as injecting the subject with some poisonous substance, preferably NOT a neuro-toxin, and telling them they have 48 hours to become sufficient in the language lest the proctor fails to supply the antidote for such a poison and the subject dies.
Another hypothesis I have is one of getting the subject generally interested in this field. As it has been noted, there has been an overall decline in the willingness to pursue the field of computer science, perhaps because most people are generally intimidated by such systems and thus feel as though they will fail whilst attempting to understand the composition of such a thing. Creating an interest in computer science requires a connection to be made, in the subject's mind, between the utilization of computer systems and their own personal interests. This can be easily accomplished on an individual basis, but a sufficient starting point would be to revoke the preconceived notion of extreme complexity of such systems (perhaps through demonstration) on a moderately large group of subjects.
Well, there's my two cents.
Please continue the discussion, anus haxers