Choosing Your Next Programming Job — Perl Or .NET?
Trebonius asks: "I have just received two job offers in the same day. The first was for a job coding in Perl on Linux/UNIX platforms, for a small but very cool company around 120 miles from where I live. They play Half-Life together in the off-hours and the people I've talked to there seem very happy with the job and work environment there. I'd be making smallish web systems, and I'd basically have total control over the projects on which I work. They offered me 20% more than I make now. The second offer I received is for a huge nationwide company opening an IT office a couple blocks from where I currently work. They're an all-Microsoft shop — VB, C#, .NET, SQL200*, etc. I'd be a very small cog in a very large machine. They offered me 66% more than I'm making now. Benefits are essentially identical between the companies, so that's not a big factor. I'll also give the Perl company a chance to make me another offer, but what should the threshold be? How do you folks balance the desire for a fun job with the need to pay off debt?"
Most of my work experience is in Microsoft development, though not by choice. It was my first job out of college. In my own time, I run Linux, write in PHP, Perl, MySQL, etc. I don't like developing in .NET much, but I'm used to it, and the money's good.
How do I choose? The money issue is huge, of course, and I think I'd much prefer the Perl job in terms of development preference and work environment. However, I've got the impression that Perl web development doesn't have the future potential in the professional world that .NET has. A search of Dice shows a lot more .NET jobs. Would taking the Perl job hurt my prospects in the future?"
How do I choose? The money issue is huge, of course, and I think I'd much prefer the Perl job in terms of development preference and work environment. However, I've got the impression that Perl web development doesn't have the future potential in the professional world that .NET has. A search of Dice shows a lot more .NET jobs. Would taking the Perl job hurt my prospects in the future?"
There's a thing called Perl.NET.
This seems to be the crux of it, at least to me. Debt can seriously limit your options, now and in the future. If the debt you refer to is significant, taking the higher paying job now and resolving that issue would probably let have more freedom in picking your workplace in the future. If you are debt-free taking a job for less money but which is more interesting is surprisingly more palatable than if the bank is knocking down the door :)
try to install a linux distribution for PCs without the Perl packages and see if it will work ...
... for better or worse, Perl5 is the next COBOL ;) meaning there are huge custom apps built with Perl that won't be replaced in a hurry
as far as I can see, the demand is not great, but quite stable
I'd either stay away from the Perl shop, or join up and try to convert them to another platform. It will come back to haunt you in a few years when you have to support a mess of spaghetti.
.Net, and even C for enterprise web applications, I would say Perl is far from an ideal choice for enterprise apps today.
Perl is a great language for lots of things, but as someone with lots of experience with Perl, Ruby, Java, PHP,
True, it is possible to write great apps in Perl. It's also great for simple small quick apps. But it's difficult to impossible to keep code clean as the app grows to a larger scale (think above the 100,000 LOC mark). It also has a very poor object model for encapsulation.
Personally, I am a big Ruby fan nowadays for web apps. A very close second on my list is Java.
Just my $0.02
Something that I learned early enough to make a difference, but late enough to lose momentum is that your next job depends on your current job. Here's what I mean. If you are making X then you can expect your next job to be at least x + .15x or a 15% increase. I would never leave a job for more than a 15% increase unless there were serious problems. Taking the Perl job sounds like a ton of fun, but remember than smaller companies often need longer hours. The side benefits are nice, but there are usually needs on the side too. If you take the smaller raise, you will probably find yourself still working towards that x + .66x income in 5 years. If you take the .NET job you will be looking for the salary of 1.66x + .15(1.66x) rather than 1.2x + .15(1.2x)
;-) and it gets old fast.
To take the math out of this you will be playing salary catch up for years and probably won't catch up for a long time if ever. I turned down a 60% raise 7 years ago and just caught up to that level last year. If I'd taken that money then, I would be much farther ahead right now.
Let me qualify this by stating that MONEY ISN'T EVERYTHING. I understand that, but I have a wife and a son and they aren't cheap.
If I were you and didn't have a huge preference between languages, I can play Half-Life at home thank you very much. Besides every time I play almost any game with co-workers they're a bunch of peon n00bs anyway
Money does mean something, otherwise we'd all be working on software projects and just giving it away... wait a second....
Dissenter
"There is no knowledge that is not power."
OK, here's the straight stuff.
The goal is to find a job that you can survive over the long term, but to extract as much money as you can while you're there.
Measure yourself against this.
So, figure out what you're really going to make/hour using some of the above concepts. Count all of the time from the moment you leave the house to the moment you get home and add/subtract the work-related time savers. Now you'll have two numbers to compare, this makes the question easy, "what am I sacrificing for X $/hour". This will tell you what your time is really worth.