tags:

views:

1573

answers:

10

I'm currently studying Computer Science at College where they mainly teach Java standard edition, I see that in the industry this isn't used much, instead J2EE is used. If my College is teaching me JSE rather than J2EE does this make me less employable?

And what exaclt are the differences? different syntax? different way of prgramming or what?

A: 

J2EE is just a superset of JSE (enterprise libraries such as servlets). Learn JSE and you mostly know J2EE.

Joshua
+1  A: 

The Java language by itself is one aspect of Java development. Applications built with the standard edition fulfill certain needs. Thinking that you can just "wing it" with the enterprise edition if all you know is the standard edition, is a misconception. The libraries make the language. Although certain aspects of JEE have their (deserved) critics, there is still a great deal of functionality there. Even the questionable parts are still used heavily in the industry.

David M. Karr
+5  A: 

JSE contains the standard Java libraries: all the basics, containers, network, GUI, and so on. It's meant mostly for desktop apps and browser applets.

J2EE adds a server framework. When you talk about Java in the server, this is what you're referring to. It's a huge library, with lots and lots of pre-established 'best practices'. Back when JITs were still young, the heavily scalable design of J2EE made it very well-received in the server, besides the (then significant) overhead of JVM.

I haven't really used J2EE in anything serious; but I think it's better to learn JSE first, and then J2EE. It takes more time; but lets you better understand what is the language and what is the framework.

Javier
+2  A: 

in my opinion, university is really meant to teach you to be strong on the fundamentals and concepts not necessarily to teach you the exact skills you will need in a job. So most of all I would recommend that you make sure you're learning the concepts found in enterprise application requirements (e.g. transactions, messaging queues/topics, etc...) However, if this is really a concern for you I would suggest doing a self-study (possibly for course credit). Also, try to find an internship that will let you play in some Java EE code.

i was asking myself the same question when i was nearing the end of university. i'm now working in a J2EE environment and there was some learning curve to use the J2EE libraries. i have to agree with many others and say that doing enterprise java development is not very much fun compared to other projects i've worked on so you might want to keep having fun in university and put off the boring stuff for when you're part of the workforce.

hydeph
+5  A: 

For all intentional purposes, Java and JSE are the same thing. When you say you are learning JSE, it means you are learning Java, its syntax, features and standard libraries. You cannot learn JEE before learning these skills.

JEE is a set of standards which define many different interfaces and features for building software to address enterprise level problems. These include things like transactions, distributed computing, messaging, web applications and resource management. All of which are provided in a managed environment. All of which is coded to the Java language, with particular rules and characteristics due to the environment in which the software will run.

Think of learning JSE as learning to drive a car. JEE is like learning to drive an 18 wheeler, you don't need to know how to do it to get from A to B, but it sure helps if you have to take 10 tons of good with you 8-)

Robin
I see it this way: "JSE" and "J2EE" are both "Java" if (a) you're a recruitment agency, or (b) you've been dealing with them for too long...
Neil Coffey
A: 

This is how I view it.

The programming language as you know it is called Java.

Like most other programming languages, it also comes bundled with many standard libraries.

JSE (J2SE) is the combination of both the language and certain libraries that makes general application development possible.

J2EE is another set of libraries that you can use in combination with J2SE to also develop enterprise/web applications.

Jin Kim
+1  A: 

From Wikipedia:

The Java platform (Enterprise Edition) differs from the Java Standard Edition Platform (Java SE) in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier Java software, based largely on modular components running on an application server.

The syntax is the same. Everything you learn pertaining to Java SE will apply to Java EE. It simply adds a pile of new APIs, and calls for a certain style of application design that is well-suited to specific types of problems. Those kinds of problems (large, fault-tolerant, distributed, scalable, multi-tier...) and how to solve them are really what JEE is about, not the actual APIs that happen to be part of the specification.

Remember that a CS degree isn't a vocational degree. It is meant to teach you how to learn and think, not train you in a specific skill-set tailored for a certain industry niche.

Adam Jaskiewicz
A: 

I think you are misunderstanding the relation of JSE (or "Core Java) and J2EE.

Core Java is important to learn and is what most schools will teach you.

Since programming revolves around using wheels rather than reinventing them, there are usually libraries with code for accomplishing complex tasks.

For examples, some schools teach people to build GUIs using the AWT or Swing class library that are supplied with Java, although there are other options.

J2EE, while supported by extra software to run the program on servers, can be thought of more as a library of classes and related services. You still do Java constantly, you just use a popular and Sun supported library. You will also see Hibernate and Spring that are not part of J2EE.

Most places will first of all want to make sure that your Java is solid. As you start working, you will gain experience at using specific parts of J2EE.

Uri
+2  A: 

If my College is teaching me JSE rather than J2EE does this make me less employable?

No. That's what your university should do: focus on fundamentals. In the case of Java, that mostly means the standard edition.

Java EE (not J2EE; see my comment in the question) adds some server-side Java APIs, specifications and libraries. The most important of these are the Servlet API and JSP container specification. But I think it's important to know that even on the server side, it's still mostly about standard Java! It's quite possible that you'll do server-side Java development without ever needing to learn most Java EE technologies, like Enterprise Java Beans (EJB) - especially with the rise of alternative, lightweight approaches such as favouring POJOs, with Hibernate for persistence layer. Many parts of Java EE like EJB have definitely long passed the peak of their hype cycle. You may not even need to know all "lower-level" Servlet and JSP stuff thoroughly, as higher-level frameworks such as Struts, JSF, or Wicket have become popular.

One case study: I learned fundamentals of Java (and OO programming) at the university - and only very little (and nothing practical) about the Enterprise Edition. Now I've worked some 4-5 as "Java EE developer", that is, doing server side Java. I've never really used EJB, or most other Java EE technologies. I've mostly done just pure Java (i.e. standard edition), with some JSP, Servlets, Filters, etc related stuff thrown in (plus of course web techniques like HTML, JS, CSS); making use of lots of (mostly open-source) 3rd party libraries, and picking up everything as needed. (However, I am planning to brush up my knowledge of Java EE, and take the SCWCD at some point - I think that would do me good even if JSE goes a long way :)

Jonik