I'm a recent graduate with an ok CS degree and some experience with crappy PHP jobs, which is all I can get so far. I'm pretty good with Java, alright with C, and I'm learning Python, and I know my theory too. Every day at work I feel like I'm not using my skillset, and my paycheck reflects that feeling.<p>I'd love to get some opinions and ideas on where I could go from here. I've tried (and failed) to get Java jobs through job websites, I suspect because I have zero commercial or EE experience.
If you know of an open source project that seems like fun to hack on, working on that might be helpful in a couple of ways: It builds your skills in whatever toolset the project uses, and also (if you're good) can help get you potentially useful contacts. (The best matches here for your skill set might be Java open source projects. There are plenty of them, but this, unfortunately, isn't the best place to find out them.)<p>Alternatively, if there's some small utility you could write (something the scale of, say, a jQuery plugin), or a small Django or Rails website, it might be useful to write that, package it, and write it up. There are far worse things to show an employer these days than an interesting portfolio of stuff on github.<p>EDIT: this essay on finding interesting stuff to work on just showed up in the 'new' feed, and might be useful: <a href="http://svpow.wordpress.com/2011/02/03/tutorial-12-how-to-find-problems-to-work-on/" rel="nofollow">http://svpow.wordpress.com/2011/02/03/tutorial-12-how-to-fin...</a>
I agree with jasonkester, come up with a unique project that uses the technology you want to be hired for. Cut out TV/distractions on week nights and build it out. Use that as a show piece for getting the job you deserve.<p>Also, try to avoid big job sites like Monster or Dice. If you really want a Java (insert any other technology here) job, find Java bloggers you admire and track down where they work. You should be able to find a number of smaller companies with people you know can teach you a trick or two. With the field narrowed down, try to run into those people at tech meetups and let them know you're in the market. Follow up with comments on their blog posts or joining their conversations on twitter. If you don't come off as a stalker, you should be able to parlay a decent job offer out of it :P
Domain names cost $7/year. VPS hosting will cost you $20/month (or a bit more depending on tech). That's the only barrier between you and running your own software business.<p>If you want to learn to build something, build something. Register a domain, build a site and put it live. Iterate until it's something you're actually proud of, then use it as something you can point to and say "I can build sites like this".<p>That'll get you more credibility in front of a future employer than any number of years experience sitting in a cube doing Enterprise Java stuff.<p>Pick a tech you want to work in, work in it, then find a way to get paid working in it.
The short of it is "build something". As programmers we are creators.<p>The harder question is what to build. To answer this you can go to startup events, look at craigslist, or browse open source.<p>Do you want a Java job?
programming is all about learning. when i was in high school, i started my first open-source project, an smtp server, and put it up on sourceforge. it was the crappiest C i've ever written, and even djb (of qmail fame) sent me a mail about security bugs in it. it's been a talking point ever since.<p>if i was hiring, i'd want to see proof that the candidate built something. it doesn't need to be a huge open-source project. even some code that only you find a use for, is better than not having any code out there.
commit to open source or start a project of your own. The only way I learn is by doing and I suspect that is shared among a lot of us. Do, and do more. The skills will follow.