PDA

View Full Version : Career advice for a programming job



pmdkh
October 12th, 2007, 07:51 PM
I am looking for a little bit of career advice from people who are programmers, or are knowledgeable about programming jobs.

I am currently in the military, and will get out in about 2 years. I will finish my IT bachelor's degree early next year. I want to get a job as a computer programmer, and I am wondering what I should concentrate on to make myself marketable for a programming job after I get out of the military.

The programming languages that I worked with were ASP, Perl, PHP, and Java. I also did some web design, among other things. Right now I have the most experience working with Java. (My job in the military could somewhat be compared to an administrator's job, but not really.)

What I am wondering about is how many programming languages I should try to learn in depth before I apply for a job. Would I do better to try to concentrate on one or two? Or should I try to learn maybe five or so, but not that much in depth? From what I've heard about IT jobs, you need to be specialized in certain areas, rather than trying to be good all around.

I know that this question has a different answer for every person, but what languages should I concentrate on? If I go with two, for example, would it be good to do an object-oriented one (maybe Java, since I have the most experience with it and I like it), and C? Any thoughts that you have on the question would help me out a lot.

I know that certifications make you more marketable, but don't necessarily equate to being good at your job, but are there any certifications that would help get a programming job? For example, Would a Linux certification help me get a programming job?

Thanks for your help.

jnorthr
October 12th, 2007, 08:39 PM
Working to gain linux certification would certainly show potential employers that you know your beans. I would use that as leverage to gain your first job in sys admin, and from that you can quite rightly justify a move to development. You need some street cred and a linux cert, might just be easier to obtain than java certs, though if you can get that, it all helps. There are so many different aspects to java above the 'programmer' stage, that you may find it more interesting later on, say for OO design. If you are REALLY going to be a developer then stick with prorgamming languages like Java and C, if you lean more to the web side of life then forget java and go for the scripting side of the field using PHP, python, HTML, javascripts.

It's a big open field out there - just make a decision as to your gut-feel for what you really want to do. Check with your careers advisor in your post to see if there are classes available to you that may further your career. I used to teach I.T. in Dept. of Army evening sessions and if budget cuts have not killed them all, there may be some available to you. Also look into the G.I. bill rights to further education opportunities once you walk - and good luck :KS

ryno519
October 12th, 2007, 08:51 PM
I'd stick with Java. There are a lot of Java jobs out there, in fact I worked for a brewery which did all of their coding in Java for 6 months. You will definately need to know SQL (language for querying databases, if you were unaware) so I'd read up on that rather extensively. You could get a good job working with Java. I'd consider getting certified if I were you.

You should also learn Visual Basic/C# with the .NET libraries. You should know how to program in those languages. They're very popular in the industry, especially if you're writing in house applications.

And of course, you should learn C, C++, Python, etc for contributing to opensource applications after you get off work. :)

aks44
October 12th, 2007, 09:23 PM
As a side note, don't forget that programming (ie. writing code) is just a very small portion of the development job. Of course, programmation is the first step, but learning design / architecture as well as being aware of security issues are way more important IMHO. But again, knowing (mastering?) the programming stuff is mandatory to be able to do proper design, so you gotta start with the beginning.

Granted, it's a life's work, but just don't aim too low. ;)


Concerning the Linux stuff, from what I see around me, most development jobs concern either Windows, or cross-platform stuff like Java. Like others already said, Java would be a safe bet.

Now, we're getting short on competent C++ programmers, in a few years it will be terrible and the salaries will probably go very high (industry needs C and C++ for reliable AND performant applications). But I'm just advocating my own church here... ;)

skeeterbug
October 12th, 2007, 10:39 PM
I am looking for a little bit of career advice from people who are programmers, or are knowledgeable about programming jobs.

I am currently in the military, and will get out in about 2 years. I will finish my IT bachelor's degree early next year. I want to get a job as a computer programmer, and I am wondering what I should concentrate on to make myself marketable for a programming job after I get out of the military.

