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

3 points by pepperbrooks ↗ HN
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.

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

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

What are your thoughts?

3 comments

[ 7.3 ms ] story [ 30.7 ms ] thread
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?

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.

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