3 ms·
'students' reliance on Java's libraries of pre-written code means they aren't developing the deep programming skills necessary to make them invaluable... they a
by baha_man 18y ago
'students' reliance on Java's libraries of pre-written code means they aren't developing the deep programming skills necessary to make them invaluable... they are not fully prepared to compete against what is now a global field of rigorously educated software developers'
I think it's fair to say that most professional programmers in developed countries (a) make plenty of use of existing libraries, (b) may not have 'deep programming skills', and (c) probably don't have a formal education in Computer Science. It also seems unlikely that the majority of developers in India or wherever have these either.
The main reason it's hard for a CS graduate to get a job seems to be that agencies and companies want commercial experience, which can be hard to come by.
'Dewar says that if he were interviewing applicants for a development job, he would quickly eliminate the under-trained by asking the following questions... "I am afraid I would be met by blank stares from most recent CS graduates"...'
...and by many 'professionals' too, I would imagine.
- wallflower 18y agoThe beauty of Java is that it frees the student up from making low-level mistakes (pointer mis-initializations) and spend more time on design/making and fixing higher-level issues. Getting core dumps in GCC while compiling C code ain't the most stress-free experience.
- dazzawazza 18y agoI'd think debugging those kinds of mistakes is part of learning. I've worked with too many programmers that can't debug because they don't really know what a pointer is. Even in Java understanding what the JVM is doing ON TOP of the hardware help you understand how to write good code and debug slow code. Once qualified, sure don't reinvent the wheel, but when you are learning it's a vital experience.
- geebee 18y agoI agree. I don't have a problem with using Java for an intro to data structures and algorithms course, provided that it isn't the last stop in the curriculum. I had to learn data structures using C++, which meant I had to figure out pointers and segmentation faults at the same time I was learning the algorithms behind lists, tree traversal, etc. A curriculum shouldn't be dumbed down, for sure, but if you can make the learning curve easier, increase retention, and keep exit standards high, why not?
- rbanffy 18y agoIt's also true that the failure of Java is that it cannot express a mis-initialized pointer. A good programmer has to know both high-level and low-level stuff. And also has to be able to understand or, at least, to make a decent hypothesis on why GCC core-dumped.
- jrockway 18y agospend more time on design/making and fixing higher-level issues Of course, there are "higher-level issues" that you can't express in Java. Java convinces students (and professors, sadly) that the only kind of OO is single-inheritance with interfaces and no MOP. Java convinces students that programming is all about making the not-really-static types match. I won't even mention what a hack functional programming is in Java (and I'm sure most students never even hear how to hack in FP to Java). Checked exceptions were widely considered a huge failure. Honestly, I think most of the time you'll spend with Java is going to be time spent working around its retarded limitations. Do we really want to teach kids that programming is about dealing with limitations in your tools? At the very least, limiting yourself to Java limits your ability to learn programming. Java isn't a very good language. It is missing features that were widely considered "a good thing" 20 years before its invention. Note that I don't care about teaching memory allocation and freeing the memory, that's monkey work, not computer science. So I'm not advocating teaching C. But languages like Lisp will let you teach all the computer science without workarounds, and still have all the "safety" of Java. (Plus, Lisp programmers get paid a lot more than Java programmers. Surely that's a selling point?)
- raganwald 18y ago> I think it's fair to say that most professional programmers in developed countries (a) make plenty of use of existing libraries, (b) may not have 'deep programming skills', and (c) probably don't have a formal education in Computer Science. It also seems unlikely that the majority of developers in India or wherever have these either. You make it sound like that's a good thing ;-)
- baha_man 18y agoMaking good use of existing libraries is a good thing. Lacking basic skills obviously isn't, but I think the reality is that many 'professionals' do lack these skills. As to having a formal education - I did a year of Computer Science, and I'm glad I did, but I think that programming requires so much self-learning that it probably isn't that important.