The programming languages that I worked with were ASP, Perl, PHP, and Java. I also did some web design, among other things. Right now I have the most experience working with Java. (My job in the military could somewhat be compared to an administrator's job, but not really.)

What I am wondering about is how many programming languages I should try to learn in depth before I apply for a job. Would I do better to try to concentrate on one or two? Or should I try to learn maybe five or so, but not that much in depth? From what I've heard about IT jobs, you need to be specialized in certain areas, rather than trying to be good all around.

I know that this question has a different answer for every person, but what languages should I concentrate on? If I go with two, for example, would it be good to do an object-oriented one (maybe Java, since I have the most experience with it and I like it), and C? Any thoughts that you have on the question would help me out a lot.

I know that certifications make you more marketable, but don't necessarily equate to being good at your job, but are there any certifications that would help get a programming job? For example, Would a Linux certification help me get a programming job?

Thanks for your help.

If you really love to program, it will come across in the interview. I had side projects, so I printed the code, did a project description, where I wanted to go with it, etc. I filed this all in a binder, did a logo for it, and brought it with me to my interview as a code sample. This was how I obtained my first job, before I had any real experience.

mjwood0
October 13th, 2007, 04:05 AM
This really depends what you want to do as a programmer.

If you're thinking about doing anything with embedded systems (for things from cell phones to aircraft controls) you're better off getting a Computer Science degree and learning assembly and ANSI C.

If you're thinking about desktop programming, it's pretty wide open. C++, Java and other OO languages are the way to go.

Want to work with the web? Java, Ruby, PHP, etc..

Databases / busness? SQL and Visual Basic / Access Database management.

Personally, I think a degree in IT is great, but not for programming. You'll probably be able to do really well if you get a linux cert with an IT degree looking for jobs in System Administration and the like. But for programming, nothing compares to the Computer Science / Computer Engineering degree (with a focus in programming).

Just my $0.02.

BTW -- I'm an embedded systems programmer by day.

mjwood0
October 13th, 2007, 04:07 AM
Now, we're getting short on competent C++ programmers, in a few years it will be terrible and the salaries will probably go very high (industry needs C and C++ for reliable AND performant applications). But I'm just advocating my own church here... ;)

I agree 100%. There are very few competent embedded programmers anymore when it comes to C, Ada and Jovial. Great market to get into if you want stability. Then again, breaking in can be a bear.

For these jobs, don't overlook the necessity of some good architecture background (memory management, cache theory and the like). It's more relevant than many realize.

ryno519
October 13th, 2007, 04:18 AM
As a side note, don't forget that programming (ie. writing code) is just a very small portion of the development job. Of course, programmation is the first step, but learning design / architecture as well as being aware of security issues are way more important IMHO. But again, knowing (mastering?) the programming stuff is mandatory to be able to do proper design, so you gotta start with the beginning.

Granted, it's a life's work, but just don't aim too low. ;)


Concerning the Linux stuff, from what I see around me, most development jobs concern either Windows, or cross-platform stuff like Java. Like others already said, Java would be a safe bet.

Now, we're getting short on competent C++ programmers, in a few years it will be terrible and the salaries will probably go very high (industry needs C and C++ for reliable AND performant applications). But I'm just advocating my own church here... ;)

To summarize, learn UML. :)

mjwood0
October 13th, 2007, 04:35 AM
To summarize, learn UML. :)

Never used UML. Not even sure what it is...

cwaldbieser
October 13th, 2007, 08:14 PM
A big laundry list of computer languages is not going to be as impressive as any relevant experience you can demonstrate in the field.

If you are going for more of an entry level position, your potential employers will probably expect that you will require some time ramping up. They may expect that you know the basics of working with particular tool sets.

If you are going for a more experienced postion (because you feel you past experience in the military qualifies you for it), your employers may want a demonstration of some expertise with particular tools and your approach to different situations.

Demonstrating that you are versatile with respect to changing technical needs will be much more useful than knowing the syntax of many languages.

pmdkh
October 13th, 2007, 09:39 PM
Thanks to everyone for their replies.

When I signed up for my degree program, I didn't know the difference between IT and CS. I only knew that I wanted to program and the degree program that I took included some programming classes.

About the certifications, I don't have any right now. I didn't realize that there are Java certifications, but after jnorthr and ryno519 mentioned them, I looked into them and I think that I would like to go for the SCJP.

The plan that I have formulated a little is to learn Java, C, and SQL as much as I can, and become an SCJP. What I'm wondering is whether having an IT degree is going to hold me back from getting a programming job, as mjwood0 suggested? (My apologies if you didn't mean to suggest that, but that's what I picked up.) Or will a company care more about my wanting to be a programmer, as evidenced by me getting a certification and learning other languages outside of school?

