Ask HN: Is .NET knowledge useless?
Hi,
I am a new graduate. I will be continuing my education with a masters in CS in University of Cincinnati.
My question is; is .NET knowledge useless?
Everywhere I look, everyone is using * nix + php + nosql/mysql/postgre. By everywhere I mean giants like Facebook, or any startup job post I look at.
I admit I am no expert but I like .NET, particularly C# and MSSQL. I enjoy using Visual Studio, mostly because it lets me create very fast. I love it's support tools like IntelliSense.
Should I switch to php+*nix+nosql, and start learning those?
12 comments
[ 4.6 ms ] story [ 43.8 ms ] threadhttp://www.indeed.com/jobtrends?q=C%23,php&l=
There's quite a lot of C# jobs out there, but I doubt there's many in the 'dude we're a startup' scene. Perhaps there's where you're looking? The C# jobs are going to tend to be in larger corporate America (in the US, obviously.
Personally I think MS has been painting themselves in to the corner of only being a viable toolset for larger corporate America due to their pricing. They acknowledge this themselves with programs like BizSpark and WebsiteSpark.
It's a good language, and .NET is a powerful framework, just very tied to the Windows platform (mono notwithstanding). And the Windows platform is pretty expensive compared to other platforms. Although the tools are very nice, if it comes down to spending thousands on premium tools vs saving thousands and learning to do stuff 'by hand', most startups choose the 'by hand' route. BizSpark and/or WebsiteSpark can help reduce that upfront cost for a few years, but at some point you'll need to pay the piper.
If you want to work in a startup working in the web space, PHP/Ruby/Python will be the way to go. Those are even runnable on Windows - MS has made a lot of commitment to getting PHP running well on Windows. If you're looking for a high-paying corporate job, C# may be the better route, depending on where you're located. Oh, you're on Cinci - there should be a lot of options between Cinci, KY, IN, and perhaps TN or PA. You're a few hours from a lot of places.
Good luck!
We have some experience in other frameworks as well but .Net is by far our favorite. We've been happy so far with the BizSpark program too.
I'd think they are the minority on HN but I always chuckle at people who think all startups post/read HN and thus HN is representative of the entire startup culture...
"startup C#" - 818 jobs http://www.indeed.com/jobs?q=startup+C%23&l=
"startup php" - 1373 jobs http://www.indeed.com/jobs?q=startup+php&l=
However: "php" has 17236 http://www.indeed.com/jobs?q=php&l=
"C#" has 41446 http://www.indeed.com/jobs?q=c%23&l=
C# has a much higher number of job postings, but far fewer with the word "startup" in the post.
Yes, totally unscientific, but it seems to indicate what I'm seeing in the real world. Looking at my own network, which includes a variety of .net, php, ruby, python and java folks, the overwhelming number of people involved in bootstrapping, freelancing or startup endeavours are not using .NET.
Again, I point to websitespark, bizspark, and MS' own efforts in helping PHP operate smoothly on their own platform. 10 years ago PHP was laughed at by most MS people I know. Today, it still is by many of the same people, but Microsoft as a company must see enough demand for it that they spend time with some of the PHP development team making sure that PHP runs smoothly on Windows. MS now provides a one-click installer for PHP on top of that.
Yes, certainly, all this is simply anecdotal, and I've absolutely no way of knowing for certain how many 'startups' use .net vs not using it. When people still refer to facebook as a 'startup' perhaps the term has lost all meaning whatsoever, and anyone who's opened a company in the past 15 years is now running a 'startup'. But again, I fall back to my own experiences in and around my network. People * I know* using .NET are generally doing so in larger corporate environments (where it's much easier to afford all the tooling which makes .NET fun/easy to develop with) People I know in smaller orgs, smallbiz startup mode, or freelancing are generally not using .NET, primarily because of price.
The pricing is part of the motivation behind websitespark and bizspark programs of the past couple years. If MS themselves weren't seeing a defection in the smallbiz/startup scene away from the MS platform, I doubt we'd have seen these programs come in to existence in the first place. We certainly didn't see them 12 years ago.
This belief was also largely reinforced by casual 'in the hallway' conversations with attendees at the recent CodeStock event in Knoxville. While language-agnostic in theory, it's still largely an MS-oriented event, based on both attendees' background and session topics around 50% of the topics were .net-oriented)
That looks like Python and C++ in CS121-122, C++ in CS229, Lisp and Prolog in CS602, etc.
I would imagine that's going to be keeping you busy, but if you want to learn php on the side, sure, go for it. On the other hand, there's really nothing wrong with .NET, and there are lots of C# jobs out there, if that's what you're concerned about.
.NET, like any framework, has its quirks.....it can be a little frustrating sometimes with the way it tries to abstract you from the actual GETs and POSTs in webforms, but there you go. I do think the IDE and debugging is something that works fairly well in .NET. In fact, I often wonder if Microsoft couldn't just market their IDE and make it compatible with PHP/Ruby/Python etc rather than ASP per se.
At the end of the day, I like to think programmers use the tool best suited to the job at hand - languages are the tools, learn .NET, learn php, learn Ruby, heck dabble in everything that looks interesting even if just to get a feel for it - then you can make informed decisions based on experience.
Same with OS - doesn't matter which platform you are best on Windows/Linux/Mac - but at least get a feel for the others.
In my program at school I see a ton of students leaving university knowing nothing but one to three statically typed OO languages, and assuming that those paint an accurate picture of the full range of programming languages.
I'm not saying this is you, but if you're not comfortable outside of C#, Java, C/C++ etc. you're limiting yourself. Programming languages may be difficult to master, but you can glean a surprising number of lessons from one language by spending a few weeks with it. I think a few languages a year isn't asking for too much, and whether you use them or not, the lessons will transfer to the language you spend most of your time in.
If all of your programming experience involves using IDEs, do yourself a favor and spend extensive time in a powerful text editor like vim or emacs. While these editors might not have the advanced features present in IDEs, making the trade in favor of a more powerful programming language used in concert with a less powerful editor may actually make you more effective. The point is that you can't discern between the two until you've spent ample time in both. Being uncomfortable outside of an IDE can be a serious crutch as it keeps you using languages that the IDE can take full advantage of, and this excludes a number of languages that you should expose yourself to.
Nosql is an orthogonal issue. While relational databases are unlikely to ever go away, if nosql databases continue seeing success, there's no reason to think that seasoned .NET folks won't also make use of them.