Time for a transition. I’ve been writing about education and I want to start addressing the challenges with starting programming on your own.
One of the issues with open source software is that it can be difficult to get your development environment defined and setup properly. You end up using a lot of mostly “refined” pieces of software (Apache, Eclipse, Java, Maven, Ant, etc…). They work wonderfully but they were originally designed by programmers, for programmers. Most Microsoft users don’t know what an environment variable is or how to add to their classpath but after using open source products you will know more about your operating system than you wanted.
Microsoft (.NET) does not have this problem. Because ASP.NET which includes VB.NET, C#.NET, and J#.NET is owned and controlled by Microsoft, you just buy Visual Studio and start developing. In fact Microsoft has taken the huge step, for them, of letting users download language specific versions of Visual Studio for free and SQL Server Express for free.
Free tools have always been one of open source software’s strengths, and a big reason for it’s growth. Some will argue that open source tools are better than the for-pay alternatives, but I don’t think that is always the case. Typically open source software would be a better offering than Microsoft’s stuff when it was introduced. But once Goliath noticed what was going on, it could crush it’s free competitor with distribution and bundling (See Netscape v. IE). Java was so much better than Microsoft’s offerings (C++ and VB) for so long that it was able to get a large user base before MS properly responded. Now Java and .NET are considered to be pretty equal in terms of power, functionality, etc.
Those of us that are going the Java route on our own without expert support through a class or Employer are left to weed through all of the options. Do you use Netbeans or Eclipse for your IDE? JBoss, Tomcat, Glassfish, or something else for your application server? I’ve gone back and forth through all of these options over the past year, and my choice typically revolves around what the tutorial uses.
However I think I’ve finally found an excellent guide, from an expert, for setting up a Java 5 Enterprise Edition (formerly J2EE) and getting started with programming. There was a course offered through Johns Hopkins for Spring Semester ’09 that has all of its materials available right now. Check out this link. The syllabus will help you get started. I’ve got my environment set up and I’ll be providing updates as I go along.