I'm asking these questions because I know next to nothing about the job market and I'd like to use the two years that I have before I enter it in the best way possible. Thanks again to everyone for their help.

mjwood0
October 14th, 2007, 02:04 AM
A big laundry list of computer languages is not going to be as impressive as any relevant experience you can demonstrate in the field.

If you are going for more of an entry level position, your potential employers will probably expect that you will require some time ramping up. They may expect that you know the basics of working with particular tool sets.

If you are going for a more experienced postion (because you feel you past experience in the military qualifies you for it), your employers may want a demonstration of some expertise with particular tools and your approach to different situations.

Demonstrating that you are versatile with respect to changing technical needs will be much more useful than knowing the syntax of many languages.

It's really more important to be experienced with the architecture you're programming for than the language itself. Any skilled programmer with an understanding of the architecture can become proficient in any language so long as they have a reasonably strong background in programming theory in at least one language.

In that case, go ahead and stick with Java but focus more on the architecture with regards to memory management, or whatever else you need on Java (sorry -- embedded controls guy here).

More import than any of this is how well you interview. The best coder in the world who can't work with others really isn't an asset to most teams.

mjwood0
October 14th, 2007, 02:09 AM
Thanks to everyone for their replies.

When I signed up for my degree program, I didn't know the difference between IT and CS. I only knew that I wanted to program and the degree program that I took included some programming classes.

The plan that I have formulated a little is to learn Java, C, and SQL as much as I can, and become an SCJP. What I'm wondering is whether having an IT degree is going to hold me back from getting a programming job, as mjwood0 suggested? (My apologies if you didn't mean to suggest that, but that's what I picked up.) Or will a company care more about my wanting to be a programmer, as evidenced by me getting a certification and learning other languages outside of school?

I really don't think that your degree will hold you back if you can get some relevant experience in the field of your choosing. Your plan to Learn Java, C and SQL is really good. Java is good to learn for it's object oriented nature. Standard (ANSII C) is good for a good background in non-OO languages and SQL will add good diversity. Overall, a good mix.

The SCJP is also good as it proves you have initiative. It will also be a great study in Java for you so that's a plus.

Another great Resume booster is working with some open source projects. You'll get good experience with configuration management and good experience with other people's code. You'll also have good programming experience to put on your resume. And if you look into web applications or network applications, you'll be using your IT degree but be putting a programming twist on it.

Good luck!

emperon
October 14th, 2007, 12:58 PM
Learn Mono and C#. This way you can both program on linux and windows effectively.

pmasiar
October 14th, 2007, 07:47 PM
Of course getting that first job is hard.

Better than to have skin-deep knowledge of many languages, it is better to learn one platform (language+libraries+toolset) in depth, and be ready to move where that first job will energe. So it is basically betting on one set of tools, and being ready and able to hit the ground with whells spinning :-)

Also, beyond language and toolchain issues, there is problem area. Which kind of problems you learned to solve, and how that knowledge is transferable to your new job? Experience in java for embedded systems is worthless if next job is web app for retailer. Bank has different problems than manufacturing, and it is not useful to run powerplant. So think which industry solves problems like you do now, and learn what they use.

ukripper
January 23rd, 2008, 06:30 PM
Being a Computer systems and Software engineer working as a Database Applications developer with Java and SQL, I would highly recommend you go for SCJP it will appeal highly on your CV and get you sorted down the line in as a java programmer and makes you more lucrative to employer.

in my uni days i have done both embedded (using VHDL, PIC assembly programming) and Desktop software development using UML,java,MSSQL. (never used C or C++ so cant comment on it.)

But if you think java is what you want then SCJP and a degree is your ladder to success.

For good design you do need to understand software development cycle and UML is your tool for that. i wont go in detail you will see it yourself during your degree.

Goodluck!

DrMega
January 23rd, 2008, 06:46 PM
Have a look at IT recruitment web sites to see what employers are looking for.

I would say a prerequisite nowadays is a reasonable understanding of SQL. There is no need to worry too much about which flavour as there are several in industry anyway, and as long as you learn one that conforms fairly closely to SQL-92 standard you can't go far wrong. If you want to practice at home, MySQL is a good choice.

For the client side (or application layer in a web app scenario), C# is very popular for both client side apps and server pages. If you want to focus on web apps, C# will be useful, as will PHP. Also for web stuff CSS and JavaScript are a must, as many employers (who don't fully understand what they're doing when they advertise a post) might take it for granted that you have these skills when advertising a web developer post.

