

Ask HN: Is .NET knowledge useless? - meaydinli

Hi,<p>I am a new graduate. I will be continuing my education with a masters in CS in University of Cincinnati.<p>My question is; is .NET knowledge useless?<p>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.<p>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.<p>Should I switch to php+*nix+nosql, and start learning those?
======
mgkimsal
Not sure where you're looking:

[http://www.indeed.com/jobtrends?q=C%23,php&l=](http://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!

~~~
vyrotek
Dude we're a startup and we're a complete .Net stack! :) We're even using
Windows Azure! (see profile)

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.

~~~
mgkimsal
That's cool that you are. I'd suggest you're probably in a minority, but good
luck to you all the same. The ability to execute on ideas is the most
important thing, and if it's easier for you to execute using a .NET stack,
fantastic!

~~~
ScottWhigham
What minority is that exactly that they are in? .NET vs what exactly?
"Microsoft vs. Open-Source" maybe? Or ".NET vs. Haskell"?

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...

~~~
mgkimsal
To be clear, it's my gut feeling - based on the personal experiences, that
most web-based startups are _not_ using the MS platform for a variety of
reasons, pricing being one of them. The "vs" example above would simply be
".NET vs non-.NET" If you think .NET-oriented web-based startups have a > 50%
share of that market, I'd _really_ be curious as to any evidence (even
anecdotal) for that belief.

"startup C#" - 818 jobs
[http://www.indeed.com/jobs?q=startup+C%23&l=](http://www.indeed.com/jobs?q=startup+C%23&l=)

"startup php" - 1373 jobs
[http://www.indeed.com/jobs?q=startup+php&l=](http://www.indeed.com/jobs?q=startup+php&l=)

However: "php" has 17236
[http://www.indeed.com/jobs?q=php&l=](http://www.indeed.com/jobs?q=php&l=)

"C#" has 41446
[http://www.indeed.com/jobs?q=c%23&l=](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)

------
duckpunch
You should be careful in thinking that you have to choose. In fact, regardless
of what you do with .NET, I think it's a good idea to learn about the *nix
environment and some languages that you're not yet comfortable developing in.

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.

------
michael_dorfman
If you're going to be continuing your education with a Masters from U of Cinn,
you're going to be using whatever tools they use in their curriculum.

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.

------
tunaslut
Nothing wrong with .NET - perhaps one of the reasons it doesn't look like it
is being used is because it's more corporate. Startups don't use M$ for a
variety of reasons....cost is a big one - have you seen licence fees for sql
server? insane I tell you! That said, I believe stackoverflow is .NET MVC
so...not huge like facebook, but certainly an excellent product with an active
community.

.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.

------
dagw
There are tons of .NET jobs out there. They're just not at 'cool' small web
startups (like Facebook). Pick any Fortune 1000 company (or any of the
consulting companies that those companies use) and you'll find plenty of .NET
jobs within their walls.

------
damoncali
.NET, for the most part, is a big company framework. There are startups that
use it (I used to work for one), but concentrating solely on .NET stacks the
odds unfavorably if you want to work for a startup. You can always learn more
than one stack, of course.

------
Quiark
Don't worry, if you plan to be a good developer, you will know both
technologies (and even more). So right now you can pick safely either of them.
Yes, it's that simple :)

------
r3570r3
Mainstream application development needs .NET and Java. They are the dominant.
Others, are backends made in Lisp, Prolog, C++ and others..

