Besides programming languages, what are the industry standard tools that every entry-level programmer should be familiar with when implementing Java, XML, HTML, and XHTML ? Are there three IDE's that every Java programmer should be familiar with? For instance, programmers that I admire often praise Codewarrior as well as JBuilder and JavaCafe. Outside of IDE's, there are probably many kinds of tools that I don't even know about. How important are things like CVS and UML?
[This message has been edited by Paul Puodziukas (edited November 14, 2001).]
i've been in the business a little over a year and it amazes me how people don't like to share information. it seems everyone has to learn the hard way. short answer: textpad nedit jcreator cvs most IDEs are crap and a waste of time. stick close to your code, don't depend on code generators. you want to code ejbs, learn ejb and code it, don't hope a tool will do it for you. my shop allows us to use whatever editor we want and whatever os we want. some use jbuilder 4 free version. they waste tons of time configuring it/trying to find out what is wrong with it/waiting for it to start up. the truly good coders don't use jbuilder/VAJ as a crutch. textpad is good for everything and lets you make custom file types and set syntax coloring for each. besides slowing you down, learning an ide is a waste of time because you will have to relearn it again when they come out with the next version. jbuilder 5 is out. go ahead and read the docs on it and all the cool things it can do for you over jbuilder4. do the same for jbuilder 6 when it comes out. i choose to instead spend my time learning the new java specs. sadly, i have to deal with this because my shop is converting from wl5.1 to wl6.1. Joy! it now has a web based admin console that i have to learn. guess i can throw out my wl5.1 6" worth of bea manuals. if you are working on any real project (meaning it is a team project) you will need source control to make sure you don't stomp on each others feet. try cvs, its free. uml is a diagram language, takes half a day to get the main points. you most likely are interested in process like RUP or eXtreme programming. by the way, i wonder how popular eXtreme programming would be if it was called something else like "revised software development process". i don't think we'd see many airhead recruiters or HR talk about it. just another buzz word for those idiots to throw around.
[This message has been edited by jim beam (edited November 18, 2001).]
I'd have to disagree that most IDE's are crap. I used to be an IDE bigot and only used vi/emacs editors. I find the method completion ability of this generation of IDEs to be invaluable. I no longer have to memorize the exact name of every method in the ever growing JDK as well as in my class library, sure I have an idea of the name but with JBuilder I can quickly find it in-line without looking at the docs. Plus, it cuts down on typos. Another great feature is the browse to definition capability. I can hop to a method/class definition with one click, even if it�s in another class. I almost forgot, most importantly the ability to step through and debug code - a MUST have. I have also used VisualCafe, Together J, and VisualAge. Having an understanding of one makes it fairly easy to jump to another. Although I do have a beef with VisualAge with its repository concept, you don't actually work with real source files and hence if the thing crashes you lose work. It shouldn't take you longer than a day to get the hang of these tools, and in the long run the efficiency benefit far outweighs the learning cost. As an aside, are they really worth a couple grand each per seat? I strongly agree with Jim that staying close to the code is key, so I do shy away from the code-gen features of these tools. Another great tool is Castor for Java object generation from an XML Schema. Though sometimes quirky, Castor is a hundred times better than implementing a code-gen tool that creates java data-store objects that know how to marshal themselves into an API. Our client code doesn't even get into xml, we simply fill up a Castor gen'd object and tell it to marshal to xml and ship it server-side. As far as SCM tools, I've used SCCS, PVCS, Visual Source Safe, and Starteam. All of these do the job, and once again if you know one, you can quickly pick up others. It's just a matter of learning what can bite you in each. These are very important on any project, even just a single person team - it gives you the ability to roll back changes. I remember the days right out of school we used white board SCM. "Hey, I forgot to write that file on the board, did you change it too? - Yep." What a mess! One word - UNIX. If you're a windows guy get CygWin and experiment with shell scripting or even just basic UNIX commands e.g. grep, awk. Another cool tool is WebCream, you can generate HTML-based front-ends from Swing/AWT front-ends. Not perfect, but easier than doing it from scratch. This gives away my GUI background. Although not a tool per say, Design Patterns are the most important Java development concept besides just plain coding. If you can code/implement complex design patterns, not just babble about them, you're on the right path.
[This message has been edited by Tighe Fagan (edited November 20, 2001).]
I disagree with Jim. Once you learn an IDE other IDEs and future versions will be almost identical. The new features you can choose to become familiar with or not. The plus is that there are always new features attending to developer needs and also a ton of sample code and tutorials. You don't have to be a die-hard and prove that you can code on textpad to be a good developer. BTW, Oracle is giving its IDE for free now. It is called JDeveloper and it's a basically JBuilder with some customized features for Oracle. --Carlisia
I first started programming Java using TextPad. I thought that would be the only way to go. Recently, I started working with VAJ, and I think it totally blows TextPad away, because in VAJ your code gets compiled when you save it, and your whole project is always compiled (except for code with errors) and anytime you make a code change that breaks something else (like another class) you see the broken code in the "Problems" view. VAJ also has a nice debugger. I can get a lot farther a lot faster with VAJ than with a simple editor and javac.
I have been working with vi for 2 years, no debugger only core analyzers. for the last year I've been working with VAJ. Let me tell you this simple formula IDE = productivity * 10; vi = productivity; what do you want to learn now... Nothing will ever beat a good IDE when you master it. If there is 1 thing that saves my back everyday, it's the use of a good IDE like VAJ (with all the nice debugging features). You spend 80% of your time debugging and testing code you write. With an IDE it's much less than that because bugs are easier to track. Skills are important but using the right tool properly will give you the edge you need. just my 2 cents.
Paul, Some companies will not spend for a new IDE, much less a new enterprise edition IDE. Other companies, have an IDE but will not upgrade at the moment. In all my job interviews, I don't remember being asked what IDE I use. Personally, in the last six months, I have been using notepad and JCreator. I enjoy the interior freedom of not being tied down to a non-free commercial ide. Although, if my company is willing to spend for an enterprise grade IDE -- I would vote for VAJ or Websphere. (That upgrade will not happen in my lifetime).