Windows obviously has the desktop market in business, so if you want to develop apps for the desktop, again C#.Net is the way it seems to be going.

In short, I would say:

MUST HAVE REGARDLESS:
* SQL - as most apps in business have a backend database

WEB STUFF
* PHP, JavaScript, CSS

DESKTOP
* C#

Balazs_noob
January 23rd, 2008, 06:59 PM
either .NET (mostly c#) or Java/JEE are safe bets
for a job... ( Microsoft and Sun certificates are useful )

as a few posters stated there will be
a shortage of c and c++ programmers
( and i think they are right )

and of course there are web apps
you can find a lot of threads about that in
this forum :D

chose which you love most

rendon
January 23rd, 2008, 09:04 PM
I would take a radical approach to this, by responding at the reason by your question to begin with.

My advice for job searchers is always first: don't wonder about what they want from you, wonder about you want from them.

Decide what type of job you like, then go for it. In the process of going for it you might find that you didn't get exactly what you wanted the first time, but hey! if you got a job, then that's it!

Go into an interview with a critical and self protective mind, not to say you should be cynical, but you should be sharp minded and be careful, there are a lot of people out there who will rip you off and overwork you.

Another thing is that you should skip this step of asking about what to be and jump to the question: "where's the jobs?". Start going to interviews as often as possible. You learn so much at interviews! And you don't have to take the job!

You might also find a million dollar opportunity doing something you love because and interviewer learned about you and recommended you to a friend who's a manager of said company.

so you see, it's just like anything else, you have to be cautious yet optimistic at the same time.

good luck!

pmasiar
January 23rd, 2008, 09:34 PM
Rendon is right. You should read up about writing resume, cover letter, and interviewing, to increase your chances. "what color is your parachute" is a classic. Library should have also videos about body language and stuff. Learn it. Especially if you are introvert and don't care about that: hiring manager will care, and is **trained** to note and evaluate it. Learn your http://en.wikipedia.org/wiki/Myers-briggs type indicator, to understand how you interact with others, and what differences there are.

Searching for a job is full-time job, you work at it 8 hours a day. Network: best positions are not on the market yet, and less competition. Instead of carpet-bombing for random job positions, better strategy is to pick where you have better chance, and customize resume to fit that position. And of course custom cover letter: resume might get ignored if cover letter is not interesting (but might get separated from resume, so you need customized resume, too ). No lies, just underscore in greater details how your experience is relevant to position. Hiring manager might not have clue, help him/her.

When applying for the job, build on your strongest skill. All deep but irrelevant experience is red flag. Consider getting experience/participate in development in some open-source tool related to your area. But be focused on what employer might be interested: enhancing open-source accounting, content management system or ERP will help you more that fixing bugs in editor.

Senesence
January 24th, 2008, 01:31 AM
Won't outsourcing wipe out the majority of programming jobs in the "1st world"? :)

naugiedoggie
January 24th, 2008, 01:54 AM
I am looking for a little bit of career advice from people who are programmers, or are knowledgeable about programming jobs.

[ ... ]

What I am wondering about is how many programming languages I should try to learn in depth before I apply for a job. Would I do better to try to concentrate on one or two? Or should I try to learn maybe five or so, but not that much in depth? From what I've heard about IT jobs, you need to be specialized in certain areas, rather than trying to be good all around.

[ ... ]

Thanks for your help.

Hello,

There are programming jobs available for pretty much every language available. I believe it is more a question of what kind of development you are interested in doing. Are you primarily interested in database applications, web applications, desktop applications ... &c. What do you write in your spare time?

My advice is, don't sit around waiting for that programming job. Get a position in something ancillary, like system admin or web admin, support or whatever comes up. If you're someplace where you can get your oar in, you can make it work. I started in support for a software company, and I made it my business to write test apps, plugins, front ends, scripts and whatever I could. I worked up to professional services consultant. I became the go-to guy for any kind of code questions or one-off solutions for our clients' specific problems.

I had cow-orkers who went from support to QA to dev. I live clear across the country from the home office, so I took a different route.

Eventually, I went to work for a consultancy that hired me specifically for my coding skills, so that I can be the maintainer and "junior" developer on an important Java application, in addition to being a consultant. Now I have what I think is the best of all possible ... I work from home, make a good living, travel some but not overly much, and get paid to write code. Every week or so is a new assignment and no cube farm in my future.

Thanks.

mp

pmasiar
January 24th, 2008, 03:09 AM
Won't outsourcing wipe out the majority of programming jobs in the "1st world"? :)

not majority - only those easy to outsource, where developer has no face time with the client.

If client expects face time to explain you what to do, and you have enough understanding of client problem area that you can understand and communicate, your jobs should be OK. If not, it is easy to outsource, and it will be.

"Fortunately" with US dollar falling, and salaries in Chindia rising, and all the security requirements, outsourcing is little less profitable.

jaytek13
January 24th, 2008, 04:12 AM
Just to throw this out there... I didn't read all the pages but I will add this anyways. I personally didn't realize this until it was too late (IE after I finished my school program):


You absolutely need a portfolio of programming projects. Whether you did them in your spare time or it was a requirement put onto you by others, put them in your portfolio. SAVE EVERYTHING. And provide your best examples to the employers.

And, as far as it's concerned, you should consider a personal webpage. Webpages are programmers briefcases. I can guarantee you will absolutely not even get an interview just saying on your resume that your proficient in this or that programming language... you have to show it before you even get to the point of an interview.

jcwmoore
January 24th, 2008, 04:23 AM
You should also learn Visual Basic/C# with the .NET libraries. You should know how to program in those languages. They're very popular in the industry, especially if you're writing in house applications.

I agree completely, I myself a just entering the programming field and VB, C# and .NET are used in just about every job I've looked into.

LaRoza
January 24th, 2008, 04:26 AM
I agree completely, I myself a just entering the programming field and VB, C# and .NET are used in just about every job I've looked into.

Also, PHP and SQL are in demand. Often I see these in ads.

pmasiar
January 24th, 2008, 05:23 AM
VB, C# and .NET are used in just about every job I've looked into.

Not exactly.

There are 3 "application stacks" or platforms, designed to be incompatible, using different terminology as a way of "developer lock-in".
- .NET with VB, C#, ASP, IIS
- Java with Tomcat
- LAMP: Linux, Apache, MySQL, Perl/Python/PHP/Ruby (free platform).

Every platform is different and skills are not completely transferable. If someone invested 3 years of life learning Java libraries, how useful are they on .NET? Thought so. Even if there are many C#.NET jobs, your Java skills are irrelevant for them.

That said, when you have job (which you should get on your strongest skill, as you said is Java), you should look into other "stacks", especially LAMP. Dynamically typed languages are becoming more and more popular (with increasing power of CPU, productivity of developer is more important than raw CPU performance).

And one more thought: Number of C# positions on random job board does not tell you where Python jobs are: Python has own mailing list for jobs, so most jobs are not posted on generic job boards. And some cool companies use Python, like Google and YouTube.

rplantz
January 24th, 2008, 05:44 AM
I worked in industry from middle 1970s to middle 1980s, then spent 20 years teaching CS at a university. We are a teaching department, not research. (No graduate program.) Almost all our students go into programming jobs after graduation. I also got fed up with teaching several times and interviewed for jobs in industry.

I've seen a very wide variety of how people get programming jobs. Some employers want specific skills, others want people they can train.

One of the most successful students I had knew where she wanted to work. During her college years she contacted the company and asked if she could talk to someone about what she should study. Each semester she went back and asked for updated advice. When she graduated, they offered her a very good job, knowing that she really wanted to work for them.

You might consider contacting a couple of potential employers and telling them your situation and ask what sorts of things they are looking for in potential employees.

rendon
January 24th, 2008, 05:58 AM
For the proficiency aspect of this I'd like to add:

You might find yourself apt to work in a small company being "the programmer" like myself. In other words, you would be the one and only person responsible for making decisions about what language you want to use while working for somebody who doesn't really know programming but knows what computers do and knows what they want.

I think this type of job will grow these days, since so many people get into programming now, The "company programmer" might be the norm for every small to medium sized company in the future.

In this situation you have to decide which language(s) you feel most comfortable and are secure/stable.

You might ask yourself:
can I make dynamic webpages?
can I make a window-like program on a desktop?
can I manage a database with code?
do I know how to manipulate sound/image/interface input?

Then develop a solution for each problem.

I find that this package works for me: php, mysql, python, java(script), flash actionscript.

but some people might prefer: perl, postgre, ruby, c++, ajax


but in the end, as long as you have a solution for each problem you should feel confident.

ukripper
January 24th, 2008, 11:55 AM
Won't outsourcing wipe out the majority of programming jobs in the "1st world"? :)

Not for Stockbrokers or investment banks for sure!

pmasiar
January 24th, 2008, 02:04 PM
I find that this package works for me: php, mysql, python, java(script), flash actionscript.


You may want to look into new Python web app frameworks, Django or Turbogears. Much cleaner than PHP, easier to maintain long term (although PHP is still easier to deploy), I especially love kid/genshi templating.

terabyte1
August 15th, 2008, 04:16 PM
Well you could start with the basic(s),C, C++ or go on to Cobol or Pascal if you are are as old as me ;)! Then there's Python, Ruby, or if you want to go down the Database root you could go with Php; Mysql and all that ilk.


