views:

375

answers:

6

This probably should've been asked as a followup to my previous question (http://stackoverflow.com/questions/1185433/knowledge-and-skills-in-cvs) but I thought I would start afresh.

I'm in a situation where I have a CS degree and a years experience however the experience I've gained in this position has been with mostly open source (or at least open) technologies including Postgres, Python, XML and Linux. Taking a look through the job market here it's plain to see that these skills are not going to transfer across directly to another position (at least not at a junior level) so I've been looking at .NET jobs. Problem is that I'm in a bit of a catch 22 situation with my experience (Junior positions requiring at least a bit of commercial .NET experience) and since we're in a recession now there are a lot of highly skilled .NET developers chasing after the junior positions. To make matters worse the recruiters I've spoken to have been fairly lukewarm towards my job prospects. While most were quite understanding of my situation one had the audacity to suggest I should only be taking a "cursory" look at the job sites and that if I call Microsoft and "be nice" they might "help" me leverage my experience in Postgres towards T-SQL - WTF?

Do University assignments and personal projects undertaken in C# and other .NET technologies count towards experience for these types of roles? What more could I be doing to make myself more attractive to these types of jobs? Another question I've got is whether there might be some sort of bias in .NET shops against people who have worked in open source - I know there can be a lot of Microsoft hate out there but as long as a language or technology helps me solve a problem I don't really care who made it.

+3  A: 

A slightly more than cursory knowledge is required, in my opinion. You need this to simply get past the gatekeepers. Some university experience on the resume helps you avoid outright lying when you put C# experience down, but when the time comes for the interview, you have to be smart, asking deep probing questions showing that not only do you know how to write software, but that you have the talent to make that superficial understanding of C# not a liability. In the end, it simply comes down to your salesmanship skills, and not biting off more than you can chew. But interviewing for jobs you absolutely know you're not going to get shouldn't be demoralizing, you should use them as a learning experience. It will help you tailor how you choose to enhance your learning.

I've gotten several jobs this way, through more than cursor knowledge of x, but a deep understanding of technology and the problem domain.

Chris Kaminski
If I had to guess based on his question, I'd bet he's having a hard time getting TO the interview stage. I'm curious myself if that would change your answer any? Its quite ironic, imo, that the key to a successful software career may very well be sales skills.
jsight
Getting to the interview stage is difficult. I've had a few call backs from recruiters saying they're adding me to shortlists but never hear back, have been asked to do a few psychometric tests - never hear back. Did have a 40 minute phone interview the other day for a job utilising open source technologies and am waiting for them to get back to me. etc. etc.
redrockettt
I don't think it would change my answer much. The days of "learning the basics on the job" end when you're interning in college. Even then you need to have a more-than-cursory understanding of the environment you're working on. Whether mechanical drawing or shell scripting or building websites, very very few employers are going to take you just for being you. That said, getting to the point of actually sitting in front of the "client" is the hardest part, once you're face to face selling yourself is far easier.
Chris Kaminski
@redrockettt: it's depressing. I know when I was laid off in '04 during a market upswing, my interviews were far and few between. My skills were rusty. In 7-8 months, with maybe 200 inquiries for jobs, I had exactly 5 interviews. Three of which were facilitated by friends.
Chris Kaminski
+5  A: 

Hi there.

