Worried About Your .NET Skills?
- select the contributor at the end of the page -
I've been in the software biz since my first job at 16 (yeah, that means 28 years now) and the one thing that has always been consistent is that technologies change…but old technologies do not go away. The most recent example of this is Silverlight. After teaching it full-time for five years, I got a lot of flak when it went into "maintenance mode" at Microsoft. But the reality is that many companies are using Silverlight and Silverlight isn't going away any time soon. Same for Windows Forms, ASP.NET Web Forms, VB6 and even MFC. The question you have to ask yourself is whether you want to stay with the older technologies or learn new ones.
Should I Stay or Should I leave?
It's a complex question. I like to tell the story that earlier in my career I was asked whether I wanted to enjoy development or make money. I couldn't necessarily do both. We were interacting with a hospital system that used MUMPS. MUMPS (or M) is a system that uses a schema-less database (e.g. NoSQL) to store data for high-volume transactions. Of course, that sounds like a new technology but in fact it was designed in 1966 and still exists in the biggest hospitals and banks. Do you want to be a MUMPS developer? The handful of them left are making quite a lot of money. But it's not new. That may not matter to all of you but it will to some. This is the same for most technologies. Sure, AngularJS, NodeJS, and Python are sexy but the pool is bigger since bored developers are learning them in large swaths.
You have to answer that fundamental question…do you want to learn something new or is it a job and being an expert on a specific technology enough for you and your family? There is no 'cool' hierarchy here. Every developer is different and what is important to you isn't important to everyone. It's a very personal decision.
.NET isn't going away either but some of the technologies you're using might become less in demand (the aforementioned Windows Forms, ASP.NET Web Forms, Silverlight, et al.) but the best developers in these technologies will always have a place. Of course, you could decide to move to the newer .NET techniques like ASP.NET MVC, Web API and WinRT. Making a decision to learn the newer technologies will open up new opportunities but perhaps move you to compete with a larger pool of developers. It all depends on what you really want.
Web Development Today
In a typical day of development, I use ASP.NET MVC to do about 30% of the work of most of my sites; and 70% I use client-side code. Ironically, the client-side code I write is much like the Silverlight work I was involved in. I believe this is where we're going (and there is ample evidence to support that). Richer client-side web experiences are becoming the norm. Trying to create these experiences with older technologies like Web Forms is going to be painful. But using your .NET skills to build great web sites isn't as far as you might think.
Especially if you're coming from desktop development, web development can seem overwhelming. Just a glance at the acronym jungle (e.g. CSS, HTML5, MVC, etc.) can strike fear into the heart of most people. But the reality is that there are a lot of little skills. Little skills. Most of these you've done before, but in a different format. Structuring pages in HTML5 isn't fundamentally different from VB6 forms, Windows Forms or XAML. Data binding is still there. Calling services may be a new layer for some, but most of us have been separating the calls to the server for some time. It's just code.
If You're Ready
- Debugging the Web with FireBug, WebDeveloper, and Fiddler
- Web API Design
- A Better CSS: LESS and SASS
- Building a Site with Bootstrap, AngularJS, ASP.NET, EF and Azure
If You're Not…
But to be clear, if this isn't your path it doesn't mean you're a bad developer. There are great developers working on every kind of technology. Moving to a new technology doesn't make you a good developer; either you are or you aren't. Don't let the 'cool kids' mentality bruise your ego.