Live data from Hacker News

Java in College: "You might as well be teaching Chinese to a monkey."

pshaw.wordpress.com

141–145 of 145 posts

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#141
post #78
post #63

Earlier quoted context omitted.

Then you've forgotten what it's like to be a beginner. Not just that, but what programming should be like. Hello-world shouldn't need more than two elements.

I think judging a language by "Hello-world" is a mistake. Sure, some languages have a fixed overhead for creating a program. Some have needless syntax fluff that doesn't do all that much, but it's actually a good skill IMHO to be able to identify and see through that fluff to the core elements of the code. When we pick up a book do we judge it based on the index at the back and the preface and the publishing info at…

I find that the preface of a book is often highly indicative of the content of the book. The preface of a good book will generally talk about a few abstract themes which guide the exposition. The preface of a poor book will be a sort of random collection of notes, ideas, and guidelines. One textbook I looked at (on EE) started with a paragraph that went something like "Scientists understand the world by creating models. A model reflects reality. A model has components, each one of which corresponds to something in the world." The book was, unsurprisingly, no good.

In a similar way, Java's verbosity in even the simplest examples speaks to a certain kind of language design. Java's design is based on indulgence in the idea that difficult things can be made somehow easier or more reliable if the difficulty is hidden by a lot of simple, but needless verbiage.

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#142

Earlier quoted context omitted.

"I couldn't represent the behavior or thought process of a computer-illiterate in code." That's what the job of a computer scientist is, translate from real world process to computer program. Maybe it isn't a one to one correspondence like spoken to written English but if someone tells you they need a program to track employee time and they need to sign in and sign out you can write that right?

A human and a computer are equally good at clocking one person into work on time. A computer is probably much better at tracking the hours of 500 people, using this to estimate the probability of various inconvenient person-mixes (the foreman and backup foreman are both sick!), and using this to generate schedules. A person is probably better than a computer at deciding whether or not it's better to clock out of work…

You're missing the point. Were not talking about the suitability of computers to a specific task. Were talking about literacy rates.

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#143

This really has nothing to do with Java, except it happens to be the language he's teaching. A more accurate title would be 'Programming in College: "You might as well be teaching Chinese to a monkey."' as it would be equally applicable to any programming language.

Recent research has tended to show that most skills tend to be learned through practice. Few people are naturally good and few people are naturally bad. Those who practice, excel.

Programming has the property that those who wish to practice today have almost unlimited opportunities.

This might explain the wildly different levels of skill that the poster observed. Perhaps programming would be best self-taught in a workshop setting so folks at different levels don't get in each others' way.

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#144

Earlier quoted context omitted.

I taught Comp Sci 101/102 as a TA at a state university in the US. Yes, there are students who just don't get it. There was one student of mine who seemed to think as if the machine contained some weird little fussy creature, and if you somehow made nice to it in its unusual language, it would decide to like you and do you a favor and run your program correctly. Seriously. He couldn't comprehend: X = X + 1 To be fair…

I can see how "X = X + 1" could be confusing to someone who has never been exposed to programming before. All your life you're taught in math classes that "=" means the things on both sides are "equal" at all times. Maybe replacing the "=" with an array while teaching would be helpful. Then once he understands the concept, try to introduce the "=" syntax.

Actually, I did at one point diagram all of the states of X across time, so it was an array. (There was also iteration in a loop involved.) I think this only confused him even more, though.

Re: Java in College: "You might as well be teaching Chinese to a monkey."

#145

Earlier quoted context omitted.

Ruby has quite a bit of syntax (parens, methods on objects, blocks, etc), whereas scheme has almost none (parens, special forms like lambda, #t, '()). Of course both have less obtrusive syntax than Java, which requires the famous public static void main... just to get started. That is the kind of stuff that I think confuses true beginners. They look at that stuff and think "holy crap memorize these voodoo incantation…

One of the things that complicates Scheme for many beginners is the prefix notation for arithmetic and such. It's just not a concept most Freshmen are acquainted with.

I dunno--I started community college with an HP-48 instead of a TI calculator, and reverse polish notation wasn't a problem at all once the friend who'd convinced me to get one explained how the stack was like the way you do arithmetic on paper.
Post reply on HN