Live data from Hacker News

Don't Make Students Use Eclipse

nora.codes

131–140 of 255 posts

Re: Don't Make Students Use Eclipse

#131
post #35

> What they can’t do, unless they’ve figured it out on their own, is operate a computer outside of the confines of the IDE they’ve been taught. Understanding what a file is and what a text editor should be prerequisites for entering a computer science department. Someone who doesn't understand these concepts has no business learning to program. At my "not MIT" school, it was expected that most incoming CS students un…

> At my "not MIT" school, it was expected that most incoming CS students understood some basic programming before they entered school.

At Cambridge (UK), this is _not_ the case. They merely note that "some knowledge of procedural programming is useful"[1] and "[n]o prior knowledge of programming is required"[2]. The main thing they are looking for, in terms of qualifications, is mathematics, so you'd typically see an A-level in mathematics plus two further ones in further mathematics, the physical sciences, or computing depending on what your school offers.

At interview (for two colleges), I was not asked about programming - the first was purely mathematics based, and the second was primarily maths based with some CS concepts introduced to see how you thought about and were able to manipulate the information given in the interview. It's not something you were necessarily expected to know.

Until this year, the introductory CS modules (making up 25% of the first year's content) were available to natural sciences students, so you would have students from a fairly wide range of backgrounds _successfully_ learning CS and to program (the maths modules, also making up 25%, are still shared, for what it's worth).

[1] https://www.cst.cam.ac.uk/admissions/undergraduate/entry

[2] https://www.undergraduate.study.cam.ac.uk/courses/computer-s...

Re: Don't Make Students Use Eclipse

#132
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…

I haven't really played around with java since the 90's, and I bought a Java book and tried hopping back in. It was really frustrating because the book uses 8 and I downloaded 9 and Eclipse was slightly diffferent, something with modules blah blah.

Plus downloading the actual Java SDK was confusing, the versioning, it not being free anymore...

Re: Don't Make Students Use Eclipse

#133

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.

I consider the IDE's harmful magic don't get me wrong, and perhaps you were taught better than I was, but you still have classes and related incantations out of the gate (I would prefer a non-imperative language as an ideal starter, but I'd settle for a procedural over an OO)

Re: Don't Make Students Use Eclipse

#134

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.

The point is, it's a terrible first language because it's impossible to actually understand what's going on even in a basic "hello world" program until halfway through the semester. So inevitably you have to start them off by saying "here's a bunch of noise that you don't understand, but that's OK, just copy and paste it" which is a terrible habit to reinforce.

You need to understand

* access modifiers (public/private)

* classes

* static methods

* void return values

* the main() function

* modules (System.out.println)

Just to understand a basic "hello world". It's too much for first-time programmers.

Re: Don't Make Students Use Eclipse

#135
I'm laughing right now because ... I mean, I really thought this was going to be saying "Don't make students use Eclipse (because it's so inferior to the JetBrains tooling they'll use as professionals". My university had us in the command line plenty for C--that's no reason to pretend that that world has anything to do with how Java is written. It's the same "up by the bootstraps" 70s LARPing fantasy that makes people think that assembly will Teach Computational Thinking Skills that will somehow confer ability to handle distributed systems. If you want students to be able to come out able to effectively use tools, they have to come up using them.

Re: Don't Make Students Use Eclipse

#137
post #93

Earlier quoted context omitted.

The author is specifically talking about students. The emphasis at this stage plays a key role in whether they'll have that interest or not. Knowing is a prerequisite to developing interest.

I agree, but regardless of if they're exposed to a CLI, they will be exposed to tooling. Why is GUI tooling less likely to spark that interest?

GUI tooling almost entirely uses the command line layers under the hood, so it is strictly more complicated while hiding more of the real process - the worst of both worlds.

My point about Git is an example of this. Teaching Git is hard, partly because Git's command line UX is bad, but layering the complexity of, e.g., EGIT on top doesn't really remove most of that and makes it harder to teach (because expressing what to do in a GUI is strictly harder than communicating text commands, among other things).

Re: Don't Make Students Use Eclipse

#138
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…

> I'm all for folks learning these skills eventually, but in a first-year CS class I'd really rather students worry about the language and general concepts of writing software.

This is a big part of why I recommend that another language should be used to teach introductory level courses. Java has too much additional complexity. That complexity has benefits in production, but not for first-year undergrads.

Re: Don't Make Students Use Eclipse

#139

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…

[deleted]

Re: Don't Make Students Use Eclipse

#140

I can't help but feel like this article is less a condemnation of IDEs in introductory teaching and more a condemnation of java in introductory teaching. It feels like the use of Eclipse or IntelliJ in intro CS courses is so common in large part because Java has such relatively complex tooling and language conventions. I've never seen someone intro Python with an IDE, because it's extremely easy to use Python without…

> I can't help but feel like this article is less a condemnation of IDEs in introductory teaching and more a condemnation of java in introductory teaching.

It is both, but I started with the IDEs because they are the chicken of this chicken and egg problem. Java is too complex, so schools reach for IDEs, which just makes things more complicated, et cetera.

If a standard development environment could be devised that hides the incidental complexity of Java without hiding the essential complexity of file systems, etc., I think it would solve the problem just as well as teaching Python.

Post reply on HN