One tip would be to download Visual Studio Express (for whichever language you want to program in - C#, VB.NET) and then take part in open source projects on CodePlex and Sourceforge.net. By making sure you're active in a .NET project, at least you showing potential employers that you are taking the initiative and partaking in some projects to improve your .NET skills.

I would say that university assignments only scratch the surface of what you will need in the real world. A real application might involve using ADO.NET to access databases, such as SQL Server. Not every university, I would assume, has assignments containing database requirements. Practise C#/VB.NET features such as LINQ for example. By being proactive, your putting yourself in a better position then a junior who is just sitting around waiting for their chance.

Cheers. Jas.

Jason Evans
Heh we did use cover a bit of that in the Distributed Systems course (database connectivity, SQL Server as a "Enterprise" RDBMS) etc. but of course it's no substitute for real experience.
redrockettt
+1  A: 

University assignments count but not personal projects, IMO. The key is whether or not you could get someone to vouch for what you did in a sense.

I think the key would be to see if you can get an internship or some other short-term contract as a way to show that you can do the job without having all the HR work of a full-time employee. Another thought is to see from what the school you graduated has in terms of career services that may help place a recent graduate as that is how I got my first out of university job.

The bias you may find is that in some .Net shops, there isn't any non-MS tools used which can be more than a little sucky. So you may find some places using things like Visual SourceSafe.

Lastly, be careful how many recruiting firms have your resume as you don't want to end up getting applied multiple times for a position as that is the easiest way to get your resume tossed.

JB King
Hi JB,I've had a look at career services at university and they're all looking for candidates with A-grades - this is clearly not me (I'm probably in the mid B's). Seems a degree isn't enough to get you a foot in the door at many places these days.
redrockettt
I was in the mid B's too. Though I did have the benefit of graduating in '97 when the dot-com boom was on.
JB King
+1  A: 

I like Jason's suggestion of working on an existing open source project from CodePlex. Whatever you do, I do think he's right that you'd be best served by spending some time doing some more .NET development -- something you can show for your effort. Open-source development is great for gaining experience, but it can be hard to show what aspects of the project you were responsible for. So ideally you need to also show a project that's yours and yours alone.

With that in mind, I'd start up a blog and document everything you do and everything you learn about .NET development. A blog like this can serve as a growing, evolving online portfolio of sorts and could just be the deciding factor that gets you the job next time.

Steve Wortham
Am wanting to TheSteve - just a matter of having an idea you know? I'm not wanting to reinvent the wheel.
redrockettt
Steve Wortham
I guess my point is that even these fun type of projects that don't seem to be terribly useful do in fact serve as good additions to your portfolio.
Steve Wortham
+2  A: 

Do University assignments and personal projects undertaken in C# and other .NET technologies count towards experience for these types of roles? They make for great interview fodder. However if the most exciting project you have to talk to me during an interview is something you did in college I am not going to think you have much "real" experience...even if you do. What I generally suggest is to prowl the freelance boards (scriptlance.com, guru.com, getafreelancer.com, and elance.com if you can afford it) and get some side gigs. Small, quick, flashy projects. You can usually work on two or thee of these at a time which will give you something in the real world to talk about. And having done them in parallel you will get more bang for the buck by separating them out on a time line. This will give you more to talk about and can show some history doing dev work in .net.

What more could I be doing to make myself more attractive to these types of jobs? Start blogging. Start an open source project. Do a facebook app. Do some freelance (depending on the field you are looking to work in..this may be good or may be bad). Take some real interest in StackOverflow or MSDN forums. Build up your internet presence as best you can so that after the person interviews you, and likes you enough to google you, your online presence should really WOW them.

Another question I've got is whether there might be some sort of bias in .NET shops against people who have worked in open source - I know there can be a lot of Microsoft hate out there but as long as a language or technology helps me solve a problem I don't really care who made it. There most certainly is. You have to understand that in general (though not always) microsoft technologies are made for the lowest common denominator. You can open VS, start a project, drag some controls onto a web form, hook up a LINQ data source, and really code your project from a wizard. Any shop that expects that sort of wizard worker mentality from their developer will not fancy someone that aspires to live in a DDD, TDD, NHibernate, Rhino Mocking, continuously integrated, StrucureMapped, NAnt built world! I am the later and so I prefer people that are agile and open sourced. Seek a flexible mind and don't worry about people that don't work your way...as long as your way has a majority behind it you will find work (eventually).

Andrew Siemer
+1 for the first two paragraphs.
JonnyD
+2  A: 

Before I ramble on trying to answer your questions, I want to take a moment to talk about recruiters. Take everything they tell you with a grain of salt. First, not all recruiters know IT; a lot of time they are just HR personnel that read your resume looking for key words like .Net, Java, etc. Second, they are there to make money off of you and they will usually prefer people that they think are more quickly employable - more experience, educations, etc. So, don't let them discourage you from finding something in .Net.

Now on to the actual questions at hand:

I am answering all these questions based on the assumption that you are applying for Junior level positions.

Q1. since we're in a recession now there are a lot of highly skilled .NET developers chasing after the junior positions.

A1. I know this isn't a question, but I wanted to talk a little about this point. Don't feel discouraged about more experienced people applying for the Junior level positions. There are many reasons why they wouldn't be hired for those positions of which two are: 1. Even if they want less money now, when the recession is over - it will end sometime - those developers will either demand more money or move somewhere else. People in charge of hiring know this and are usually cautious about hiring highly experienced people for junior positions. 2. Sometimes they would rather have a junior level person that they can mold into the culture and procedures of the company. It is hard to do that with more seasoned applicants.

Q2. Do University assignments and personal projects undertaken in C# and other .NET technologies count towards experience for these types of roles?

A1. Well this depends on how long ago you graduated from college. Even though real work experience is usually preferred, if you are a recent college graduate - within 1.5 years - you can use class coursework as examples of your .Net experience. But you have to be able to discuss what you learned from those classes in detail and the projects that you worked on. Also if the projects you worked on were team projects be sure to describe your role - developer, designer, database designer, application designer, etc. If there are any projects where you took leadership in or had problems that you assisted in solving, be sure to include those and discuss the details.

Q3. What more could I be doing to make myself more attractive to these types of jobs?

A3. Well the best thing you can do is practice, practice, practice. It was already stated above, but to reiterate you can join a open source project, take some freelance gigs, join some coding competitions, work on personal projects, etc. Also spend time reading .Net books to hone your skills. Try to see what other skills the companies are looking for like knowledge of Agile practices, Isolation Frameworks, Unit Testing, etc. and start reading up on those.

Q4. Another question I've got is whether there might be some sort of bias in .NET shops against people who have worked in open source - I know there can be a lot of Microsoft hate out there but as long as a language or technology helps me solve a problem I don't really care who made it.

A4. Well this questions doesn't have a simple answer. Not all .Net shops will have a bias, but some might. At the last place we worked at we were a .Net shop, but we never judged a candidate based on if they worked on open source projects, we only cared about his/her skills.

Hope this helps.

Waleed Al-Balooshi