This article is a fairly valueless press release for Dice, but be that as it may: there are no shortages for developers, there are only shortages for developers at the wages employers are willing to pay.
Part of the problem, for these .NET and Java jobs, is the job itself, not necessarily the pay. I get a half dozen calls per week for crappy internal .NET SharePointy positions at near the same salary I'm making. I wouldn't want to do those jobs for 150% of the salary.
Folks that like to program, usually don't like to write back office apps.
In addition to being unable to pay what the market demands, companies (from my anecdotal perspective) also don't have any desire to train new developers into positions.
It seems the enterprisey .NET shops interviewed already hired all the crappy .NET developers who are willing to work for that kind of money and now they would have to move to more expensive ones than the ones they had before. Their reluctance is easy to explain.
Programmers are interesting animals - the good ones work for fun. As long as their bills are getting paid and work is interesting, they stay. Give them a brain-dead job, like anything Sharepoint-related, and they leave.
I'm not sure those figures tell you much. Java and .NET jobs tend to be in different parts of the country depending on the culture of the city. .NET jobs are concentrated in the east, where cost of living is much lower, and Java jobs are more concentrated in the west.
Dice believes that developers are worrying that if they specialize in .NET development, they won’t be able to branch out to other platforms.
That's a valid concern, in my opinion. I don't know why, but even talented Microsoft developers I've spoken to have been woefully unaware of developments outside of the .Net/ASP sphere. It's almost as if innovations don't exist until they've been incorporated into the CLR. I've seen similar attitudes in Java developers, but it appears to be far worse in the .Net community.
That was, in fact, one of the reasons I chose to keep practicing other programming languages while I was employed by a .Net shop. I didn't want to end up "stuck" knowing only .Net like so many of my co-workers.
I didn't want to end up "stuck" knowing only .Net like so many of my co-workers.
I'm in the same boat. It's a shame too, in my mind at least, because I really do enjoy working with the better parts of the platform (MVC, WCF, C# 4, VS 2010, etc).
I'm currently working in a .Net shop and the work is not terrible by any means (it's a fairly large scale web application used by school districts), but I'm starting to fall out of love with the MS lock-in and general attitude of the folks I've worked with so far. I'm pretty sure 95%+ of my current and past co-workers have no idea what hacker news is (or even /r/programming for that matter). The general reaction when telling someone about my side projects learning Scala/node/rails/etc on my (gasp) Mac at home is along the lines of "huh?".
I worked in .Net shops for a few years, back in the days before .Net MVC. Part of the reason people ended up (and maybe still end up) stuck in .Net might be because back then, as soon as you tried stepping outside of the .Net webforms box (i.e. tried to do anything remotely interesting) things because exponentially complex. Keeping all of the .Net classes and foibles in my brain during my day job was enough for me not to want to learn the intricacies of a different system in my off time.
That was years ago though... and since then I've happily moved on to being self-employed and using OSS.
In my experience, looking at it from the other side is even worse. In fact, it's so bad that as soon as they hear Microsoft their brain shuts down. They get this emotional reaction that makes any rational discussion difficult if not impossible.
You might be well-served to differentiate between "Enterprise .NET" and ".NET". I'd agree with a lot of what you're saying if it's applied to folks who "think in ASP.NET", but outside of that? Not so much. You've got Mono developers, who tend to bounce between Windows and OS X pretty regularly and a bunch of other folks who are at least aware of the stuff on the other side of the fence. And then you've got folks who use it as a tool--appropriate in some situations, not appropriate in others.
(As noted in a sibling comment, it's also very common to see people turn their brains off rather than entertain .NET as a sometimes-appropriate tool.)
I myself am a ASP.NET MVC developer by day, and play with Node.JS by night. I agree with you on the difficulty in moving outside the .NET world, but I will say ASP.NET MVC isn't nearly as bad as webforms. Webforms abstracts so much of how the web works away that that it's extremely difficult to wrap your head around anything else. And like you said, because the abstraction is so deep, it's very difficult to make room in your mind for anything BUT webforms. With ASP.NET MVC, I've found very little difference. The majority of the coding for most modern CRUD apps is on the client-side anyway, so the majority if your knowledge is transferable to Node.js. Express and ASP.NET MVC both follow a restful model, and I already had experience working with closures, async calls,from client-side javascript, so I haven't found the conversion to be very difficult at all.
See: ASP.NET MVC... it took years until the "official" framework came along for anything even close to sane became more mainstream in .NET web development.
Yes, there were other "Rails for .NET" frameworks out there. But, you are correct: the vast majority of .NET developers are waiting for the official Microsoft seal of approval before adopting anything. It's part of the culture that comes with choosing Microsoft for your stack: you want support, or at least somebody to sue when it goes wrong.
Part of the problem is that in Enterprise .NET, it's hard to convince your boss to use a non-MS solution. Unfortunately, a lot of .NET is done in the Enterprise environment, which results in a population of programmers that live in a very big bubble.
I was in that position. I professionally used .NET since its inception up until about 4 months ago. I switched to a JavaScript job at a company that doesn't use any MS tech at all. Not wanting to get stuck shoehorned as an MS-only developer was a major motivation for me making the switch.
This will be an interesting one to watch. I know a ton of great .NET developers who have bailed on the platform and switched to open source. This is anecdotal for sure, but if this is a huge trend then you're left with a bunch of companies with huge investments in a platform, and an ever decreasing number of developers who can actually code effectively for it. The salariesrates should go up, but these typical corporate .NET clients are cheap motherfuckers. I'd predict a resurgence of offshore consulting to meet demand.
However it does seem like devs for every technology are in high demand and low supply. It could just be as simple as that.
I'm a .NET fanboy, but the likelihood of me ever working for a .NET shop is next to nil. The work is just not interesting. Sure, if I just wanted to collect a (almost decent) paycheck, I'd do it, but given that there are a dozen other niches I can work in, I'll pick any of them over the .NET world. The only way I'd be converted is a massive paycheck and at least some interesting problems, but neither of those seem to exist in the .NET world, by and large.
The 2 .NET shops I was in had a pretty bad way of commoditizing the developers working there (and thus started believing offshoring was the way in this, the year of our lord, 2011).
This also led to them working in bringing the code to the lowest common denominator level and was a frustrating nightmare. I was a lone wolf and when I mentioned that I had implemented a couple systems using MVC and jQuery on the front end it blew some of the developer's minds. It's a shame because the framework is capable of a lot, it's just the enterprise shops are terrible of taking advantage of it.
Needless to say, I'm not a .NET developer anymore.
I doubt that is the case. With employment at record highs and good jobs not available I don't think people would rather sit idle than take up a job in .Net. The article can also be rephrased as "Demand for .Net developers surges." Of course it won't be as newsworthy then :)
21% were looking for .NET developers with 8-10 years experience.
Wikipedia tells me that .NET 1.0 was released in February 2002, 8.5 years ago. Good to see recruitment companies and HR depts have such realistic requirements. (Still, at least they aren't asking for anyone with 10+ years experience)
I started coding .NET around 1.0. Completely anecdotal but out of the dozen+ people I knew that dove in at the time - zero are still actively involved in .NET.
I rarely take a .NET contract. But what I can say is 1) They always pay my highest rates. 2) Generally it's a bad / scary experience in comparison to python or Clojure (where I do the majority of my work and contracting).
at least in the case of MS technologies, the developers were exposed to the most of the components (or their previous incarnations) of the platform well before official .NET packaging. I'm still wondering what good candidates were placed into one position i came across in 2005 that had 10-12 years of J2EE experience requirement. Somehow i was scared to apply to such a place - as i only worked with Java since 97 and with J2EE since 99 :)
Perhaps off topic a bit, but here's a recent run in with a .net shop.
I was brought in to work on a project. They'd installed a PHP-on-Windows setup for me because I was introduced as a "PHP guy" (which I mostly am, but I do other stuff as well). I indicated I could do the project in ASP.Net, but it would take me a bit longer because it's not my main platform. No... they needed it done ASAP, and were prepared to be a mixed shop. They were already running another PHP app on Windows already, so this was a natural progression. They were already having trouble finding .net people in the area - freelance or otherwise, so it seemed a concession they were willing to make. Find available talent, get job done faster, move on.
Project was done in July and August, then went up the approval chain. I was expecting to come back at end of Sept with a list of changes to make.
"Well.. our developer ported it to .net because that's what he's more comfortable maintaining."
So... rather than spending some time getting comfortable with PHP, they spent time reworking something in to ASP.Net, negating my work, and meaning there was a couple of weeks of other internal .net work not getting done either.
What does this have to do with .net developer shortage? Maybe nothing, or maybe those companies could be more productive by having staff that could work with mixed tech stacks more effectively. I'm stereotyping a bit - we've all met developer X who only knew one technology, and every problem had to fit within that one tech worldview. I've found it with zealots of all stripes, but perhaps it hurts a bit more at the enterprise level?
I know I'll get down voted for saying this but I just have to do it - could it be that developers no longer want to work for boring corporate assembly-line level "lets make yet another database front-end for yet another inventory management system"? Could it be that people who like to code actually care about the code and tools that they are using? Could it be that developers are seeing the writing on the wall about Microsoft and are leaving in droves?
I work for a .NET based startup doing fun and interesting things, so I know that C# and .NET can actually be fun to code in. However, most, if not all, of the .NET job listings I see on Twitter are boring soul-killing enterprise jobs. Or worse, Sharepoint!
Fortunately, there seems to be a renaissance going on at MS. They realise they no one likes working with their shit tools. Sure MS technology may "run the world", but all the cool/fun stuff is being done in the OSS stack. When was the last time you heard of a hot startup using .NET? MS wants in on the party and a lot of their new stuff has a deliberate non-enterprise angle with a focus on developer enjoyment.
I run a .NET shop where we do pretty interesting stuff, and it is sooo hard to recruit decent .NET developers. The first step of my recruiting process is a simple, but moderately challenging algorithm in C# to complete at the candidate's leisure and send to me. 80% - 85% don't come close to getting it right even though acceptance criteria are part of the very simple instructions.
Can you reveal the algorithm you are asking them to implement? Your anecdote is interesting in the context of the recent stories about a lot of programmers not being able to solve the fizz-buzz problem.
A lot of talk here about the types of businesses that normally do .NET work and how they aren't very good to work for, so I figure here's a good place to ask for some advice.
I've been working full time as a .NET dev and doing my degree part time for the last 5 years, graduating next month hopefully around the top of my class. I enjoy .NET, particularly ASP.NET MVC, and my current job has let me have full control over the development workflow, I use TDD,Git,MVC,Jquery etc. Looking at what I should do next if I was to change jobs it kind of feels like russian roulette trying to find a company here in Brisbane, Australia that hires good devs to do interesting .NET (or any development work) while paying well and without being a sweat shop.
My question is, where should I branch to if not in .NET? Java seems like the other big area around here but its all enterprise stuff as well. I've done some mobile development in my own time, got a couple of apps on the iOS app store and some Android on the way. One of which uses a NodeJS/MongoDB back end, but I'm not sure there's that many jobs around here for that (iOS/Android development may be a good option, though I do like web dev). I'll be looking to relocate in a few years, but for now, does anyone have any suggestions for what framework/language I should learn next?
To all the people here who said they moved away from .NET due to the kinds of employers and fellow developers that use it, where did you move into and how did that work out for you?
If you're looking for particular non-mainstream framework/langues jobs in Brisbane (Node.js being one of them) you should hang around in the Meetups (MeetupJS). Good place to get noticed and job offers.
It's unfortunate that all non-software industry companies are getting tarred with the ".NET Shop" brush, because much depends on the company culture and who is running the development group. I've worked in some great gigs (and one or two awful ones) in settings you might not expect to be interesting and fun.
I'm hiring at the moment, and it's definitely in the "great gigs" category. Bonus, as part of this gig I occasionally get paid to ski and climb. Not that this has helped me find good candidates yet.
In other news, there is an excess of agencies who aren't offering real jobs, but are just collecting resumes to hand off to clients without even reviewing.
[+] [-] patio11|14 years ago|reply
[+] [-] euroclydon|14 years ago|reply
Folks that like to program, usually don't like to write back office apps.
[+] [-] mey|14 years ago|reply
[+] [-] rbanffy|14 years ago|reply
Programmers are interesting animals - the good ones work for fun. As long as their bills are getting paid and work is interesting, they stay. Give them a brain-dead job, like anything Sharepoint-related, and they leave.
[+] [-] blacksmythe|14 years ago|reply
"Why the shortage? ....NET developers earn around $83,000 per year, but Java developers typically make more than $91,000."
[+] [-] CWuestefeld|14 years ago|reply
[+] [-] MatthewPhillips|14 years ago|reply
[+] [-] StrawberryFrog|14 years ago|reply
[+] [-] earl|14 years ago|reply
[+] [-] quanticle|14 years ago|reply
That's a valid concern, in my opinion. I don't know why, but even talented Microsoft developers I've spoken to have been woefully unaware of developments outside of the .Net/ASP sphere. It's almost as if innovations don't exist until they've been incorporated into the CLR. I've seen similar attitudes in Java developers, but it appears to be far worse in the .Net community.
That was, in fact, one of the reasons I chose to keep practicing other programming languages while I was employed by a .Net shop. I didn't want to end up "stuck" knowing only .Net like so many of my co-workers.
[+] [-] dbattaglia|14 years ago|reply
I'm in the same boat. It's a shame too, in my mind at least, because I really do enjoy working with the better parts of the platform (MVC, WCF, C# 4, VS 2010, etc).
I'm currently working in a .Net shop and the work is not terrible by any means (it's a fairly large scale web application used by school districts), but I'm starting to fall out of love with the MS lock-in and general attitude of the folks I've worked with so far. I'm pretty sure 95%+ of my current and past co-workers have no idea what hacker news is (or even /r/programming for that matter). The general reaction when telling someone about my side projects learning Scala/node/rails/etc on my (gasp) Mac at home is along the lines of "huh?".
[+] [-] acabal|14 years ago|reply
That was years ago though... and since then I've happily moved on to being self-employed and using OSS.
[+] [-] pbz|14 years ago|reply
[+] [-] eropple|14 years ago|reply
(As noted in a sibling comment, it's also very common to see people turn their brains off rather than entertain .NET as a sometimes-appropriate tool.)
[+] [-] vailripper|14 years ago|reply
[+] [-] jcromartie|14 years ago|reply
Yes, there were other "Rails for .NET" frameworks out there. But, you are correct: the vast majority of .NET developers are waiting for the official Microsoft seal of approval before adopting anything. It's part of the culture that comes with choosing Microsoft for your stack: you want support, or at least somebody to sue when it goes wrong.
[+] [-] jinushaun|14 years ago|reply
[+] [-] city41|14 years ago|reply
[+] [-] jcromartie|14 years ago|reply
[deleted]
[+] [-] nestlequ1k|14 years ago|reply
However it does seem like devs for every technology are in high demand and low supply. It could just be as simple as that.
[+] [-] daeken|14 years ago|reply
[+] [-] okaramian|14 years ago|reply
This also led to them working in bringing the code to the lowest common denominator level and was a frustrating nightmare. I was a lone wolf and when I mentioned that I had implemented a couple systems using MVC and jQuery on the front end it blew some of the developer's minds. It's a shame because the framework is capable of a lot, it's just the enterprise shops are terrible of taking advantage of it.
Needless to say, I'm not a .NET developer anymore.
[+] [-] TallTalesOrTrue|14 years ago|reply
[+] [-] rmc|14 years ago|reply
Wikipedia tells me that .NET 1.0 was released in February 2002, 8.5 years ago. Good to see recruitment companies and HR depts have such realistic requirements. (Still, at least they aren't asking for anyone with 10+ years experience)
[+] [-] jmatt|14 years ago|reply
I rarely take a .NET contract. But what I can say is 1) They always pay my highest rates. 2) Generally it's a bad / scary experience in comparison to python or Clojure (where I do the majority of my work and contracting).
[+] [-] ghurlman|14 years ago|reply
[+] [-] cpeterso|14 years ago|reply
They could be looking for developers with 8-10 years of experience as developers but who also know .NET.
[+] [-] VladRussian|14 years ago|reply
[+] [-] dsolomon|14 years ago|reply
http://seeker.dice.com/jobsearch/servlet/JobSearch?op=302...
[+] [-] mgkimsal|14 years ago|reply
I was brought in to work on a project. They'd installed a PHP-on-Windows setup for me because I was introduced as a "PHP guy" (which I mostly am, but I do other stuff as well). I indicated I could do the project in ASP.Net, but it would take me a bit longer because it's not my main platform. No... they needed it done ASAP, and were prepared to be a mixed shop. They were already running another PHP app on Windows already, so this was a natural progression. They were already having trouble finding .net people in the area - freelance or otherwise, so it seemed a concession they were willing to make. Find available talent, get job done faster, move on.
Project was done in July and August, then went up the approval chain. I was expecting to come back at end of Sept with a list of changes to make.
"Well.. our developer ported it to .net because that's what he's more comfortable maintaining."
So... rather than spending some time getting comfortable with PHP, they spent time reworking something in to ASP.Net, negating my work, and meaning there was a couple of weeks of other internal .net work not getting done either.
What does this have to do with .net developer shortage? Maybe nothing, or maybe those companies could be more productive by having staff that could work with mixed tech stacks more effectively. I'm stereotyping a bit - we've all met developer X who only knew one technology, and every problem had to fit within that one tech worldview. I've found it with zealots of all stripes, but perhaps it hurts a bit more at the enterprise level?
[+] [-] vparikh|14 years ago|reply
[+] [-] jinushaun|14 years ago|reply
Fortunately, there seems to be a renaissance going on at MS. They realise they no one likes working with their shit tools. Sure MS technology may "run the world", but all the cool/fun stuff is being done in the OSS stack. When was the last time you heard of a hot startup using .NET? MS wants in on the party and a lot of their new stuff has a deliberate non-enterprise angle with a focus on developer enjoyment.
[+] [-] unknown|14 years ago|reply
[deleted]
[+] [-] Delmania|14 years ago|reply
[deleted]
[+] [-] jackfoxy|14 years ago|reply
[+] [-] haasted|14 years ago|reply
[+] [-] rodh257|14 years ago|reply
I've been working full time as a .NET dev and doing my degree part time for the last 5 years, graduating next month hopefully around the top of my class. I enjoy .NET, particularly ASP.NET MVC, and my current job has let me have full control over the development workflow, I use TDD,Git,MVC,Jquery etc. Looking at what I should do next if I was to change jobs it kind of feels like russian roulette trying to find a company here in Brisbane, Australia that hires good devs to do interesting .NET (or any development work) while paying well and without being a sweat shop.
My question is, where should I branch to if not in .NET? Java seems like the other big area around here but its all enterprise stuff as well. I've done some mobile development in my own time, got a couple of apps on the iOS app store and some Android on the way. One of which uses a NodeJS/MongoDB back end, but I'm not sure there's that many jobs around here for that (iOS/Android development may be a good option, though I do like web dev). I'll be looking to relocate in a few years, but for now, does anyone have any suggestions for what framework/language I should learn next?
To all the people here who said they moved away from .NET due to the kinds of employers and fellow developers that use it, where did you move into and how did that work out for you?
[+] [-] dekz|14 years ago|reply
[+] [-] BadassFractal|14 years ago|reply
[+] [-] matrix|14 years ago|reply
I'm hiring at the moment, and it's definitely in the "great gigs" category. Bonus, as part of this gig I occasionally get paid to ski and climb. Not that this has helped me find good candidates yet.
[+] [-] dsolomon|14 years ago|reply
[+] [-] wavephorm|14 years ago|reply