Live data from Hacker News

Don't Make Students Use Eclipse

nora.codes

121–130 of 255 posts

Re: Don't Make Students Use Eclipse

#121
post #107
post #41

Earlier quoted context omitted.

> And to this day I find junior devs struggle with the same things unless they have a maven/gradle project all set up for them. Personally I’m still shocked that learning the common build tools for whatever language is used for a CS course is not the standard. If you’re teaching Java you should be teaching Maven, if you’re teaching C++ you should be teaching CMake. Not to the “I can write my own plugins/macros level”…

> If you’re teaching Java you should be teaching Maven no you shouldn't, because the premise is invalid. A university student shouldn't be "learning java". They should be learning programming, and theory of computing (and algorithms etc), and perhaps use java as the language. None of this requires maven, build tools or any tool chains beyond some unit testing framework (and GUI framework if displays are necessary). D…

>A university student shouldn't be "learning java". They should be learning programming, and theory of computing (and algorithms etc), and perhaps use java as the language.

What is the real world difference between "learning java" and "learning programming, theory of computing (and algorithms etc), using java as the language"?

Surely to learn all that shit (using java as the language) you at some point have to, you know, learn java?

Re: Don't Make Students Use Eclipse

#122

I think a better alternative would be "Don't Make Students Use Java", I seriously can't think of a worse language for training beginner/intermediate programmers, I certainly wish my schooling experience consisted of something else. From day one you're introduced to magic on top of magic: "Open up and click 'new project' and name it 'MyProj' and now click on the file in the side menu that says 'MyProj' and inside `pub…

Java is great for exactly that reason. It gives students an introduction to compilation, runtimes, stacks and heaps etc. Perhaps you had a poor learning experience due to who/what was teaching you rather than Java? My second comp sci course in college (first if you count high school AP credits), taught me all of this, and prepared me for the "full details" of MIPS and C.

Learning C first would also introduce students to all of that as well, outside of the magic shell of Java and its tooling; get your compiler, get your text editor, and you are so much closer to the action. If I could have chosen what I started with I would likely have picked C, or possibly a LISP as well.

Re: Don't Make Students Use Eclipse

#123
post #16

I'm not sure I agree much with this. When I first started learning Java I had six or seven years of programming experience and I still found dealing with matters of classpath and javac remarkably complicated. I had things down well enough with the tools I used before, but it all seemed so foreign in the Java world. And to this day I find junior devs struggle with the same things unless they have a maven/gradle projec…

Actually I agree for the Java world here. Thanks to the design of Java and many Java libraries you cannot write a little more complex Java code from your mind. Even importing all this nested OOP libraries is complicated without an IDE. For me Java is really a language which is impossible or too time consuming to master without a good IDE. Working for many years in the python world professionally some people are still…

Java is special since the whole compile/link/run loop is relatively slow and there's no REPL. In Nodejs or python you are expected to just run your code. Any error like a bad import/require statement you can correct quickly and re-run. Maybe even add/remove print statements while at it. And it's not just dynamic languages! You can have the same experience in Haskell.

Re: Don't Make Students Use Eclipse

#124
post #106
post #53

Earlier quoted context omitted.

I strongly disagree. A lot of my peers in college were very bright and could write great code, but they were absolutely useless as developers because they didn't know any tooling. They couldn't compile, run, test, or source control their code if the professor didn't set it up for them. Yes, tools change, but the knowledge from one tool is almost always transferable. Once you're comfortable on the CLI and understand t…

Isn't eclipse a piece of tooling? I mean I think the best argument against teaching eclipse is IntelliJ is much better, imo, and is more widespread than eclipse at this point. Student should have a module/class whatever about command line tools as well. I this comparison is comparing two things that aren't comparable, an IDE vs learning the CLI. I also think you contradict yourself in your last sentence. Teaching an…

> but at some point they might need to know what the tool is doing under the hood.

The problem is the IDE makes it so easy to never have to look under the hood, to the point when people take a peek the get overwhelmed and quickly return to the comfort of the IDE.

However, in real world of production environments there will be no IDE holding your hand and as such you can't get away without a good understanding of the engine under the hood.

Re: Don't Make Students Use Eclipse

#125

I think a better alternative would be "Don't Make Students Use Java", I seriously can't think of a worse language for training beginner/intermediate programmers, I certainly wish my schooling experience consisted of something else. From day one you're introduced to magic on top of magic: "Open up and click 'new project' and name it 'MyProj' and now click on the file in the side menu that says 'MyProj' and inside `pub…

