Forum Stats

  • 3,873,118 Users
  • 2,266,506 Discussions
  • 7,911,426 Comments

Discussions

Does using an IDE limit the learning experience?

800330
800330 Member Posts: 355
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?
«1

Comments

  • Kayaman
    Kayaman Member Posts: 3,844 Silver Trophy
    isocdev_mb wrote:
    So, is anyone able to convince me that the balance still tips over to favour vi/emacs/notepad and javac?
    Well I wouldn't recommend plain javac (especially in a windows environment).
    I just can't bear to see the posts where people are using Eclipse and have no idea what the classpath is. Or they're having problems with the IDE itself, instead of the Java language (you know, 'I run my program by clicking this one button, but now it doesn't run anymore, what's wrong?').

    It'd be a pain in the ass to do productive work without something like Eclipse, but you don't hop into a race car when you're starting to drive either.
  • 811778
    811778 Member Posts: 87
    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?


    The thing is, if you want to make a serious career in IT using Java, you need to /understand/ Java. To do this, you need to have a grasp of the nuts and bolts - not just the pretty screens an IDE presents to you.

    If you want to become a top-ranking corporate accountant, you don't just sit down and learn MYOB and Quicken and then think you're ready to climb the ladder...
  • YoungWinston
    YoungWinston Member Posts: 4,310
    edited Nov 10, 2010 11:24AM
    isocdev_mb wrote:
    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.
    So, is anyone able to convince me that the balance still tips over to favour vi/emacs/notepad and javac?
    When you're starting out: yes.

    Why? Because it teaches you several things:
    1. Precision is important. Even in these days of super-compilers, a compiler can't tell what's happened when you mis-spell something.
    2. You learn about the classpath.
    3. You learn what the compiler does and how jars are created (maybe even a bit about what they look like inside).

    Don't get me wrong, I think IDEs are great, but all the stuff you've talked about above are shortcuts; and if that world is all you've ever known, it'll take a lot longer to work out what happened (or at least make an intelligent guess) when something goes wrong, or indeed to do something ridiculously simple like adding a couple of new classes to a jar.

    Eventually, you'll have to learn an IDE because it'll probably be a requirement for a job, but I'd suggest to try living without it for the first month or so.

    Oh, and learn ANT.

    Winston
  • jwenting
    jwenting Member Posts: 4,864 Gold Badge
    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.
    And they are right.
    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.
    They do so much for you that you think you know Java when in fact you have gaping holes in your knowledge.
    Besides that, many IDEs are so complex that you spend an inordinate amount of time learning how to use the IDE. You end up knowing Eclipse rather than Java, yet think you know Java because you mistake one for the other.
    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.
    So, is anyone able to convince me that the balance still tips over to favour vi/emacs/notepad and javac?
    Does the fact that Sun themselves for years (until they started pushing Notbeans as the end-all for development work, thus purely for marketing reasons they forced it to be used) used only a simple text editor and commandline compiler in their training courses and told students to do so in online tutorials do the trick?
  • 800330
    800330 Member Posts: 355
    Understanding the whole of the Java platform and getting ready for a Java programming career are, in my opinion other things than learning to program in Java. In my opinion learning something that is fun and satisfying maintains interest, attention and concentration, oposed to tedious and frustrating. Winning-over a 12yr old for Java seems more likely to happen using some IDE instead of the bare metal. Especially if that means someone saved from fleeing into the arms of VB and the likes.

    When I showed my 8y old son what it is I do for a living, we sat down behind Eclipse and made a swing app that allows you to type funny text balloons over photo's of your own. He's not sold yet but did get to see how work/programming can be fun.

    Perhaps lame, but do you become a better driver when you learn it in a stick-shifted car or one with automatic gears?
  • Kayaman
    Kayaman Member Posts: 3,844 Silver Trophy
    isocdev_mb wrote:
    Perhaps lame, but do you become a better driver when you learn it in a stick-shifted car or one with automatic gears?
    More like "do you become a better driver if you start the car yourself, rather than jump into the driver's seat when the car is running with a cruise control at 60km/h".
  • 811778
    811778 Member Posts: 87
    isocdev_mb wrote:
    Understanding the whole of the Java platform and getting ready for a Java programming career are, in my opinion other things than learning to program in Java. In my opinion learning something that is fun and satisfying maintains interest, attention and concentration, oposed to tedious and frustrating. Winning-over a 12yr old for Java seems more likely to happen using some IDE instead of the bare metal. Especially if that means someone saved from fleeing into the arms of VB and the likes.

    When I showed my 8y old son what it is I do for a living, we sat down behind Eclipse and made a swing app that allows you to type funny text balloons over photo's of your own. He's not sold yet but did get to see how work/programming can be fun.

    Perhaps lame, but do you become a better driver when you learn it in a stick-shifted car or one with automatic gears?
    You learn better/more in a manual than an automatic, period.
    If you can drive a manual, you can drive an automatic.
    If you just learn an auto, you can't drive a manual.

    Showing an 8 year old some cool animations in Eclipse is one thing. Teaching a student Java is quite another.

    In my first year of uni (yonks ago in 2003) I was taiught BlueJ - not Java - in a first semester unit. At the same time, another unit was breaking everything down into the command line, starting from the bare bones and building up. Writing the odd line of code to 'fill the gaps' for a BlueJ Swing Minesweeper app taught me nothing compared to making my own classes from scratch and then getting annoyed when they had compilation errors.

    Trust me, starting on an IDE only delays the inevitable - the realisation that you don't actually know the language, just the pretty screens. As soon as you move to another set of pretty screens, or you get a real world job that involves ssh'ing into a linux box to do some emergency patches or debugging through command-line tools, you're gonna find that out damn quick.
  • YoungWinston
    YoungWinston Member Posts: 4,310
    isocdev_mb wrote:
    Understanding the whole of the Java platform and getting ready for a Java programming career are, in my opinion other things than learning to program in Java. In my opinion learning something that is fun and satisfying maintains interest, attention and concentration, oposed to tedious and frustrating. Winning-over a 12yr old for Java seems more likely to happen using some IDE instead of the bare metal. Especially if that means someone saved from fleeing into the arms of VB and the likes.
    If instant gratification is your only concern, then I suspect that Java is the wrong place to start anyway. Seems to me that a scripting medium like perl or bash, or something like Ruby or Python (or their 'J' equivalents) might be better. Funnily enough, I started out at school with BASIC, back in the days when it was interpreted (1970). Took me thirty years to find Java.
    meacod wrote:
    In my first year of uni (yonks ago in 2003)...
    Yonks ago? Oh dear. I suspect I've been programming longer than you've been alive... :-).

    Winston
  • 811778
    811778 Member Posts: 87
    meacod wrote:
    In my first year of uni (yonks ago in 2003)...
    Yonks ago? Oh dear. I suspect I've been programming longer than you've been alive... :-).

    Winston
    Oh yeah, I don't doubt it. But I'm younger, so clearly I know more than you ;)
  • 800330
    800330 Member Posts: 355
    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.

    I am glad to see you have founded reasons for the advice you give. I haven't and will not interfere when I come across the "don't use an IDE in the beginning" in any thread here, but I remain unconvinced about its blessings.
This discussion has been closed.