Live data from Hacker News

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

pshaw.wordpress.com

101–110 of 145 posts

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

#101
post #51

Earlier quoted context omitted.

I am pretty sure it was your tone.

Java is a whipping boy, and I also have my problems with it, but one of its minor strengths is that it is clean enough for a teaching language (especially for total neophytes). Here is the much lambasted manner of outputting: System.out.println("Hello world"); ...in fact, this is well organized. "System" is a namespace. "out" is a static variable. "println" is a static function. "Hello world" is a String. These thing…

java.lang.System is class, not a namespace (although classes in Java are overloaded to function as namespaces as well as modules and data type definitions). println() is not a static method, but an instance method of the java.io.PrintStream class. out is a static variable in the System class of type PrintStream which refers to an instance of that class, on which we invoke the method println().

...which is a lot to demand of a beginner to understand in his very first program.

I'm self-taught myself, and for me, having a humanities background, C/assembly and Scheme was a perfect combination for understanding both how computers actually work and what computation is all about (to the extent that I understand either!).

I think Java is a nice language in many ways, but I think its dominant position as a teaching language is due to market demand more than any inherent suitability for that role.

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

#102
A lot of it is about motivation.

I took AP Comp. Science. A in freshman year of high school. I got a 5 on the exam. An A in the class. I'd be so excited each day as I went to class. This was the peak of my new found love with programming.

Then in senior year I took AP Comp. Science AB. I did just-okay in the class. And bombed the AP exam.

More telling was how little I cared about the poor grades.

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

#103
post #96

Earlier quoted context omitted.

I disagree completely. One of the best skills to learn is to see through fluff and understand what is going on. I'd actually say that the best first language to learn would be assembly language. It's insanely simple, but there's a lot of fluff, so you have to learn how to 'read' code in terms of overall structure/flow instead of focusing on each individual instruction. I'm still not convinced learning in classes is g…

Learning to see through the fluff is not a beginner skill . I'll just stop here and say I think you'd make a poor teacher because you show little if any empathy or awareness of what it means to not know something or how important it is for a beginner to have small successes and working programs right from the start.

I agree I would make a bad teacher for a general class. I think programming skill is largely natural talent and isn't something that can be taught. I'd also say that the biggest skill anyone can have is the ability to self learn. Being taught the fundamentals of programming in a class doesn't bode well for future hacker ability IMHO.

If someone has a natural talent for it, it can be nurtured, but trying to teach just anyone how to program is the reason we have so many mediocre programmers in the industry. Some people should give up on programming.

Imagine anyone could go to art college, get a job as an artist, and be employed at big industries "blending in" and never really rated on their art work. This is the issue with programming. At the moment, there's this strange belief that anyone can be a great programmer - that it's just typing. Mediocre and bad programmers who may have a piece of paper saying they completed courses, are allowed jobs in industry.

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

#104
post #51

Earlier quoted context omitted.

I am pretty sure it was your tone.

Java is a whipping boy, and I also have my problems with it, but one of its minor strengths is that it is clean enough for a teaching language (especially for total neophytes). Here is the much lambasted manner of outputting: System.out.println("Hello world"); ...in fact, this is well organized. "System" is a namespace. "out" is a static variable. "println" is a static function. "Hello world" is a String. These thing…

In Python you can always do:

  import sys
  sys.stdout.write("Hello world!\n")
if you really need this level of detail as a teacher.

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

#105
post #103

Earlier quoted context omitted.

Learning to see through the fluff is not a beginner skill . I'll just stop here and say I think you'd make a poor teacher because you show little if any empathy or awareness of what it means to not know something or how important it is for a beginner to have small successes and working programs right from the start.

I agree I would make a bad teacher for a general class. I think programming skill is largely natural talent and isn't something that can be taught. I'd also say that the biggest skill anyone can have is the ability to self learn. Being taught the fundamentals of programming in a class doesn't bode well for future hacker ability IMHO. If someone has a natural talent for it, it can be nurtured, but trying to teach just…

I think programming skill is largely natural talent and isn't something that can be taught.

