views:

1115

answers:

12

So, I'm a college senior, with a pretty good foundation of Comp sci.. data structures/ algorithms, etc. My Comp Sci department uses linux exclusively. My OS for example had projects to write kernel code. There is no standard language for the program, so for the last 3 years, I've used Java, C, C++,scheme, and a lot of classes have been using Python lately. We've never thought of a programming language to be something to study and remember, rather, it has been a tool to learn quickly, use and then move on.. Concepts mattering more than code. The only problem is, now that I want to find a job in the East Coast, all I see are .NET and Microsoft strongholds. The Java jobs I see require experience with fancy Java tools and what not.. It's been 2 yrs since I did any serious Java programming and I'm now better at C than at Java. I'm stumped as to how to find a job.. Do I madly start learning everything(c#/VB(cringe))? What do I learn? Was my Comp Sci program too hardcore to be marketable anymore? What have your experiences been as you graduated from college? Any tips for an old school comp sci graduate?

A: 

Since you are about to graduate college, you should probably look at entry-level positions. I can't imagine any employer asking potential junior employees things like 'x years of C# experience'.

That being said, it might not be a bad idea to get microsoft's Visual C# Express edition and experiment a bit just to get familiar with the technology.

Benoit
+1  A: 

Where are you searching for jobs? I find it somewhat hard to believe that you'd be unable to find C/C++/Python jobs in "The East Coast" at large. Dice, Monster, and Craigslist are the best places to start in my opinion.

That being said, nothing is better than networking. Know any alums who are gainfully employed? Asked around in your college career center? Looked around for firms interviewing on campus?

Ryan
+2  A: 

Get in touch with some recruitment agencies, as they will have more jobs at hand than you could have by digging around on the web.

Explain your situation, experience, and what you are hoping for, and they will start ringing you ceaselessly with jobs (many of which are rubbish or wrong, but it's a numbers game)

Eager graduates should have no problem getting employment, as they tend to be eager, hardworking and (relatively) cheap ;)

Does your college not provide any sort of service for this sort of thing? I know they do over here in the UK, as people getting jobs straight out of college is good for the stats...

Don't lose hope, keep trying!

tim_yates
A: 

No, you studied the exact right thing -- now go find a company that values understanding computer programming concepts over the specific technologies they use today.

http://jobs.joelonsoftware.com

http://HiddenNetwork.com/

If the East Coast includes Western MA, then I'd like to talk to you (I'm pretty findable from information in my profile)

Lou Franco
A: 

The company I'm currently working for is an Agile show, and we do pair programming pretty much exclusively. When we are evaluating Dev Candidates their knowledge of our specific platform (ASP.Net/Oracle) is actually not something we put a whole lot of weight on, particularly for Jr. positions. The fact that we are doing TDD and pair programming means that someone who is not at all familiar with .Net can start working with us, and get up to speed quite quickly.

I would say if it is at all possible, find yourself a nice Agile shop that works with whatever technology your most interested in. You comfort level with that technology will increase quite quickly under those conditions.

ckramer
A: 

Most schools have technical career fairs right now, and they have companies that are primarily looking for entry level people. If not in your school, look in nearby schools. Similarly, your school's career center would typically have a list of companies that are looking for entry levels.

Uri
+3  A: 

This may be a slightly unpopular answer, but have you considered government work? It's what I did right out of college and I've found it pretty workable. DC is on the East Coast so at least it's not far (though the site has postings in other areas as well)

Upsides: Easy to get started, hard to get fired, benefits, lots of days off for holidays you didn't even realize existed.

Downsides: The pay's not as good as the private sector. Many of the jobs require US citizenship. Some might require a clearance that'll take forever to get. It's government work - if you didn't want to deal with a giant bureaucracy, it's definitely not for you.

Atiaxi
+1  A: 

