

Ask HN: .NET vs. PHP/Python/Ruby - pepperbrooks

I'm a 24-year-old liberal arts major in Kansas City looking to start a career as a developer. I've been teaching myself C from cs50.tv, which has been great for learning programming fundamentals.<p>Right now I'm having a tough time deciding what language to focus on so I can get my first job as a developer. I think I've narrowed it down to two areas: .NET or PHP/Python/Ruby. (I ruled out Java because it seems like every computer science major already knows it, making it more competitive.)<p>.NET is definitely in demand where I live. There don't seem to be as many Dice job postings for PHP/Python/Ruby people. I know Python and Ruby are "sexier" languages, but at this point I'm just trying to find stable entry-level employment at a decent salary.<p>What are your thoughts?
======
sfdfadds
"I ruled out Java because it seems like every computer science major already
knows it, making it more competitive."

Incorrect. There are more Java and .Net positions out there, and people hire
for experience, so as soon as you have any measurable experience, you have a
good chance of finding a job. Java usually pays more than PhP/Ruby/Python, and
so does .Net. CS majors have an edge for a short amount of time over the long
haul of a developer's career. Not having a CS/MS CS/PhD CS can get in the way
of getting some jobs, but apply to them anyway. Experience usually counts more
than education, except for places like Google that have insane interviews.

If you want job security and to be able to work anywhere, go Java and/or .Net.
As part of Java and learning the JVM, you have a good base for JRuby, Android
(like a specialized Java subset), Groovy/Grails (Java-based), Scala (runs on
JVM), and Clojure (runs of JVM).

------
mrhyperpenguin
Since there are .NET jobs where you live, I would say try and get a job doing
that so you can get experience as developer rather than getting experience in
a particular language.

Developers learn new languages all of the time. Instead of worrying about a
specific language, learn what's common to all programming languages first
(software development cycle, testing, VCS's, etc.) because employers (speaking
from my own experience) value those skills rather than knowledge in a
particular language.

You might also want to check out IronPython (<http://ironpython.net/>) which
is basically Python for .NET.

------
arebop
C# is a nice language, too bad about its owner. PHP is a pretty ugly, but it's
widely used.

Are you just looking for a way to make money, or do you think that software
might be your calling? Dice is giving you an accurate view of a large segment
of the labor market, one that has plenty of entry-level, dead-end opportunity.
You could advance your career for maybe five years, and then you will either
stagnate or switch to management. At that stagnation point, you'll be making a
comfortable living, and that might be satisfactory for you.

For entry-level jobs with career-growth prospects, you don't need years of
experience with any particular language. C would be fine, as long as you can
use it well for 30-minute exercises under pressure on the whiteboard. What
kind of exercises? Expect to see the sorts of questions TopCoder asks in its
algorithm competitions, or the ones Google asks for Code Jam.

Finally, I'd suggest that you consider the community around the language you
pick. The culture around Ruby is much different from the culture around .NET.
Which group of people do you want to work with every day?