I disagree, sort of; thinking logically is the natural talent, being good at programming is a mere side effect. People who are inherently bad at associating cause and effect, just aren't going to be good at anything that requires logic and rational thinking.

but trying to teach just anyone how to program is the reason we have so many mediocre programmers in the industry.

No it isn't, people who have no natural talent for programming don't just do it for no reason, they do it because the pay is attractive and this is one of the few fields where one can get a pretty high paying job without any degree at all.

The dot com boom and the absurdly high salaries that were thrown out to anyone that could slap together some HTML is the reason we're currently stuck with so many mediocre programmers. As long as someone can fake it, and land a nice paying job, hordes of mediocre fakers will continue calling themselves programmers.

It's not even that these people can't be taught to program well, they simply have no interest in programming well. They learn just enough to get by, collect a paycheck, and go home. The thing missing isn't ability, it's interest. This isn't something limited to our field either, it happens in any field where $$ is not linked to actual performance or proof of skill; managers are another good example.

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

#106
post #103

Earlier quoted context omitted.

I agree I would make a bad teacher for a general class. I think programming skill is largely natural talent and isn't something that can be taught. I'd also say that the biggest skill anyone can have is the ability to self learn. Being taught the fundamentals of programming in a class doesn't bode well for future hacker ability IMHO. If someone has a natural talent for it, it can be nurtured, but trying to teach just…

I think programming skill is largely natural talent and isn't something that can be taught. I disagree, sort of; thinking logically is the natural talent, being good at programming is a mere side effect. People who are inherently bad at associating cause and effect, just aren't going to be good at anything that requires logic and rational thinking. but trying to teach just anyone how to program is the reason we have…

I agree - methodical scientific thought processes are the talent. I disagree about degrees though. When someone says they have a degree in computer science, I'd always be very weary.

If you were to commission a portrait of yourself, would you choose an artist based on his previous works, or based on some certificate saying he completed a course on art at some college? I know which I'd base it on.

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

#107

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.

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…

one fellow grad student got exasperated at me in a study session and said, "I don't care about the principles, just give me the answer so I can get an A on the test!"

IMO it's a serious bug in the educational system that people are able to pass by following that approach.

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

#108
post #106

Earlier quoted context omitted.

I think programming skill is largely natural talent and isn't something that can be taught. I disagree, sort of; thinking logically is the natural talent, being good at programming is a mere side effect. People who are inherently bad at associating cause and effect, just aren't going to be good at anything that requires logic and rational thinking. but trying to teach just anyone how to program is the reason we have…

I agree - methodical scientific thought processes are the talent. I disagree about degrees though. When someone says they have a degree in computer science, I'd always be very weary. If you were to commission a portrait of yourself, would you choose an artist based on his previous works, or based on some certificate saying he completed a course on art at some college? I know which I'd base it on.

I wasn't claiming a degree was necessary, or even an indicator of success in programming, merely that it tends to filter out the people who have no interest in the subject. Sadly, many people who are interested are ruined in college by being taught Java.

Past work is always a better indicator than any recommendation, be it on paper or verbal, but past work is proof of skill, which I already mentioned.

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

#109
post #80

Earlier quoted context omitted.

Two illiterates can have a conversation a writer could transcribe. I'm pretty sure I couldn't represent the behavior or thought process of a computer-illiterate in code.

Never used SAP or Siebel then? ;-)

No, but I've used Taleo and Peoplesoft, so I know where you're coming from. Taleo is so egregiously bad that I want to start a company specifically to wipe them out.

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

#110
post #81

Earlier quoted context omitted.

I confess I know little of Python, so wasn't confident enough to list it. From what I know, the Python mantra seems to be 'one way to do something', which I suppose would be less confusing for first timers.

Well, I think Python has one obvious preferred way of doing things, but then tends to let you do it anyway you want. Which I guess is a part of the whole "Python supports multiple programming paradigms (primarily object oriented, imperative, and functional)" thing. Not that I know that much about Python either but it is my preferred language.

Because of crippled lambdas, Python never felt to me like it really supported functional programming.
Post reply on HN