views:

156

answers:

8

I've been working in web development and design for the past 8 years, which breaks down like this:

Graphic Design: 8 years; HTML/CSS/Javascript: 8 years; ASP (VBScript) and SQL Server: 6 years; XML, XSLT, XPATH: 2 years; ASP.NET: Occasional exposure in VB and C#, nothing to write home about.

I'd like to move on, but instead of advancing, I'm shifting. My development duties fell away since I don't really know ASP.NET, and I'm getting slid into a position where I babysit a CMS, and should be focused on SEO.

I'm not sure where to go next, but I feel that while I have a good amount of development experience, I'm stuck.

Would going back to school for a master's degree (Bachelors is in Journalism) in computer science bring me to the next level? Or at this point would it be better to pick a technology (ASP.NET would fit in the direction I've been going) and work my way through the certification latter?

A: 

Would going back to school for a master's degree (Bachelors is in Journalism) in computer science bring me to the next level? Or at this point would it be better to pick a technology (ASP.NET would fit in the direction I've been going) and work my way through the certification latter?

I would recommend the latter. Given the current state of the world economy, in my opinion your best bet is to broaden your skill set to ensure that you can secure a job should your current one vanish.

The schools will be there when the economy improves. At that point, it may be safe to assume the additional debt that comes with higher education! ;)

Cal Jacobson
+1  A: 

Given that you've been programming web stuff for the past 8 yrs, I'd say don't go back to school. You're already at the point where you can learn new things... this is after all what our job requires us to do as software developers.

So, yeah.. I'd go with your 2nd choice. Choose your path "ie: web development" and expand on your skills there. By picking up .NET languages, like C# you will also get closer to being able to pick up desktop application development as well.

Steve Lazaridis
+3  A: 

I believe every developer should have a solid understanding of the fundamentals of computer science. Can you get this without getting a degree? Absolutely, but it takes a certain type of well-motivated individual to acquire it in an unstructured setting. Getting a Masters in computer science certainly should provide this fundamental understanding, but you will probably find that your lack of CS background will leave you with some catch up work vis-a-vis the CS students you are taking classes with.

The certification track will provide you with specific technical knowledge with regards to the chosen technology, but you will miss out on the conceptual framework that ties all of those technical details together. The concepts (the science as opposed to the engineering aspects of programming) are critical differentiators when it comes to exceling as a programmer. Certainly you can pick them up without a degree, but the degree path gives you a structured environment that addresses all of the basic ideas.

tvanfosson
+3  A: 

If you're looking to make a move soon, I would recommend that you spend your time increasing your skill set. A really good way to do this is to do personal projects or work on open source projects in the area you're interested in; then, when you go to potential employers, you can show them that you know what you're doing in the new area, even if you don't have any professional experience.

Getting a Master's in Computer Science will certainly get you more credibility in the marketplace, and will probably get you higher-paying positions, but to get in the door at all, you're going to need the specific skills that an employer is looking for. A Master's in CS will teach you a lot of theory, which is definitely important to know, but in most cases won't broaden your "practical" skill set.

In the best of all possible worlds, I would recommend picking up new skills, getting a job in an area you're interested in, and then pursuing a Master's in your spare time. There are a lot of working-professional-focused and distance-learning Master's degrees in CS out there.

MattK
A: 

If you are lucky enough to live in a city with a university that offers a CS master's degree program which both (a) is good and (b) will accept you without a CS undergrad degree, go for the master's degree. You may need to take some undergrad courses before they'll even talk to you. It's not only a fantastic way to learn CS theory and -- hopefully -- software engineering practice, but joining the right sort of research group often leads to career paths, and at least it's a great place to make connections.

If you have to take on student loans, those are much more manageable than most kinds of debt.

Joel Hoffman
A: 

You don't need to go to school to learn ASP.Net!

--Get Dino Esposito's ASP.Net books -- he explains everything happening under the covers, in a way that is more personable and readable.

--Learn everything you can about ASP.NET, know all your basic SQL stuff, know how to put them together with ADO.NET and/or LINQ.

--Understand ASP.Net "architecture" basics, like using DTOs, seperating out business logic, using an ORM, etc. Also, don't think that you always have to use these things, but have them in your toolbox for when they are useful or pre-exist.

--Read-up on some of the "new stuff" that you will encounter in future jobs and interviews, for example Agile, design patterns, LINQ, WCF, WPF, generics, etc.

--Find an exceuse in your current job to practice what you are studying--there will most likely be a simply utility or web site you could "volunteer" to create (or just do it on your own time), that will both help the cmopany and you.

If you study diligently you could come up to speed on the new technology within 1m-2m. Those specific skills will be more useful to you immediately than a CS degree. I'm not saying CS degrees aren't valuable and useful--but personally, I think they're more useful if you want to develop operating systems, low-level components, or program mars rovers for JPL. Best of luck!

alchemical
A: 

I am assuming you want to continue to work as a developer. You didn't explicitly say so and there are other options for someone with your experience, dev management, project/program management.

Staying in a job that keeps you coding I would recommend a hybrid approach. Go back to school as others have recommended but also get some hands on real world ASP .NET coding experience.

School will fill in those holes in your knowledge that all of us that are self taught have.

School will not teach real world ASP .NET coding which it sounds like a skill you're after.

A: 

I'd suggest going back to school if you know in what part of Computer Science you'd want to do a thesis as this tends to be the big thing about some Master's degrees. Another thought would be to go and get an MBA so that you have a deeper understanding from the business side of things to complement the technical skills you have. Another thought would be to go for something in the Management Sciences if you want to move up the corporate chain.

Certifications can be OK if you know that they mean something,e.g. going for an MCSE or MCPD. The key is to know whether or not this is something valued in your area since many places likely have differing levels of value.

Another idea would be to see if you could pick up something like Sharepoint in your current situation to round things out with something newer. Or you could go against the Microsoft stack and go for PHP or MySQL for another couple of ideas.

JB King