Java Forums

Main Menu
Home
Today's Posts
FAQ
Search
Contact Us

Java Network
Linux Archive
Java Tips
Java Tips Blog

Sponsored Links





Welcome to the Java Forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community, you will:

  • have access to post topics
  • communicate privately with other members (PM)
  • not see advertisements between posts
  • have the possibility to earn one of our surprises if you are an active member
  • access many other special features that will be introduced later.

Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact us.

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 10-13-2008, 07:18 PM
mwildam's Avatar
Member
 
Join Date: Aug 2007
Posts: 64
mwildam is on a distinguished road
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.
Bookmark Post in Technorati
Reply With Quote
Sponsored Links
  #2 (permalink)  
Old 10-13-2008, 07:33 PM
mwildam's Avatar
Member
 
Join Date: Aug 2007
Posts: 64
mwildam is on a distinguished road
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.
Bookmark Post in Technorati
Reply With Quote
  #3 (permalink)  
Old 10-13-2008, 08:18 PM
Senior Member
 
Join Date: Jun 2008
Posts: 468
masijade is on a distinguished road
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 08:21 PM.
Bookmark Post in Technorati
Reply With Quote
  #4 (permalink)  
Old 10-13-2008, 08:41 PM
mwildam's Avatar
Member
 
Join Date: Aug 2007
Posts: 64
mwildam is on a distinguished road
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.
Bookmark Post in Technorati
Reply With Quote
  #5 (permalink)  
Old 10-17-2008, 02:36 AM
Member
 
Join Date: Oct 2008
Posts: 3
vince425 is on a distinguished road
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.
Bookmark Post in Technorati
Reply With Quote
  #6 (permalink)  
Old 10-17-2008, 03:55 AM
Senior Member
 
Join Date: Sep 2008
Posts: 104
emceenugget is on a distinguished road
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.
Bookmark Post in Technorati
Reply With Quote
  #7 (permalink)  
Old 10-17-2008, 06:03 AM
fishtoprecords's Avatar
Senior Member
 
Join Date: Jun 2008
Posts: 475
fishtoprecords is on a distinguished road
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.
Bookmark Post in Technorati
Reply With Quote
  #8 (permalink)  
Old 10-17-2008, 06:31 AM
Norm's Avatar
Senior Member
 
Join Date: Jun 2008
Location: Heredia, Costa Rica
Posts: 2,223
Norm is on a distinguished road
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.
Bookmark Post in Technorati
Reply With Quote
  #9 (permalink)  
Old 10-17-2008, 11:10 AM
mwildam's Avatar
Member
 
Join Date: Aug 2007
Posts: 64
mwildam is on a distinguished road
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.
Bookmark Post in Technorati
Reply With Quote
  #10 (permalink)  
Old 10-17-2008, 11:29 AM
Senior Member
 
Join Date: Jun 2008
Posts: 468
masijade is on a distinguished road
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.
Bookmark Post in Technorati
Reply With Quote
  #11 (permalink)  
Old 10-17-2008, 11:34 AM
Senior Member
 
Join Date: Sep 2008
Posts: 230
Darryl.Burke is on a distinguished road
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
Bookmark Post in Technorati
Reply With Quote
  #12 (permalink)  
Old 10-17-2008, 12:34 PM
mwildam's Avatar
Member
 
Join Date: Aug 2007
Posts: 64
mwildam is on a distinguished road
[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.
Bookmark Post in Technorati
Reply With Quote
  #13 (permalink)  
Old 10-17-2008, 01:04 PM
Member
 
Join Date: Oct 2008
Posts: 16
soc86 is on a distinguished road
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");


}
}
Bookmark Post in Technorati
Reply With Quote
  #14 (permalink)  
Old 10-17-2008, 01:09 PM
mwildam's Avatar
Member
 
Join Date: Aug 2007
Posts: 64
mwildam is on a distinguished road
Can you please create a new topic for this.
__________________
Greetings, Martin Wildam.
Bookmark Post in Technorati
Reply With Quote
Sponsored Links
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to begin with learning to develope in JAVA Triji New To Java 1 08-11-2008 04:25 PM
How to draw Curve using QuadCurve2D Java Tip java.awt 0 06-24-2008 01:20 AM
How to Draw Curve with mouse Java Tip java.awt 0 06-24-2008 01:20 AM
Java Machine Learning Library 0.0.12 JavaBean Java Announcements 0 10-20-2007 07:56 PM
How to start learning Java hiranya New To Java 2 06-28-2007 04:55 PM


All times are GMT +3. The time now is 08:15 PM.


VBulletin, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2006 - 2007, www.java-forums.org