views:

531

answers:

8

Hi all, I've been looking around at jobs sites and I think I've niched myself too far into one area to actually be able to move around as a programmer (easily).

I spend day in, day out, at my current employment writing Windows Mobile Applications in CF2.0. I've written 2/3 ASP.Net applications, but that doesn't give me the confidence to sit in an interview and say 'yes, I'm perfectly capable of meeting all your ASP.Net needs!', which is a shame as every job I'm interested in the look of requires experience in ASP.Net... Ok, so I have experience, but in my eyes, I'm not as comfortable with it as CF WinForm development.

So, I've written successful applications, one of which is being used by a large client base to manage their day-to-day service calls and field engineers. But that doesn't seem to count for diddly squat as no one is looking for Mobile developers (apart from Objective C). Therefor, I've just become aware that I've completed niched myself in one area and I really need to escape sooner rather than later.

I'm thinking about spending a few hours a day in my own time expanding my skill set, or rather, gaining confidence in other areas. Does anyone have any advice as to what I should do? I know I need to gain more experience in ASP.Net, but how should I go about doing it? Should I go blindly into it and just try to think up a dummy project? Read a book? Try to contribute to some OpenSource project?

I'm also very interested in ASP.Net MVC. Should I move to this after gaining more experience in ASP.Net, or should I dive straight into it? Are there any good ASP.Net/MVC books that I can read to brush up on?

Thanks in advance!

A: 

Get a job in asp.net by hook or by crook....

and then only u will be getting the knowledge

vivek
Words of wisdom undone by using "u" in the answer.
Pool
No. no. no and no.
Spencer Ruport
+3  A: 

Actually just read an interesting article by Jeremy Miller just the other day. It's got some interesting advice that should at least get you started.

Revitalizing a Technical Career

EDIT: It's also worth reading anything and everything from Martin Fowler. Just about any of our modern design, development and testing patterns have been covered in his blogs and papers.

Paul Alexander
+14  A: 

First, don't be so hard on yourself. If you've developed good programming practices and write organized, functional and stable applications in one type of technology that can be carried over into many others rather quickly. That, more than experience in a particular technology, is what makes you a valuable developer. Still, another skill you'll need to improve on is being able to move that experience from one environment to another quickly and effectively. Once you've done this a few times you won't have nearly as much trouble convincing an employer that they can count on you figuring out whatever they need that you're not entirely familiar with. A client I've just started working with said they were in need of some assistance with an old FoxPro app. I was honest and told them I've never even touched FoxPro but since I've had experience with a wide range of technologies (Cold Fusion, PHP, Java, .Net, ASP Classic etc.) they felt confident I was their best possible candidate.

If this is your first attempt at branching out the overwhelming response you'll hear from most developers is "Take on a project for fun." This can be something simple, like a basic forum, or something a bit more complex like a blog with voting, tagging, editing, web services and RSS feeds. There are a multitude of great examples on the web so you won't need to worry about getting stuck, and you'll be able to compare your methods and designs to the more popular blog apps out there.

It's a lot of fun and you have nothing to risk at this point. Just dive in.

EDIT: I would hold off on MVC. ASP.Net forms still has it's place so you're not going to have to unlearn anything. And it's just best to take this on one piece at a time.

Spencer Ruport
+2  A: 

Remember that all parts of the .NET framework build on the same basis. So whether you are programming in CF or WinForms or ASP.Net you are still working with the same base technology. Parts of the libraries are different, but even these overlap to a great extent, and the methodologies are different of course, but in most cases being a good programmer will be more important than being an expert on the subset of the framework your new employer is using. (Whew! Long sentence...)

So while it would surely be a good idea to get some practice using ASP.Net classic and MVC I don't think that should be critical for you getting a new job. As long as you have an overview of the technologies I think there are other factors that are more important (like your personality, general experience, and so on).

Rune Grimstad
+3  A: 

I am a very experienced .NET developer, both in ASP.NET and WinForms. Don't worry about MVC for now -- while it's an interesting feature, it's largely there to support REST style web applications and to say "ASP.NET has a real MVC model, just like Java."

I would think you might have more luck looking for standard WinForms development, and then work your way into ASP.NET. ASP.NET will be a radical departure from CF WinForms, but ordinary WinForms, not so much.

Consider getting into WPF, XAML, and Silverlight, rather than ASP.NET. My guess is that those areas are going to grow quickly, and that demand will grow as well.

Play to your strengths. Use what you know to move ahead. Don't just leap into another area. And... don't think the CF is done, yet. More and more mobile devices are coming out each year, batteries last longer, and while screens are a little larger, they can't be that big or the thing stops being "mobile" and becomes a laptop or netbook instead. Your knowledge of how to take advantage of small amounts of screen real estate can be valuable, especially if you like designing user interfaces. If not, then you probably have some expertise in semi-disconnected modes of operation, also valuable.

Look at what you DO have, not at what you don't have.

Alan McBee
+2  A: 

TO answer regarding your mvc interest: If I was behind in asp.net I would definitely go straight for asp.net mvc, as there is bound to be opening up more job opportunities with this framework, and most .net web developers aren't there yet. Also invest some time in new stuff like ado.net data services, RIA services etc., and look into how this can improve your web skills.

I do however agree with the answers saying that the technology shouldn't count for that much. Your general developer skills are the most important once.., but many of the once doing the hiring don't see it that way.

Torbjørn
+1  A: 

This might be a somewhat tired response, but when I conduct interviews (I sometimes run the technical drill) I usually don't care about individual skills. Most jobs require a certain amount of niche knowledge, and you can't make a career at any company by being a generalist. You can't blame a guy for dedicating a couple of years and a significant amount of brain space for doing what the job requires of him.

Instead I try to give general programming questions which I'll let the interviewee solve in any language (in plain English, if need be) he likes. And most interviews I've been to have been the same way.

So, unless you're applying for a job as a consultant, your employer is probably counting on having to give you time to learn parts of the skill set on the job. So don't go in with the mind set that you need to already know everything you need, but that you can prove to your prospective employer that you can learn it in a reasonable amount of time. And that you'll keep learning as time goes by.

Ps. Just having a hobby project goes a long way, especially a hobby project in a field you're trying to learn.

mikek
+2  A: 

I wouldn't be as worried as you "sound". Look at it this way:

  • You've been writing applications in an object oriented language.
  • You've been writing applications in a .NET language.
  • You've been writing applications on the .NET Framework.
  • Most importantly, it sounds like you've been writing quality applications that are integral to the core of your company.

If you really want to get into ASP.NET development, I'd focus more on things like JQuery, CSS, and making sure your HTML is up to par (no tables for layout). The basics of web development go a long way.

Of course, any good book will help. Plus, learning ASP.NET MVC will put you above many other candidates.

Aaron Daniels
Thanks for that! You're right. I'm spending more time learning CSS at the moment.
GenericTypeTea