for very beginners, yes... Java is not the right programing language to teach. (I'd say Python is). But for intermediate/advanced classes I think Java is a must learn for every CS graduate. 1. While it is bloated, it has so many modern and not so modern concepts into it, that learning it makes you understand those concepts better. (eg: It is hard to understand Generics if your favorite language doesn't have them) 2.…

I don't particularly agree with the first two but I can WHOLLY agree on the third, in fact, I think I blame Java for my infatuation with FP

Re: Don't Make Students Use Eclipse

#126

I think a better alternative would be "Don't Make Students Use Java", I seriously can't think of a worse language for training beginner/intermediate programmers, I certainly wish my schooling experience consisted of something else. From day one you're introduced to magic on top of magic: "Open up and click 'new project' and name it 'MyProj' and now click on the file in the side menu that says 'MyProj' and inside `pub…

Seems like your complaint is against using IDEs early on and not Java. It's been awhile since my undergrad, but we used Java and text editor. We compiled with javac and ran the jars from the CLI.

Re: Don't Make Students Use Eclipse

#127
post #121
post #107

Earlier quoted context omitted.

> If you’re teaching Java you should be teaching Maven no you shouldn't, because the premise is invalid. A university student shouldn't be "learning java". They should be learning programming, and theory of computing (and algorithms etc), and perhaps use java as the language. None of this requires maven, build tools or any tool chains beyond some unit testing framework (and GUI framework if displays are necessary). D…

>A university student shouldn't be "learning java". They should be learning programming, and theory of computing (and algorithms etc), and perhaps use java as the language. What is the real world difference between "learning java" and "learning programming, theory of computing (and algorithms etc), using java as the language"? Surely to learn all that shit (using java as the language) you at some point have to, you k…

Was about to reply to GP similarly, but after rereading it - I think they just expressed the sentiment badly. Note the single sentence they quoted in the reply - about teaching Maven.

Pretty sure they're reading "learn java" as "learn the language + the common build tools + more", instead of just the language, as we are.

Almost all beginners absolutely need to be taught the language first (so they have something concrete to mentally latch on to), not concepts and algorithms. However, Maven is not one of those things - either a GUI with a compile button or "javac" is sufficient at that level.

Re: Don't Make Students Use Eclipse

#128

I think a better alternative would be "Don't Make Students Use Java", I seriously can't think of a worse language for training beginner/intermediate programmers, I certainly wish my schooling experience consisted of something else. From day one you're introduced to magic on top of magic: "Open up and click 'new project' and name it 'MyProj' and now click on the file in the side menu that says 'MyProj' and inside `pub…

Java is great for exactly that reason. It gives students an introduction to compilation, runtimes, stacks and heaps etc. Perhaps you had a poor learning experience due to who/what was teaching you rather than Java? My second comp sci course in college (first if you count high school AP credits), taught me all of this, and prepared me for the "full details" of MIPS and C.

My main complaint about Java as a pedagogical language is that it's just so big, with so many complexities around semantics, compilation, runtimes, etc. So my fear is you end up spending as much time learning Java as you do learning how to build software. I wouldn't choose C# or C++, either. My sense, from working with others who came out of CS programs that relied on Java, is that they end up only really knowing how to work in Java, and therefore only really knowing their way around the ways of solving problems that come most naturally in Java.

It could be my chauvinism speaking. I'll admit to having some. My CS program taught us three relatively small programming languages (Scheme first, followed by C, and then MIPS assembly) in the first year before introducing OOP in the second year. So we ended up getting exposure to a variety of programming paradigms and environments, and came away with a lot of tools in our belt, and a fairly deep understanding of programming language theory and paradigms. And I did eventually find myself settled in a Java shop. When I did, I found that within only a couple months I had already developed a deeper understanding of the language than colleagues who had spent their entire careers working in it. And I believe a lot of that is because I had enough background knowledge to distinguish between, "This is how programming is done," and, "This is how programming is done in Java."

Re: Don't Make Students Use Eclipse

#130

I think a better alternative would be "Don't Make Students Use Java", I seriously can't think of a worse language for training beginner/intermediate programmers, I certainly wish my schooling experience consisted of something else. From day one you're introduced to magic on top of magic: "Open up and click 'new project' and name it 'MyProj' and now click on the file in the side menu that says 'MyProj' and inside `pub…

for very beginners, yes... Java is not the right programing language to teach. (I'd say Python is). But for intermediate/advanced classes I think Java is a must learn for every CS graduate. 1. While it is bloated, it has so many modern and not so modern concepts into it, that learning it makes you understand those concepts better. (eg: It is hard to understand Generics if your favorite language doesn't have them) 2.…

Python is perfect for learning programming logic.

Wouldn't have wanted it any other way.

Post reply on HN