I'll post this here, since it's related to Java but not about Java games only.

So here's the thing. I've been recently labeled as a real Java developer (meh.. just got my degree, but nvm).I've been looking at the jobs and I seriously cannot pinpoint what the recruiters are looking for, if not EVERYTHING in a single person.

So, like, unless I actually start to learn all of them, while probably starving and then die in the process, I'm just clueless about what to "learn" to be able to at least get a beginner job? Sure, I sort of know how are working all the previous things mentionned, but I seriously doubt that "I know this", will work instead of a "I worked in this for X year". Being 29 doesn't help either.

Ok, first thing to keep in mind: virtually every single java req you see is for server side development,and usually some sort of web backend at that. This forum is, shall we say, a niche catering to hobbyists. If you want to get your finger on the pulse of industry standards, head over to theserverside.com or infoq.com and prepare for a deluge of buzzwords.

Now the first question you should ask yourself is "do I want to write business type apps?" For most people possessed of a soul, the answer is "hell no", but if it does turn you on because you have ostentatious lifestyle demands like food and shelter, read on. I'm typing this on a tablet running low on battery, so I'm going to get more to the point and and just lob out some observations:

Struts is big in demand for two reasons: One, it's been around forever so there are a lot of web interfaces that use it. Two, it pays a hefty sum because there is a constant need to replace those struts developers who have slit their wrists or were committed to mental asylums. Seriously, struts is nasty, making you write some three to five XML configs for every single page. Struts2 with Tiles isn't so terrible, but it's still deeply unsexy.

JavaEE (it hasn't been J2EE for some 6 years now so be damn sure to look askance at reqs that still use the term) is actually a wide open field that includes all kinds of technologies, some of which are actually pretty cool now and not at all "enterprisey" in their current incarnations (and yes, some that are still very much so). Just google for "JavaEE tutorial" for the official oracle version, and READ IT. This is the foundation of everything you must know for server side java jobs.

Actually, I'm going to leave off there, the EE tutorial should occupy your attention for a while. Work through servlets and JSF and JPA and you're good for a good chunk of experience right there.

Java certs are a WASTE OF YOUR TIME AND MONEY. Just read the tutorials. Certs are for meeting contract requirements that specify that X% of contractors must have Y cert. If your employer pays for your cert, get it, otherwise forget it.

Oh yes, spring is another foundation technology to learn, but it's falling out of favor lately. I would still recommend learning some of it, but better to learn Guice and the CDI stuff in JavaEE.

Wow, that was quite the answer sproingie (you don't like "business app" I got that)

But more seriously, I actually know all of the above mentionned (Java + STRUTS & cie) mainly because I learned them as part of my last degree - Not really a cert but I wonder now if your "certs" work the same as ours (France), I'll have to check this. Here I went this way mainly because I wanted to do it first, and also for the "Bac+X" status, really important to get a job in France. [size=7pt]( .. and it sounded like a good idea at the time since I got the Webdesigner one too :/ )[/size]

Sure, I've been working on (hobbyist) games a lot, but it's pretty safe to assume that I won't get any job in France without the mentionned [X years of experience + under 25 year old] especially in the video game industry. In any case I just need to get experience first, though I don't really plan to stay too long in business apps minds you.

I was just surprised at all the requierements. It makes me wonder how are you supposed to get experience if no one hire you first. It's kind of funny in a sad way.

It's not as fun as hobby game programming, no. Never will be. But it's not so soul-suckingly "enterprisey" as server-side java dev used to be back in the old days. Nowadays, you can write your app using JAX-RS or something even cooler like the Play! framework and never touch anything even like a JSP page, leaving it to client-side devs who have their own shiny JS frameworks where jquery is just the beginning of their fun. And you can do all of it with annotations and never have to touch XML configs, or if you do, they might be a few lines of YAML. To say nothing of being able to start projects in Groovy, JRuby, or Scala and actually be taken seriously.

I was just surprised at all the requierements. It makes me wonder how are you supposed to get experience if no one hire you first. It's kind of funny in a sad way.

Then make your own experience, like maintaining a quite big project (app/game). Then you can say "I am developer of XXX" when it's quite already popular. Not all of them require formal work experience.

Haha. It made me laugh how you're talking about JSP pages.To be honest I was wondering a lot : "Just why the hell are we doing it that way?" most of the time. We lost a good month coding in Strut1, only to be told after : "Huho, don't forget to switch to SPRING-MVC, it's actually more used", when I was already checking JQuery on internet.Anyway, lots of industries are still working in the dino era let us say, and trust me they don't want to have anything to do with updates and stuff, as long as "the thing is just working fine". (....... ok, i'm being a bit sarcastic, but it's not that far from the truth)

Then make your own experience, like maintaining a quite big project (app/game). Then you can say "I am developer of XXX" when it's quite already popular. Not all of them require formal work experience.

I wish I could do that, but working on a "big project" would mean, since i'm working alone, lots of time. As I said, I'm already 29 and with no (programming) experience. Trust me, it's bad here (I mean, real bad). Unlike the US working on your stuff doesn't have that much value here, unless you're younger OR your project is indeed a facebook big one. (No, this time I'm not sarcastic)

We lost a good month coding in Strut1, only to be told after : "Huho, don't forget to switch to SPRING-MVC, it's actually more used"

Going back to my wrist-slitting imagery, that's like someone telling you it'd be more effective to off yourself with a shotgun. Spring MVC is one of the pieces of spring you can skip unless you're into maintaining legacy code for the rest of your life.

And none of this is relevant for game programming, if you're talking about the client side of game programming anyway. Learn LWJGL, learn jMonkeyEngine perhaps, learn the threerings.com libraries, study the puppygames ROTT code to see what battle-tested desktop game code looks like in java. The kind of code you see for server apps, the kind 99% of employers are looking for, is basically irrelevant to gaming. As for server side apps, like a MMO, I suppose there's RedDwarf (successor to Project Darkstar) but I've never heard of a real-world deployment of it. I'd say there really isn't much to draw on there, only general principles of system architecture that aren't related to any one language or platform.

My main purpose for being here is the Java game developpement too don't worry. Since it's a Java oriented community I thought it would be a good idea to ask for rage tips in here, never expected that side of Java to be THAT hated though.

Oh, I don't hate java server side dev, I do it for a living, and I actually rather like it, with some qualifications; namely that I get to do it with the toolkits that *I* choose that make the job easier. When you're the only Java guy on the team and you write one-developer apps, you're the lead architect. Being in that position means I got to try out all kinds of cool techs like Seam, Camel, Akka, Dropwizard, Scalatra, and so on. There's a huge variety to choose from in the server-side space, and I make it a habit to try something new and interesting at least once a year.

I don't have any certificates at all and I have no problem getting high end Java contracting jobs when I need them. I do have many years of experience though. I guess certificates might help you get your foot in the door if you don't have that by giving you something another candidates doesn't have.

As for the rest just remember to start small. Look for jobs advertising for graduates as they will be expecting to get bright people with limited experience and then train them up. Some people do it so they can get people without bad ideas and train them the right way and look after them. Some do it so they can feed bright people peanuts for a year or two until they get experience and move on.

Either way you win - you are getting experience, you have that vital first year or two under your belt. If you are in somewhere that looks after you then appreciate it and work with them, if not then stick it out long enough to get a few of those acronyms covered and a year or two of experience and then look to move on up.

And just remember technology changes all the time so a new acronym will always be joining the jumble.

Getting your first paying gig is the hardest. I did it through an internship program at my university. In the worst case it may require volunteering or very low pay.

After that, the networking counts.

The Java web stack isn't as bad as some people make it sound like. In my opinion, what matters more is that you find a development shop where people are passionate about programming. You could be using the coolest technologies but if the executive view development as a cost-center then life is pretty much going to suck.

I have worked as an engineer (-researcher) in computer science for 5 years and I have never used J2EE yet. I don't need certifications. Java is popular is France but the economic situation is not very good, there are less job offers than 3 years ago. I had no difficulty to find my first job. The current one is the third one.

study the puppygames ROTT code to see what battle-tested desktop game code looks like in java

Just like to point out that while he did release that code its by no means meant to be understandable for others... its a mess =D

Be aware that my code is allegedly extremely neat and tidy and understandable compared to most of the rest of the games industry as well...

Way to keep my hopes up.But it is true, I don't understand other game codes either, but most of them are C++ anywayMinecraft is also an unholy mess.

Whenever I go through a code like this, its always like, ok, ok, where does it happen, where is the actual code, all I'm seeing is abstractions, where are the actual linesand if there are like 37456548 classes... yeah

By design, game code is probably not very nice code and has a lot of ugly hacks

Most important for the Java business application side:- Spring- one web framework, JSF more likely than Struts, anyway the basic understanding of information flow and rendering is most important- Hibernate and/or EJB- solid knowledge of databases and SQL- ability to suffer

Lethal Running - a RPG about a deadly game show held in a futuristic dysoptian society.

As certs go, hardly anyone needs a cert individually, it's the contracting company itself that markets its people as being x% certified, usually bidding for contracts that require everyone to be certified if they're to bill any hours on the project. I've never seen bid requirements like that for Java certs, but it's pretty common for other software stacks like Oracle or SAP for instance.

If you're lucky, the req is written by the hiring manager who actually knows something about the job ... unfortunately, what happens a lot with contract hiring is a game of "telephone" where a recruiter basically collects every skill they've ever heard the employer talk about, then throw it onto their own req in order to cast a wide net and throw lots of CVs at the employer. Companies doing the hiring hate this kind of recruiter even more than you do.

Perl DB programming is a thing, it's called DBI, and I guess was a thing a while ago when people were still doing major sites in perl. Still pretty good experience to have for any DB work. Did you seriously see someone asking for FrontPage within the last decade?

I think it was phrased in such a way that meant "Designing a database using Perl as a programming language." It was not interfacing to something written in another language; at least not based on a literal interpretation of what they wrote. I have seen a lot of "experience in X using Y" with Y being a scripting language not suited for that type of development. Including Javascript (before the creepy-browser-API-to-everything gold rush), ActionScript (2), and PHP.

I've seen people asking for FrontPage experience as recently as late 2011. I would not be surprised if people still ask for it, but I haven't looked at those types of notices other than one last Spring requesting that people know how to program HTML and Excel (but not FrontPage).

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org