Just remember when you interview that being an expert means that you are capable of finding an answer that works well, as opposed to knowing the answer right off the bat. From your background you clearly have the tools in place to learn C#, Java or other languages. Learn patterns, as they'll be applicable to many different platforms and you can transpose quickly. If you chose to work at a smaller company you might get in the position of jack-of-all trades and use much of what you learned. At larger firms you'll have to work in the one area where the productivity is needed.

Also, you should decide what area you want to focus when you first start your career. Most places requiring you to know C#/VB will NOT be designing operating systems and will have more of a business application focus. That said, the principles and ability to dissect problems from your curriculum will put you ahead of the pure business oriented people as they have solved different problem domains and won't have your perspective.

VB is all that bad, and there's a lot of it out there just like COBOL and Fortran. The reality is that unless you have a very specific focus, you encounter some of these (cringe) languages. Take it in stride, get good at solving those problems too, and any employer who can recognize a good attitude will reward you with great projects.

David Robbins
A: 

Thanks a bunch for the input!

A: 

Its time to learn a managed language. The pay is good, the jobs are plentiful, and the work isn't as difficult as C/C++.

Plus, you should be able to learn C# in a month or less, once you've been a programmer for a bit, a new language is super easy.

.NET is where the work is, and its been that way for a while, I jumped onto the .NET bandwagon two years ago and haven't looked back.

NOTE: If you have some sort of aversion to working with the microsoft stack, I'd recommend you get off your high horse and deal with it.

I've seen many brilliant college graduates who have written kernel code in assembly and got 4.0 GPA's fail at business programming because they didn't learn a thing about business process in school... You need to be spending your free time learning this kind of stuff because its what will pay the bills...Not low level kernel hacking :)

FlySwat
+5  A: 

Concepts do matter more than code. You should consider, though, whether there are some important concepts that you might have overlooked in your studies, and study up on those. For example, kernel programming skills will not be as important as having a good understanding of Object-Oriented Programming and RDBMS basics.

With respect to specific languages, you must be able to write a "Hello World" in a language required in the job description, and you can be expected to be familiar with the libraries that come with each platform. E.g. if you go into a Java interview, it's good to know what data structures available as part of java.util Collections and have an idea of how to do multithreading with Java.

Beyond that, don't worry about specialization too much. Realize that developers don't always write the job descriptions, but the will be the ones interviewing you. If they're good, they'll look beyond your language-specific skills and will focus on whether you have a good understanding of the fundamentals, and will be able to quickly pick up domain knowledge (of which language familiarity is only one part anyway). If they're going to solely focus on language-specific stuff, you probably don't want to work for that company/team anyway, so don't worry about failing those types of interviews. But do assess afterwards whether you really didn't do well because the questions were too focused on the details, or whether they really targeted a concept area that you need to learn better.

ykaganovich
+1  A: 

Concepts mattering more than code

Absolutely. Remember, even though VB.Net and C# are flavour-of-the-month, so was 'classic' VB not long ago. Java was the "only" enterprise language 5 years ago, now its popularity is seriously eroded by .NET and scripting languages. What will be popular in 5 years time? Dynamic languages? Microsoft drag-n-drop programming? Javascript everywhere?

So, you're in an excellent position to go for any job you like. Obviously you'll need to swot up a little on any of the languages a prospective employer says they're looking for, but I guarantee none of them will be a 'pure' .NET only shop, they will have bits of legacy code here and there, possibly even their main product will be 'legacy' and they only put .NET on the job advert to attract young developers who wouldn't (or couldn't) consider anything else.

And that's your selling point - you can turn your hand to anything, its not as if VB.NET is particularly hard.. download the express edition and you'll see how little skill you need to code in it (you will need some skill to code well in it obviously, just like any language, but the assistance you get means useless programmers can do it to some extent too). So tell your employer that, you can turn your hand to it and anything else they want to throw at you!

If you dislike .NET, then I'd recommend embedded/mobile jobs, they still to do a lot more C++ and are in an growing marketplace, often where your linux skills will be an asset.

gbjbaanb