View Single Post
  #1 (permalink)  
Old 10-13-2008, 07:18 PM
mwildam's Avatar
mwildam mwildam is offline
Member
 
Join Date: Aug 2007
Posts: 65
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.
Reply With Quote
Sponsored Links