Forum Stats

  • 3,875,206 Users
  • 2,266,870 Discussions
  • 7,912,109 Comments

Discussions

Does using an IDE limit the learning experience?

2»

Comments

  • jwenting
    jwenting Member Posts: 4,864 Gold Badge
    isocdev_mb wrote:
    meacod wrote:
    Showing an 8 year old some cool animations in Eclipse is one thing. Teaching a student Java is quite another.
    And therefore I wonder, when in this forum's section New to java the question is asked "I'd like to pick up Java, how?", is it asked by a student or a computer interested person doing so on free time? I am inclined to think the latter, as the student will probably already been guided past the initial hurdle by what's in the course material.
    uh, no.
    He won't learn Java, he'll learn the IDE.
    If you can't see the difference between a programming language an an IDE, you would better restrict your "programming" to Visual BASIC or Delphi.
  • 791266
    791266 Member Posts: 18,005
    isocdev_mb wrote:
    I followed some threads in the New to Java section and noticed some experienced forum members discourage the use of an IDE when starting to learn Java (for example in [url http://forums.oracle.com/forums/thread.jspa?threadID=2127255&tstart=0]Java) and recommend to use a simple text editor and command line compiler invocation.
    I consider my IDE, Eclipse a bliss. I would be seriously hampered without having code completion, javadoc-tooltip and fix imports around. And I would think that not having to concern oneself with classpaths, imports,... and having instant visual cues on syntax errors are experience-improving features in an IDE that help a new comer a great deal.

    Hearing of BlueJ only a few weeks ago, I'd say having an entry-level IDE with less knobs and dials sounds like an even better idea. although I did not verify (by trying it out myself) the truth in rumors that BlueJ alters the code underneath and hides the tricky stuff to an extend one does not learn the Java language anymore.

    So, is anyone able to convince me that the balance still tips over to favour vi/emacs/notepad and javac?
    I know that many people don't agree with me, but I'm on "your side". I actually think that you should start teaching Java as a programming language, and start lesson 1 with an IDE, and also show the students how to single step in a debugger. They learn a lot faster in that way. I would then, after they have understood the basics of the language, show how to compile by hand, and explain how the classpath works.

    Most of my reasoning is that you should make programming fun from lesson 1, you shouldn't start with boring stuff, and you don't need to know how the classpath works in order to learn how basic syntax and constructs work.
  • 800330
    800330 Member Posts: 355
    jwenting wrote:
    uh, no.
    He won't learn Java, he'll learn the IDE.
    If you can't see the difference between a programming language an an IDE, you would better restrict your "programming" to Visual BASIC or Delphi.
    Good point! The underlying doubt I have with the no IDE advice is: would we loose that guy for Java if the initial attempts on the commandline (and no syntax highlighting editor, no java doc tool tips) make him give up and move to Visual Studio and the likes.
  • jwenting
    jwenting Member Posts: 4,864 Gold Badge
    isocdev_mb wrote:
    jwenting wrote:
    uh, no.
    He won't learn Java, he'll learn the IDE.
    If you can't see the difference between a programming language an an IDE, you would better restrict your "programming" to Visual BASIC or Delphi.
    Good point! The underlying doubt I have with the no IDE advice is: would we loose that guy for Java if the initial attempts on the commandline (and no syntax highlighting editor, no java doc tool tips) make him give up and move to Visual Studio and the likes.
    if he doesn't want to learn the language, maybe we don't want him?
    He'd likely become a lead weight on whichever team he's employed on, dragging them all down.
  • jwenting wrote:
    isocdev_mb wrote:
    Hearing of BlueJ only a few weeks ago, I'd say having an entry-level IDE with less knobs and dials sounds like an even better idea. although I did not verify (by trying it out myself) the truth in rumors that BlueJ alters the code underneath and hides the tricky stuff to an extend one does not learn the Java language anymore.
    See above. BlueJ does this to an even greater extend than other IDEs.
    To avoid confusion: BlueJ absolutely does not "alter the code underneath". The only code submitted to the compiler is that which students or their teachers have put in the project, BlueJ adds no libraries of its own, and the compiler used is the standard Sun/Oracle or OpenJDK one.

    What BlueJ does do is enable you to invoke methods directly, so that you can avoid having to explain the signature of the main method until students are ready for it. And this is the key to the more general argument being made here. It's not a question of whether students need to learn about command line, or emacs, or Eclipse, but when they should learn it.

    If you want to teach students how to program, using Java, then don't start by giving them a crash course in using the Windows Command Prompt, setting environment variables and interpreting the cryptic error messages they get when they get it wrong.

    It's not about learning to drive in a stick-shift versus an automatic, it's about learning to drive by (a) getting into a car versus (b) learning to change the oil. Yes, it's useful to know (maybe) but it's not your first priority.

    Ian.
    BlueJ developer.
  • jwenting
    jwenting Member Posts: 4,864 Gold Badge
    ianutting wrote:
    jwenting wrote:
    isocdev_mb wrote:
    Hearing of BlueJ only a few weeks ago, I'd say having an entry-level IDE with less knobs and dials sounds like an even better idea. although I did not verify (by trying it out myself) the truth in rumors that BlueJ alters the code underneath and hides the tricky stuff to an extend one does not learn the Java language anymore.
    See above. BlueJ does this to an even greater extend than other IDEs.
    To avoid confusion: BlueJ absolutely does not "alter the code underneath". The only code submitted to the compiler is that which students or their teachers have put in the project, BlueJ adds no libraries of its own, and the compiler used is the standard Sun/Oracle or OpenJDK one.
    Wrong. It writes part of your code for you, far more than any other IDE.
    What BlueJ does do is enable you to invoke methods directly, so that you can avoid having to explain the signature of the main method until students are ready for it. And this is the key to the more general argument being made here. It's not a question of whether students need to learn about command line, or emacs, or Eclipse, but when they should learn it.
    Which contradicts your claim that it doesn't hide stuff from you and doesn't write code for you.
    If you want to teach students how to program, using Java, then don't start by giving them a crash course in using the Windows Command Prompt, setting environment variables and interpreting the cryptic error messages they get when they get it wrong.
    In fact that's exactly what you should do. Interpreting error messages and knowing how to use a computer at the basic level are fundamental to the work of a programmer.
    It's not about learning to drive in a stick-shift versus an automatic, it's about learning to drive by (a) getting into a car versus (b) learning to change the oil. Yes, it's useful to know (maybe) but it's not your first priority.
    Wrong. Without knowing how to use your computer beyond pushing buttons you can never know how to program it properly.
    And that means you'll never be a programmer, you'll be a button pusher.

    BlueJ (and tools like it) causes many unqualified people to think they know how to program Java, which leads to countless questions by "professionals" who don't know what a classpath is, what a stacktrace is or how to read it, etc. etc.
    They're the cesspool of the profession, causing a lot of work for true professionals to clean up the messes they leave behind.
  • 791266
    791266 Member Posts: 18,005
    jwenting wrote:
    Wrong. Without knowing how to use your computer beyond pushing buttons you can never know how to program it properly.
    And that means you'll never be a programmer, you'll be a button pusher.
    I would in that case argue that you never should take a programming class before you have completed classes in operating system theory.
    BlueJ (and tools like it) causes many unqualified people to think they know how to program Java, which leads to countless questions by "professionals" who don't know what a classpath is, what a stacktrace is or how to read it, etc. etc.
    They're the cesspool of the profession, causing a lot of work for true professionals to clean up the messes they leave behind.
    The problem in that case isn't that they have used an IDE, the problem is that their teacher has done a bad job. He should inform them about how to start, build and deploy before the class is over. If he does that at first, or at the end doesn't matter. He should also inform them that they are far away from being professionals, and he should inform them about where to go next. E.g. taking classes in algorithms and data structures.
  • jwenting
    jwenting Member Posts: 4,864 Gold Badge
    Kaj wrote:
    jwenting wrote:
    Wrong. Without knowing how to use your computer beyond pushing buttons you can never know how to program it properly.
    And that means you'll never be a programmer, you'll be a button pusher.
    I would in that case argue that you never should take a programming class before you have completed classes in operating system theory.
    Doesn't have to go that far. But if you don't know the difference between RAM and ROM, having a 100GB harddisk or 1GB RAM (yes, I've heard people, including those calling themselves programmers, saying "but I've 50GB memory" when an application fails because of insufficient RAM on their machines with 256MB RAM), you've no place trying to write software.
    And knowing how to control that operating system from the command prompt, how to start applications, etc. is part of that.
    BlueJ (and tools like it) causes many unqualified people to think they know how to program Java, which leads to countless questions by "professionals" who don't know what a classpath is, what a stacktrace is or how to read it, etc. etc.
    They're the cesspool of the profession, causing a lot of work for true professionals to clean up the messes they leave behind.
    The problem in that case isn't that they have used an IDE, the problem is that their teacher has done a bad job. He should inform them about how to start, build and deploy before the class is over. If he does that at first, or at the end doesn't matter. He should also inform them that they are far away from being professionals, and he should inform them about where to go next. E.g. taking classes in algorithms and data structures.
    You forget that the majority are at least in large part self-taught.
    They may have a book to go on, but ever more often all they have is some forums like this one and a few website tutorials from roseindia or about.com.
This discussion has been closed.