Results 1 to 14 of 14
  1. #1
    mwildam's Avatar
    mwildam is offline Member
    Join Date
    Aug 2007
    Posts
    72
    Rep Power
    0

    Default Java Learning Curve

    Continued from the thread: What are you using to write your code? - we are discussing the best way to learn Java. The basic question is whether to use an IDE or text editor and compiler to understand the things in the deep:

    Quote Originally Posted by masijade View Post
    Okay, one more time around.

    I wasn't talking about code errors, though. I was talking about someone having made a mistake modifying the class path when adding a new library (either forgetting about it or, sometimes even, the order), or that the packaging has gone wrong (which also happens and can be notoriously hard to find if you simply entrust it to your tools without knowing what it should be doing behind the scenes, especially when RMI comes into play, and the like), and those types of errors. The structural things. And, since those structural things are either built (in the case of the packaging), or even worse, only described, by the development department (through the Quality Assurance department, if your company is smart even to have one), those things are the developers responsibility, he needs to know them inside and out.
    I completely agree with you - although I didn't have such experiences now in Java (I am too new to Java for such experiences) but I can imagine, that there are several problems that need deep knowhow in what is going on "behind the scenes" (or what should go on behind the scenes ;) ).

    Similar issues are for instance if developers do program for windows 2000/XP and do hardcode the path "C:\Documents and Settings\" or "C:\Program Files" which then runs only on english OS. - So they should know more about the system and read those paths from the registry for instance.

    I really do not want to avoid understanding all those basics. The problem for me is that learning Java I read so many new abbrevations, rules, concepts, libraries etc. that I clearly cannot deal with everything at the same time. So I have to get to it step by step. And here I prefer (in some cases) the top-down when learning. Ant is a good example here: Why do I have to learn the ant at the same time when learning java? - Why not using a tool at the beginner level that will do it right yet. There will come the time when I have some special desire that will make me dig into Ant. But again, I cannot learn everything at the same time. The same applies for knowing the libraries and methods by heart.

    Quote Originally Posted by masijade View Post
    Well, large pieces of software also have multiple people working on the same "component". That component is broken down into modules, to be sure, but they are all closely tied enough that they at least must be the same language. But, regardless of those points, managers do decide, many times.
    As I already mentioned, this is something I am very happy about that in our company it is not this way - components are more separated and there are not working many programmers on the same component (not more than two as far as I know).

    Quote Originally Posted by masijade View Post
    I don't find the learning curve flat, however. Like I said, I don't believe you cut that much time out of the process using an IDE. While learning, what is to be used is usually pretty narrowly defined, so there isn't a lot of searching in the docs so it is only a few extra seconds per "need" (and you naturally aquire the habit of reading the docs, first), and it takes a little extra time learning how to use the classpath, jar, javac, and java commands themselves (but that little bit of extra time brings a whole lot of understanding along with it).
    Here I do completely disagree - IDE helps a very lot. Either if you know the class names and methods by heart. Sample: Fixing the imports - with this feature when using a new class the needed import is added to the beginning of the class code. In Notepad I would have to scroll up to the beginning and then find the line again where I stopped coding. Very annoying.

    Another sample: Simply less characters to type with the autocomplete feature. This even helps the advanced developer.

    Another sample: Building GUI - When doing purely in code, how many attempts to run and look if it is ok would it need?

    Another sample: Coming from VB I very often forget the semicolon at the end of a statement. I know it from the eightees when learning different programming languages at the same time that it can be very annoying starting compilation and then get those syntax errors. With the IDE I will fix these errors without all the manual failing attempts to compile.

    Quote Originally Posted by masijade View Post
    I agree, that the extraneous tools (like ant and the varying plugins) can be learned on the side (but they should be learned), but those tools vary from IDE to IDE (if they exist for the IDE at all), and so must wait until you start learning the IDE anyway (otherwise the learning curve really would be flat). But the thing is, you shouldn't need to learn the IDE. If you know all of the Java basics (and I am not talking any kind of enterprise stuff here, all that comes later) all you need do is explore the IDE. There should be no real "learning" involved.
    Here you are right - using an IDE you need to learn not only Java but also the IDE that is correct and learning the IDE also takes several days - no doubt about that. But I think regarding the IDE it is worth investing additional time here in learning it because it saves you from a lot of annoyances while learning Java then.
    Greetings, Martin Wildam.

  2. #2
    mwildam's Avatar
    mwildam is offline Member
    Join Date
    Aug 2007
    Posts
    72
    Rep Power
    0

    Default

    One of my biggest problems learning Java: I never heard so many new words and abbrevations before when learning a new programming language (and I learned a lot). So often when reading an article I have to google or wikipedia at least two words to know what that article is about.

    As I started looking at web development, a few samples here: Spring, Hibernate, JSF, MyFaces, JVM, JavaFX, ...
    Greetings, Martin Wildam.

  3. #3
    masijade is offline Senior Member
    Join Date
    Jun 2008
    Posts
    2,571
    Rep Power
    9

    Default

    That I think, is part of the problem (either in our misunderstanding or your learning, if you immediately started with this). I have no problem, what-so-ever with learning all of the extraneous stuff while on the IDE. I am speaking of core Java, and the basic command line tools (those are all you ever really need, anyway, everything is possible with those alone). Bye core Java I mean the lang and basic parts of some of the other packages (i.e. io, util, not nio or anything javax). Once you are past this, and have a grasp of the working "structural" parts of the language, by all means, advance to an IDE.

    If you started out by immediately attempting to learn all these frameworks and the like, then, IMHO, you were led astray. Either by yourself, or by someone who advised you. Once you have a good grasp of the basics, and the command tools (as outlined above), the rest of this comes (well I won't say easy, but you get the picture).
    Last edited by masijade; 10-13-2008 at 06:21 PM.

  4. #4
    mwildam's Avatar
    mwildam is offline Member
    Join Date
    Aug 2007
    Posts
    72
    Rep Power
    0

    Default

    Quote Originally Posted by masijade View Post
    If you started out by immediately attempting to learn all these frameworks and the like, then, IMHO, you were led astray.
    No, I didn't start immediately with all those frameworks. But apart from that I do not know all the libraries and methods by heart. I have to often scroll a little through the available methods of an object to find the matching one.

    And then there are the typos. So the IDE helps me a lot immediately popping up with the javadoc and marking lines with syntax errors. I don't think, that I should rather try it "by hand" manually. After some hello world tests I think I understood the most important basics. After the initial first steps I think it is already worth using an IDE when trying to write your first samples from books etc.

    Quote Originally Posted by masijade View Post
    Once you have a good grasp of the basics [...] the rest of this comes (well I won't say easy, but you get the picture).
    Maybe I do not have very much patience. I am used to being more productive - but this is also because with the years I have created my own libraries and now everything was just putting existing things together. Now - new on Java - a lot of things start at zero. This is not easy to accept for me.
    Greetings, Martin Wildam.

  5. #5
    vince425 is offline Member
    Join Date
    Oct 2008
    Posts
    3
    Rep Power
    0

    Default Hello!!!

    Hi to all! :)

    Im new to this site.
    I want to learn java... I ran into some problems in my code.
    I copying the code from the book I just bought.everything seems to be correctly copied so far.
    but I keep on having an " Illegal start of statement " .

    don't know how to resolve this? can someone help me?

    I'll post the complete code next time.

  6. #6
    emceenugget is offline Senior Member
    Join Date
    Sep 2008
    Posts
    564
    Rep Power
    6

    Default

    I feel that a big part of my experience with Java was learning how to properly use packages and libraries, which I don't get the same sense of concentration when using Eclipse.

    I also feel that using Eclipse makes me lazier and more prone to trying to program a solution all the way through, instead of doing one method at a time, as it looks (at least to Eclipse) to be correct, though the functionality may not be.

  7. #7
    fishtoprecords's Avatar
    fishtoprecords is offline Senior Member
    Join Date
    Jun 2008
    Posts
    571
    Rep Power
    7

    Default to IDE or not to IDE, that is the question

    I know a lot of folks here say use a simple editor and run javac from the shell, rather than using an IDE to learn java. I disagree.

    Or at least, while I respect that opinion, my opinion is that an IDE automates a lot of cruft that can get in the way of learning.

    Libraries are nearly transparent, with Netbeans just click on "fix imports" and you are done.

    But the fact is that programming is hard, and doing it well takes skills. The only way to get the skills is to practice.

    So get to the woodshed and get to work.

  8. #8
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,305
    Rep Power
    25

    Default

    It's not either/or, its when. Too early and the student won't learn the basics because the IDE does it all. Using a tool can make you a cripple, unable to function without it.
    Another OFs opinion.

  9. #9
    mwildam's Avatar
    mwildam is offline Member
    Join Date
    Aug 2007
    Posts
    72
    Rep Power
    0

    Default

    Quote Originally Posted by Norm View Post
    It's not either/or, its when. Too early and the student won't learn the basics because the IDE does it all. Using a tool can make you a cripple, unable to function without it.
    Another OFs opinion.
    Basically if I have tried it once by hand - and understood it - then you are done with understanding those basics.

    Myself I already forgot how to specify particular commandline parameters of the java compiler and here I can also understand the notepad-freaks, but: If it is done for me by the IDE, so who cares?
    Greetings, Martin Wildam.

  10. #10
    masijade is offline Senior Member
    Join Date
    Jun 2008
    Posts
    2,571
    Rep Power
    9

    Default

    Quote Originally Posted by mwildam View Post
    Basically if I have tried it once by hand - and understood it - then you are done with understanding those basics.

    Myself I already forgot how to specify particular commandline parameters of the java compiler and here I can also understand the notepad-freaks, but: If it is done for me by the IDE, so who cares?
    You don't need to necessarily remember what all the commandline options are, as long as you know where to look to find them, and understand that commandline options are being used, and for what.

    If any thing happens that you don't have the IDE in that moment (for whatever reason and it is not nearly as far-fetched as you might think) you will need to be able to use those command line options. And those that start with an IDE, or haven't ever actually used any of those commandline options but only did a very simple and straight forward compile from the commandline, don't know/understand them, and so are lost.

    I.E. They must run something from the command line (or out of a script, as, eventually things move into production and so are not run out of an IDE) and the app needs more than the standard 64mb heap space. The developer has always simply set the option in the IDE and has never had to do this from the commandline, but now that is not applicable. He has no idea that this even can be changed from the command line, or how to do it, all he has ever run from the commandline was his first helloworld. A large chunk of the "productivity" that he initially gained by immediately using an IDE, he loses now.

  11. #11
    DarrylBurke's Avatar
    DarrylBurke is offline Member
    Join Date
    Sep 2008
    Location
    Madgaon, Goa, India
    Posts
    11,188
    Rep Power
    19

    Default

    Different strokes for different folks.

    When I started Java about 15 months ago, I had only the vaguest idea about OOP but nearly 20 years on and off experience in programming in a wide variety of disparate languages. I don't think I would have had the patience to go through the tutorials one by one, and I don't think it would have speeded up my learning process.

    I was attracted to Java as the only easily available platform for me to make some small applications for my mobile phone. So I scouted around, got me a free NetBeans CD, and got started.

    Initially, even the API didn't make much sense. In my first few MIDlets, I allowed NetBeans to "implement all abstract methods" and only after that googled to know something about the MIDlet life cycle and what should go in those methods. And it was a few months before I even learned what makes a method abstract, and why it has to be implemented.

    While such features may jump-start a seasoned (if amateur) programmer, I feel they could hinder the learning required to build a proper foundation of knowledge and understanding needed for a serious student who is looking ahead to a lifetime of professional development.

    So my view would be: If you're young, learning Java as a first programming language (or among the first half-dozen, really) a few months of sticking with a decent code editor, one that provides syntax highlighting and indentation, wouldn't hurt. Getting familiar with the command line can serve in other ways not related to Java.

    On the other hand, if you have decent experience in developing in more than one language, are familiar with programming idioms like control flow and variable scope, starting rightaway with an IDE can actually help you to learn the nuances of Java that didn't apply to the languages you worked in earlier.

    Just my 0.02 (ok in terms of bulk 0.04 ;))

    db

  12. #12
    mwildam's Avatar
    mwildam is offline Member
    Join Date
    Aug 2007
    Posts
    72
    Rep Power
    0

    Default

    [QUOTE=masijade;39195]If any thing happens that you don't have the IDE in that moment (for whatever reason and it is not nearly as far-fetched as you might think) you will need to be able to use those command line options./QUOTE]
    Maybe that is the point I am missing in my thoughts. As I didn't debug or compile my projects at customer productive system I am always assuming to have the IDE at hand.
    Greetings, Martin Wildam.

  13. #13
    soc86 is offline Member
    Join Date
    Oct 2008
    Posts
    39
    Rep Power
    0

    Default

    Hi all, im new to Java and would like to know how to add color to text, please help?

    public class greetingApp extends JApplet {

    public static void main(String args[]) {

    System.out.println("Hi Peter" foreground.color.blue);
    System.out.println("from Stuart to Peter");
    System.out.println(" University");


    }
    }

  14. #14
    mwildam's Avatar
    mwildam is offline Member
    Join Date
    Aug 2007
    Posts
    72
    Rep Power
    0

    Default

    Can you please create a new topic for this.
    Greetings, Martin Wildam.

Similar Threads

  1. How to start learning Java
    By hiranya in forum New To Java
    Replies: 12
    Last Post: 01-13-2014, 09:47 AM
  2. how to begin with learning to develope in JAVA
    By Triji in forum New To Java
    Replies: 1
    Last Post: 08-11-2008, 02:25 PM
  3. How to draw Curve using QuadCurve2D
    By Java Tip in forum java.awt
    Replies: 0
    Last Post: 06-23-2008, 11:20 PM
  4. How to Draw Curve with mouse
    By Java Tip in forum java.awt
    Replies: 0
    Last Post: 06-23-2008, 11:20 PM
  5. Java Machine Learning Library 0.0.12
    By JavaBean in forum Java Software
    Replies: 0
    Last Post: 10-20-2007, 05:56 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •