Fog Creek Software
Discussion Board




Need a new job, and new skills

I've been on a long term contract that will be ending in the near future, and I need to pick up some new skills to increase my employability.  Primary tool for the last several years has been Delphi, but there's no jobs for it around here any more.  I've used a little bit of SQL on the job, and a little bit of java & c++ back when I was in college. 

I spoke with a recruiter that said java would be the best thing to add, but I'm wondering about C#.NET.  I don't want to be penny-wise and pound foolish.  On the one hand, java is established in many businesses and many schools are using it to teach CS.  On the other hand, C#.NET is MS.  The recruiter also said it wouldn't hurt to brush up on my c++.

I've got about 3 months before I need to begin the search, which basket should I place my initial eggs?

sooner
Friday, May 09, 2003

If you're looking for best bang for your buck, there's definitely going to be more Java jobs available than C# jobs right now. Long term, choose C# if you want to be tied to Windows (because it's far better at Windows development than Java is), or Java if you don't. Simple as that. Both will offer employment far into the future.

Brad Wilson (dotnetguy.techieswithcats.com)
Friday, May 09, 2003

Although I'm a C# guy, if I were in your shoes I would probably lean more towards Java.

Just like Brad said, there are likely to be more Java jobs in the immediate future. However....I think the MS Marketing Juggernaut will accomplish it's goal of convincing corporate America that .NET is the wave of the future and I predict a pretty good increase in the demand for C# over the next few years.

Obviously, with Java you aren't limited to just a MS shop and it's easier to expand your skills into the Unix arena. Whereas with C#, you pretty much need to stick within the MS arena. (What I mean by that is that if you want to be an expert in C#, you probably will spend a lot of time in other MS technologies and not have much time left over to be an expert in areas involving Unix.)

Mark Hoffman
Friday, May 09, 2003

Java and C# are so close, that any employer who would not hire a C# programmer for a Java job or a Java programmer for a C# job is not the kind of place where you want to be working.

Joel Spolsky
Friday, May 09, 2003

You know that. I know that. Everyone with any sense knows that.

Now, how do we smack that into the heads of the pinheads in HR and the clueless phonedroids at the recruitment agencies?

Because they're the ones in the way.

Katie Lucas
Friday, May 09, 2003

Yes, Joel, but 90% of the information a programmer has to know is about the libraries, not about the language itself.

So, would you hire a Java programmer to write a Java program, or would hire a C# programmer, to learn the needed libraries in 1-2 months (at minimum), and then write the same Java program?

MS indeed has this attitude: they hire the smartest person, even if he/she doesn't know the required stuff, and then train him or her.

However, I don't know if most companies can afford this luxury.

Michael K.
Friday, May 09, 2003

Obviously, it would be better to hire somebody who is smart and knows the particular language and libraries over someboy who is smart but doesn't have the specific experience.

The problem is that many companies will leave a position open for months while they look for a perfect match of their laundry list of languages, or hire somebody DUMB who claims the specific experience.  With the time and money they spend searching for the perfect candidate, they could have hired somebody smart and brought them up to speed.

It's not a matter of whether they can afford to hire smart people and train them, but whether they can afford to continually refuse to hire people who don't have the perfect match of languages at the moment.

T. Norman
Friday, May 09, 2003

http://www.joelonsoftware.com/articles/LordPalmerston.html

I think he mentioned the same thing.  Its too bad, because whether its true or not (I think not), as Katie pointed out, HR and hiring managers think it to be true.  And the myth will certainly persist as long as engineers themselves buy into it.

The only way to swim upstream against that current is to have a substantial laundry list of results.  You can't argue with results.

Nat Ersoz
Friday, May 09, 2003

Sorry, my reply was to M.K.

Nat Ersoz
Friday, May 09, 2003

Well, I think we all agree that there's some pretty stupid HR departments out there.

Since the limited consensus seems to be java, is Forte the primary IDE?

sooner
Friday, May 09, 2003

Joel,

The syntax may be similiar, but just because someone is competent in C# in no way makes them competent in Java. It only means that they should be able to learn Java fairly quickly. And vice-versa.

So, unless a company is willing to shovel money down your throat while you ramp up on the specifics of a language, I don't see a company hiring a C# programmer for a Java project unless that programmer has a proven proficiency in Java.

Mark Hoffman
Friday, May 09, 2003

I'm going to go the opposite way and say you should brush up on your C++.  Then learn C# after you've landed a new gig.

Since you've been using Delphi, I assume you know Win32 to some extent.  Although Java syntax is easy to learn, the API is HUGE.  I think you'd have an easier time brushing up on C++ rather than learning all of Java.

later
Friday, May 09, 2003

If you're talking about generalpurpose ide, I don't know anyone using Forte.  There's Eclipse and JBuilder though, both of which can be obtained for free.  Don't forget to grab Java's sourcecode.  One friend really taught himself Java quick by using the "browse symbol" tool, looking at its sourcecode.  The source to Java's apis is really clean, at least the stuff I've read.

Learning the class libraries is dead simple if you head over to the bookstore and browse v1 and v1.2 of:
http://java.sun.com/docs/books/chanlee/

I don't see why it's so hard to learn Java's main api as a c# guy joining a bunch of java programmers, since you'll have lots of code to cut 'n paste.  It's only hard if you just have the javadocs and an o'reilly book to go by.  You don't need to memorize stuff, just have an awareness of capabilities and the ability to look stuff up.

Tj
Friday, May 09, 2003

I was a C++ fan before I started using Delphi, and there is no way I am ever going back. C# should be a pleasant transition from OP, and you'll find the .NET FCL very similar to the VCL, although more modern in some respects. I'd think about job satisfaction first. And I know that wouldn't happen for me with either C++ or Java.

Big B
Friday, May 09, 2003

You should brush on your networking skills.

The reality for many programmers is -- you get hired to work on stuff that you already know how to do.

Why would a recruiter be interested in submitting your resume to a client who is looking for a Java coder when there are ton of people out there who already have paid Java experience on their resume and are also looking for work?

Many companies seem to be holding back on starting new development projects and the people they do have on staff are probably doing lots of maintenance work. Perhaps you should target companies that are looking for help in this area? If you are lucky you might find several companies that need someone to not only maintain their Delphi applications but some of their Java or C++ applications as well.

One Programmer's Opinion
Friday, May 09, 2003

Jeez, OPO, you really got me depressed.

5 years of experience, a CS degree, and I'm already relegated to the trash heap...

I was actually going to see if I couldn't cram enough to sit for one of the certification tests, and then write a utility or two at my current job for the 'paid experience'.  Since I already have some (very limited) java experience, I feel with 3 months I could easily step in and work on a maintenance team.  I wouldn't want to architect an app from scratch though. 

The recruiter didn't say she would submit my resume, I just asked her what her clients were asking for.

sooner
Friday, May 09, 2003

Gotta agree with One Programmer's Opinion..

Give networking a higher priority, next comes building your skill set.

Prakash S
Friday, May 09, 2003

"The recruiter didn't say she would submit my resume, I just asked her what her clients were asking for. "

If she doesn't have any programmers with gobs of Java experiece, she might submit you. OTOH, I have some Java experience (about what you're trying to get) and the honest recruiters have said that there are so many experienced Java programmers who are looking for work that it's hard to get an interview if you don't have a lot of experience (of course you can substitute just about any other language/technology for Java and it'd still be a true statement).

RocketJeff
Friday, May 09, 2003

I agree that networking is very high priority, and I like to join groups anyway so I've been doing a fair share of networking.  But, I'm in a small city where there are NO Delphi jobs.  It's a small community, believe me, I know.  Hell, our Delphi user's group hasn't been active in 2 years.  I've gotta pick something.  Bad foresight on my part, I know.  Complaining doesn't solve my problem though.

sooner
Friday, May 09, 2003

It might be more accurate to say that there are tons of people who CLAIM experience in Java who are looking for work.  I don't think there are that many who have skills commensurate with their "years of experience" and who have a solid understanding of object-oriented design.

T. Norman
Friday, May 09, 2003

I know a few 'cruiters.  The reason they like certs so much is it provides a baseline.  The trick, endorsed by 'cruiters that are trying to pump up an app's resume, is to write a java app on the job, then claim that he has x years of experience in a shop where they used java and delphi.  Basically implying he has x years of experience with java.  Not a lie, but not quite the truth either.


Friday, May 09, 2003

T. Norman wrote, "It might be more accurate to say that there are tons of people who CLAIM experience in Java who are looking for work.  I don't think there are that many who have skills commensurate with their "years of experience" and who have a solid understanding of object-oriented design. "

I am not sure which post you were responding to, however, I will assume it was mine.

Whether or not your opinion is correct or not is pretty much irrelevant to what I was talking about. Most recruiters only care about what they can sell to a client. In most instances, when it comes to filling a Java software development position, a recruiter is going to choose someone with prior PAID Java work experience (even if they suck) over someone who only has prior PAID work experience with Delphi.

One Programmer's Opinion
Friday, May 09, 2003

Hi sooner

Whatever you decide to learn, it makes a lot of sense to start while you're still in a contract. Then on your resume you can put "2 yrs Delphi with some X", and use time between contracts to build up more X experience (for 'X' read Java or C# or whatever). To a recruiter, non-commercial experience doesn't seem to count so much.

You may find if you start learning X, your current client engages you for some extra work.

Regarding language choice, I'm in a similar situation. I know Pascal, Delphi, C and the Win32 API quite well, and that's about it. What's next? Java has a sort of 'fin-de-siecle' fading .com burnout feel to me. So probably C#, since this fits in best with Windows. Although at the moment I can't even install the stupid .NET thing.

Language bigamist
Friday, May 09, 2003

The Java market has become saturated over the past three years as swarms of people started taking it up, and Sun rolled out all its "certification programs." These might not be very meaningful but it's all that a recruiter needs to see.

So, although there will continue to be lots of Java work, you will be competing against lots of people with the appearance of lots of experience. Further, you would also need J2EE specifically, which is an additional layer of learning for you.

The argument that Java lets you work in all areas is spurious. Java limits you to Unix shops and former mainframe places that have been captured by IBM salesmen. All other places used Microsoft and are using Net.

So I would recommend .NET. Your relative lack of experience will not be such a handicap.


Friday, May 09, 2003

sooner -
Regarding your choice of Java IDE: if you can afford it, go with IntelliJ Idea.  http://www.intellij.com/idea/

Ethan Herdrick
Saturday, May 10, 2003

I'd go with C#.  At the moment there may be more Java jobs, but every schmoe claims to know Java. At the moment only leading edge schmoes know C#/.NET.

Less competition for C# jobs.

Clutch Cargo
Saturday, May 10, 2003

Why not VB & then VB.NET???

        
Saturday, May 10, 2003

> 5 years of experience, a CS degree, and I'm already relegated to the trash heap...

Anyone with any vision knew even in 1998 to avoid Powerbuilder and Delphi like the plague.  Delphi is not even a has been.  You're chose to work with a tool that "never was".  Your short-term gratification (High paying Delphi job) will now take a toll on the long term prospects of your career, as you have neglected to keep up with the overall direction in your field. 

If you were over age 50, at least you could scapegoat age-discrimination for your lack of marketability.  Good luck.  I hope you planned ahead, b/c you are basically a blacksmith looking for work in world with no horses.  May I suggest Law school?

Bella
Sunday, May 11, 2003

Bella,

It actually wasn't high paying ...  It was doing work I care about and would gladly choose again, and I don't give a crap about a 'career', I just need to pay the bills.

sooner
Sunday, May 11, 2003

Thanks for the input people.  I'm going to do what interests me, market be damned!  It just so happens that I think that's .NET right now...

sooner (might be working QA in the future)
Sunday, May 11, 2003

Actually Bella the great thing about being a supplier in a market where there are few others is the ability to charge more. Since you might only get work for, say, 6 months in a year, you need to charge twice as much. Isn't capitalism great?


Monday, May 12, 2003

If I were you I'd invest all my time learning to program iMacs with objective C.

sql monkey
Monday, May 12, 2003

I'm surprised nobody mentioned this, but spend at least a day or two brushing up your SQL. I'm amazed at the number of people who couldn't, even with major prodding, produce an SQL statement that returns a list of values occuring more than once in a table.

Yves
Tuesday, May 13, 2003

*  Recent Topics

*  Fog Creek Home