1 2 Previous Next 18 Replies Latest reply: Nov 16, 2010 3:58 AM by jwenting RSS

    Does using an IDE limit the learning experience?

    800330
      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. Re: Does using an IDE limit the learning experience?
          Kayaman
          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.
          • 2. Re: Does using an IDE limit the learning experience?
            811778
            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...
            • 3. Re: Does using an IDE limit the learning experience?
              YoungWinston
              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
              • 4. Re: Does using an IDE limit the learning experience?
                jwenting
                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?
                • 5. Re: Does using an IDE limit the learning experience?
                  800330
                  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?
                  • 6. Re: Does using an IDE limit the learning experience?
                    Kayaman
                    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".
                    • 7. Re: Does using an IDE limit the learning experience?
                      811778
                      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.
                      • 8. Re: Does using an IDE limit the learning experience?
                        YoungWinston
                        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
                        • 9. Re: Does using an IDE limit the learning experience?
                          811778
                          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 ;)
                          • 10. Re: Does using an IDE limit the learning experience?
                            800330
                            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.
                            • 11. Re: Does using an IDE limit the learning experience?
                              jwenting
                              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.
                              • 12. Re: Does using an IDE limit the learning experience?
                                791266
                                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.
                                • 13. Re: Does using an IDE limit the learning experience?
                                  800330
                                  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.
                                  • 14. Re: Does using an IDE limit the learning experience?
                                    jwenting
                                    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.
                                    1 2 Previous Next