The world's your oyster really - you could start with html or go with python which is in most Distro's of Linux - or you could learn to program linux itself?


I'm getting there myself with Ruby, Python and a couple of others (I like working with a Server language like Apache 2.2) but Php and Mysql find their way into that server language too!


Go with what takes your fancy! ;)


Terabyte1:guitar:

Shin_Gouki2501
August 15th, 2008, 04:25 PM
advice:
Most problems in the business are NOT technology related, its all about the people and the "politics" they do ;)

liberty1
January 21st, 2009, 11:09 AM
Getting the experience is the most important point to take on board in whatever way you can so you can demonstrate existing/previous work.

Java is always a great language to have and will be for a while yet.

One side note
Steer clear of perl. Perl vacancies are on the down. PHP is very much on the increase.

brentoboy
January 26th, 2009, 05:56 PM
go to dice.com and hotjobs.com

Do a search for Java in an area you want to live in, change the experience level to "1-2 years" because that is what you are going to be able to claim on your resume. Limit postings to the last 30 days. In the chicago area, I see 72 jobs right now.

switch the keyword to .net I'm seeing 363 jobs

switch to php: 45 jobs

python: 10 jobs

ruby on rails: 6 jobs

Pick a city other than chicago, the results will be different.

The point isnt to pick the path with the most jobs (although, that is something to consider) the point is to read through those postings and see what else they want on your resume in order to get a job in that language. Are the Java postings already a decent fit, its probably worth it to just round out the rest of the things they want on your resume.

