views:

176

answers:

9

I am a Junior CS Major at a Javaschool and I find myself having an easy time and thought there may be some good project or a language to learn or research in this newfound free time. What would you recommend so as to increase my ability to find a good job(somewhere that allows for continuous learning and treats its programmers well)after college?

My thoughts were learning Scheme, making a working Zelda-like game(the original), find some open source project to help with.

+1  A: 

Learn how to use source control.

VirtuosiMedia
+3  A: 

I'd say you should do some real world software development. It doesn't matter if it's in a commercial project or an open source one.

The challenges and experiences you'll have in such kinds of project are generally of a different type than the ones you'll have doing normal academic activities. These experiences are necessary for being a successful team player and being able to work with software engineering tools.

Mehrdad Afshari
+3  A: 

Find a project that interests YOU. If you have no interest in it, you will have very little motivation to continue (unlike at a real job where your motivation, at the very LEAST, is getting paid). I imagine you already are interested in Scheme or a Zelda-like tile-based RPG, but I thought this point needed to be stressed anyway.

FrustratedWithFormsDesigner
A: 

Scheme or some other exotic language probably isn't very useful in a marketing sense. Other skills, often not directly programming, are probably more useful. Such as source control, issue tracking, or working with customers.

Join an existing open source project, or browse for things to do on for instance Rent-a-coder. Even doing stuff in a crappy language such as PHP, but in a communicating context rather than yet another never finished pet project, teaches you a very different set of skills than learning some new academic language.

Wim
+4  A: 

If you want to improve your marketability, you need to learn how to present yourself in a positive light. For example, don't refer to your school as a "Javaschool". Instead, it's an intensive object-oriented development program with special emphasis on polymorphism, encapsulation, and inheritance, vis-a-vis stack-based virtual machines.

ElectricDialect
-1 for vis-a-vis. There's enough mumble-jumble in the world as it is ;-)
Wim
Well, that's obvious. I was sing the term more as a way of shortening my question being that I'm dealing with people that understand the term.
CheesePls
A: 

I would learn Scala. Why ?

  1. it's a functional language. There's a lot of interest in functional languages currently, and Scala is a big functional player within the Java world.
  2. it runs on the Java VM, so you can leverage your Java knowledge, use existing libraries etc.
  3. it will provide you with a different perspective on solving problems from the imperative mindset (like 'normal' Java)
Brian Agnew
+1  A: 

Invest some time in learning about databases. In the business world, databases are critical and very few developers know enough about how to access the data and write the data and design the database backend.

If you want to become more marketable, consider that someone who is good in both Java and C# has far more opportunities than someone who only knows one or the other.

Stop looking for just the fun stuff to learn and concentrate on what the businesses in the geographic area or industry you will be looking in are hiring for. Go look at the advertised jobs and see what qualifications they need. Remember you are entry level and you will be compteing with thousands of other entry level applicants.

HLGEM
A: 

If you haven't already, consider what non-technical skills you have, what strengths you have and what your resume will look like when you graduate. That may present you with other options about what to pursue as unless you are among the top 10% of your class, chances are you will have some work to do to get some work. Networking, of the kind not involving computers, would be an example of a skill here.

JB King
+1  A: 

The number one thing I can recommend to increase your chances of finding a job is to get to know as many people as you can, some of whom might, at the very least, think of you when they hear of a job. Because there is a good chance those people know people who know other people and somewhere in that web of relationships there might be a job for you.

No language or project you contribute will come anywhere close to touching that.

What's that you say? You don't like dealing with people and you just want to push 1's and 0's around?

Well no shit. Most of us are like that, which is why we ask questions about what acronym we can learn to help us find a job. Of course nobody hires an acronym even though it appears that way. They hire people. They also tend to hire people they heard about from other people.

Now learning a new language or building a Zelda-like game sounds like a lot of fun. It might even look good on your resume. But let's ponder that for a second. What does a Zelda game you built by yourself tell me about your ability to build a form on an enterprise application that runs on Windows and talks to an Oracle database. What does it tell me about ability to take direction and work with a team?

All of this is irrelevant because I am never going to even see your resume. Because you mailed it off to my newspaper ad just like ever other random graduate from a JavaSchool. It ends up in a stack that I get through as fast as possible picking off the acronyms I like and shit canning the others. And if, by some miracle, I do pick yours then in the interview I might be suitable impressed by your contribution to the open source Tiznak project or that you were the 4,000th Zelda clone on SourceForge to hire you. That is a big maybe in my opinion.

But more likely I am going to go with the guy who knows the girl who I met at the Scheme user group meeting.

So my suggestion is go meet the girl who is going to meet the me at the Scheme user group meeting. Figure out a way to contribute to communities of people who could possibly help you. Don't go in expecting that help but do not be afraid to ask for it.

And if people-facing is just not your thing well welcome to the party, you are not the lone ranger. But just because you suck at something is no reason not to fix it. You say you have free time, then spend it learning how to interface with people. Time spent perfecting that skill will pay way more dividends than Scheme.

Bob Thumpy