Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

BASIC was the first programming language I was exposed to when I started learning to program 5-7 years ago... I would hope today this truth is false.

It did, however, took me 2 years to learn something else other than BASIC plus another year of programming BASIC in Java...



Have you tried learning Scheme? My first language was C, which I learned very much as if were BASIC (plus pointer arithmetic), and I related very much to Dijkstra's observation when a couple of math major friends and I started learning about continuations in college.

Either my friends were unequivocally smarter than me, or my knowledge and experience with C/Java/Python really got in the way of my understanding. The difference in how quickly we grasped the material was really clear: my mental model was that of saving and recalling the call stack. Their conceptual model was quickly somehow intuitive in a way I still don't fully grasp.


I've heard that introductory courses that use Scheme go over pretty well, but most people's heads explode when they take Programming Languages I (in Scheme) at my university. It seems that after 3 or 4 years of Java, C and C++, their minds have formed certain expectations of what a programming language is supposed to be like (which is helpful when learning a new language that shares those expectations).


I first learned BASIC when I was a youngin' too. There's a lot of hyperbole in these "Truths"; I think he's just decrying the poor state of programming languages in those days. I wouldn't take it too literally.

(but who knows? maybe we really are rubbish programmers. Better get started on learning lisp just in case.)

In fact, I'm not sure how many of these are true in academic computer science today. The first one "Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians." just sounds like bragging between academic camps.


>The first one "Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians." just sounds like bragging between academic camps.

From a mathematical/proofs point of view, computer science is much harder then many forms of applied math. Sure, basic programming isn't all that difficult, but algorithm design and some of the more complex fields, like computer vision? Proofs of correctness are harder on algorithms (you need more in your head, state wise, then you do to a simple inductive proof), and even basic edge detection (Let's say 'Canny', because that's a particular algorithm) requires a deep, intuitive understanding of multivariable calculus.


Interesting that you mention Java... I think there was a similar argument for it. Here it is => http://www.joelonsoftware.com/articles/ThePerilsofJavaSchool... .


Here's another take on Java, well, really it's more about Python:

"In a recent talk I said something that upset a lot of people: that you could get smarter programmers to work on a Python project than you could to work on a Java project.

I didn't mean by this that Java programmers are dumb. I meant that Python programmers are smart."

http://www.paulgraham.com/pypar.html


In "Coders at Work", there was an interesting exchange between Seibel and Knuth, where Seibel asks Knuth about Dijkstra's ideas on how computer science should be taught, and Knuth pointed out that Dijkstra, like the rest of us, learned about computers by tinkering with them, not by spending several years working out formal proofs without access to hardware.


My first programming language was C, so I became a business analyst. Some day I will figure why they keep me here working as one.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

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

Search: