Page 1 of 2
The Perils of Java Schools
Posted: Sat Dec 31, 2005 8:57 am
by BDKR
I suspect I'll have a flamage coming, but oh well. I would hope this spurns conversation instead of some toes being stepped on.
http://joelonsoftware.com/articles/TheP ... hools.html
Posted: Sat Dec 31, 2005 10:53 am
by onion2k
Entirely true. But at the same time, a bit off the mark. The fact is that 99% of programmers are working on Yet Another Accounting Application, for which Java (or PHP, Perl, Ruby, etc) is fine. They wouldn't need to use recursion or pointers even if they knew what they were.
PS. Recursion and pointers are easy anyway. I never did see why people find them so confusing.
Posted: Sat Dec 31, 2005 11:23 am
by BDKR
Only within the context of application developement is it off the mark, and he states as much, tho not in the same words.
from the article wrote:
Now, don't get me wrong: there's nothing wrong with Java as an implementation language.
Wait a minute, I want to modify that statement. I'm not claiming, in this particular article, that there's anything wrong with Java as an implementation language. There are lots of things wrong with it but those will have to wait for a different article.
Instead what I'd like to claim is that Java is not, generally, a hard enough programming language that it can be used to discriminate between great programmers and mediocre programmers. It may be a fine language to work in, but that's not today's topic. I would even go so far as to say that the fact that Java is not hard enough is a feature, not a bug, but it does have this one problem.
The implication is that being good at application development doesn't make one a great programmer. The overall thrust is that colleges are turning out application developers at the expense of creating genuine CS guys. He aims at this same target here...
http://www.joelonsoftware.com/articles/ ... 00319.html
PS. Recursion and pointers are easy anyway. I never did see why people find them so confusing.
That may be true, but have you paid attention to the number of questions that crop up here that are a lack of understanding or even an awareness of recursion?
Posted: Sat Dec 31, 2005 11:32 am
by Ambush Commander
::scratches chin thoughtfully::
Maybe that's why I gave up on C... I'll have to take a look at that second article.
Posted: Sat Dec 31, 2005 12:25 pm
by neophyte
"Vaporators! Sir - My first job was programming binary load lifters... very similar to your vaporators in most respects."
I don't get it.
Posted: Sat Dec 31, 2005 2:31 pm
by Charles256
I don't see why a school would only teach Java...We just convnced my college to switch from Cobol to C++....heh
Posted: Sat Dec 31, 2005 6:12 pm
by Gambler
I agree that CS should start with low-level programming. I don't agree that it should start with C. The author of the original article seems to be one of those elitists who swear by C because it's hard to learn. Thing is, it's difficulty does not stem from the fact that it's a low-level language.
Posted: Sat Dec 31, 2005 6:31 pm
by Charles256
really? I got some binary I want you to talk too...

Posted: Sat Dec 31, 2005 8:43 pm
by timvw
Although Joel makes a couple of valid points, he also makes a couple of mistakes in his post (Who cares if they teach one, two or zillion languages? It's all about training your brain to solve the puzzle with the given pieces...)
Anyway, if you think that people can't be good programmers because they don't know how pointers or recursion work, you should read
EDIT (forgot a l in html)
The story of Mel.
Posted: Sat Dec 31, 2005 8:56 pm
by Charles256
bad link

Posted: Sat Dec 31, 2005 9:00 pm
by Roja
We had a variant of this same discussion in
another thread.. basically, should CS make learning easier, or harder?
While Joel is a relatively bright guy, his point of view is often (wildly) off the mark.
This is a good example. One point he makes is "I can't understand why the professors on the curriculum committees at CS schools have allowed their programs to be dumbed down to the point where not only can't they produce working programmers, they can't even produce CS grad students who might get PhDs and compete for their jobs. "
You cannot be a *working programmer* without knowing pointers? That point is the underpinning for the majority of the article, and I don't think any intelligent person is really going to buy that. The number of programming languages (and jobs to implement in those languages) that don't require a knowledge of pointers is (far) more than zero. He even cites Java as just such a language, and there is no shortage of Java jobs out there. Is that the elite best of the best of programming jobs? I'll agree with Joel that no, its probably not.
His whole post is superiority and bias in the form of "Yeah, but I learned it another way, and
that is why I'm so good". This is a logical fallacy - he's assuming that the method of his learning produced the result. Its far from a clear cause/effect.
He brings up the perfect counterpoint to his argument: Graduates. The number of graduates is *decreasing*, not increasing, and that is happening for the first time in decades. The school system needs to address that, or else the IT workforce is going to be increasingly less educated, as we promote and place people without a college degree to do the jobs because there are no college graduates available.
I made most of my points on this issue in the other topic, but to summarize, there are certainly more than a few people that disagree with Joel. I'd say he's in the minority in his opinion, but that seems fairly obvious, even by the comments in his article.
Posted: Sun Jan 01, 2006 10:56 am
by onion2k
Roja wrote:He brings up the perfect counterpoint to his argument: Graduates. The number of graduates is *decreasing*, not increasing, and that is happening for the first time in decades. The school system needs to address that, or else the IT workforce is going to be increasingly less educated, as we promote and place people without a college degree to do the jobs because there are no college graduates available.
Do you
really need a degree to work in IT? I don't think so.
Posted: Sun Jan 01, 2006 11:00 am
by Roja
onion2k wrote:Do you really need a degree to work in IT? I don't think so.
Nope. I didn't say you do.
I did however say that not having an degree means you are less educated. Granted, in this discussion, I'm defining that as the lack of a degree, which is certainly not always a perfect match to educated, but I think its a reasonable comment for this context.
The point being, the more candidates in IT that have degrees, the more overall education there will be in IT. Thats a positive to strive for, even if "educated" doesn't include people that know pointers and recursion as well as Joel.

Posted: Sun Jan 01, 2006 9:03 pm
by alex.barylski
Roja wrote:onion2k wrote:Do you really need a degree to work in IT? I don't think so.
Nope. I didn't say you do.
I did however say that not having an degree means you are less educated. Granted, in this discussion, I'm defining that as the lack of a degree, which is certainly not always a perfect match to educated, but I think its a reasonable comment for this context.
The point being, the more candidates in IT that have degrees, the more overall education there will be in IT. Thats a positive to strive for, even if "educated" doesn't include people that know pointers and recursion as well as Joel.

While I agree with most everything you say...
I can't agree that NOT having a degree makes you less educated...but I suppose it depends on what you mean by educated...
I dropped out in Gr. 10...been programming for a majority of my life...
Completely self taught...well thats kind of a misnomer...cuz obviously I learned from someone (via articles, books, forums, BBS, etc...)
And....now i've grown tired of defending my skillset
So i'll stop right here
The point being...I agree, that Joel guy...slightly radical in his beliefs

Posted: Sun Jan 01, 2006 9:15 pm
by Chris Corbyn
Just because something is easier to learn doesn't mean it's a bad thing to learn. Technology is always moving forward and new languages will keep surfacing, each one perhaps making certain tasks a little easier or cleaner -- that's not bad, that's just technology evolving. You have to move with the times.
Granted, it's easier to pick between good and bad devlopers in a language like C but you can still see differences in any language.
Hell.... If I got hung up on one language and nothing else there's a good chance I'd be out of the job in 30 years time.