you need a working knowledge of SQL for just about any programming language if you are going to be developing apps used by businesses (the sort of apps people are willing to pay for).

When I have interviewed for entry level (or minimal experience level) positions I have generally selected those candidates who have at least one project they can list on their resume that acutally does something.

For instance, a personal project where you wrote a program in the language we want to hire for, and used it to track contact information for all your friends, a card file program. Then list the features you added, like full text search on the comment. You can spend about as much space as a 3x5 index card on your resume focusing on what you were able to do with that project using java and sql. That is much more interesting to read than a laundry list of skills you have with nothing to back your story.

The market right now wants .net, which means either C# or VB, and for whatever reason, C# seems to be making $8000 per year higher salary than VB for the same basic level of experience (I guess there is a general feeling that VB is still "basic" so it must be easier).

Java has a market, so don't ditch it if you like it. However, the java market seems to favor experience more than entry level jobs.

One advantage of C# over java is that if you get C# express from Microsoft (free), then you have experience using visual studio. Even if they use the professional version, it wont have another learning curve. On the other hand, if you go Java, you could use either Eclipse or Netbeans (or something else) and maybe the shop you are looking to hire will want you to use the other, they might even hold it against you that you dont know netbeans.

Another problem with java is that there is J2EE and J2SE, Websphere, JUnit, ... ... ... the technologies that are used by java shops are sometimes distributed by other venders (not Sun) so employers will want java with specific sub-architectures. Whereas, all the "cool" extensions and features for .net tend to be built in to the existing framework, so it is all just ".net" so 5 years from now, you will have 5 years of experience in C# which sort of implies all the default ways of doing things the microsoft way (for better or for worse).

The markets are both big enough that you should follow whatever interests you. If it really is a toss up for you, I'd recommend .net - specifically C#. If you can claim 2 to 3 years of Java instead of 1 to 2 years of C#, that might be just enough to tip the scales salary wise that it would be worth it to push into the java market.