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?"
Take the money and run, my friend.
Would taking the Perl job hurt my prospects in the future? .Net job. However. If you are a good programmer I don't think you have anything to worry about; you will be able to fit into any programmingjob now, or in the future.
I'd go for the Perl job and worry about prospects later.
By asking this question it seems that you value prospects over fun in what you do. If that is the case, go for the
Yes, I am the one with the legendary sig.
I've never, ever, seen a perl programmer making a huge amount of money, but with
Take the
If you wouldn't be happy in the .net job, don't take it. Unless you're in serious debt, it's better to go for the job you'd be happier in. Personally, I'd set the limit at a minimum of a 35% increase (as opposed to 66%) for the Perl job.
Do what makes you happy. It'll pay off in the long-run, and you typically gain more contacts that way for future jobs.
I suppose the 2 biggest things if I was looking at this would be: .Net/MS stuff give you better prospects (but it might be worth looking into what kind of work you'll have - not worth it to make shitty changes to shitty code). The money depends on your situation. 66% would seem to beat 20% but if you're pretty happy with your current salary then it might not be such a big issue for you.
Future prospect
Money
The perl shop sounds cool but from your research it looks like the
Got to admit - wish I had your problem (currently slaving away with Oracle Forms - shudder...
---
We spoke for about a half an hour. I don't recall a thing we said. - Colorblind James Experience
Vasectomy, or frontal lobotomy.
It seems to me that your heart is set on the Perl job. Are you waiting for someone to give you permission to choose the lower paying job that you think you'd enjoy more? Life's too short, go for the Perl job, you know you want to :-D
For me, being happy doing my job is worth a lot. I've recently switched from a job that paid a lot, but the environment and management really sucked. Now I'm working part-time, making about 25% of what I was making at the other job but the environment is great.
Life isn't really that long, you need to do what makes you happy, as long as you are not starving. Going to a job you don't like every day is a mistake if there are more personally rewarding alternatives.
A house divided against itself cannot stand.
either platform, but I'd consider the PERL job way before the .NET job. If you're working in a computing environment you like and are in a good company, I'd think it's a much better situation than corporate nightmare on windows. Is the .NET company a place where you wouldn't be able to install software package A because their IT department is overworked and can't support all software?
I write code.
I have worked for large corporations (22,000 employee bank) and very small companies (12 people) and my personal preference is to work with small groups of people who are fired up by interests similar to mine and who are good fits personality-wise.
:)
The big company was more financially secure, carried more prestige, and offered great and solid retirement options. On the other side, it was next to impossible to affect change, my contributions (while recognized in the form of raises and titles) didn't really make a big difference to the overall picture. Even coming up with a system that saved 1.2 million a year in expenses warranted only an 'attaboy'. Because, in a company controlling 60 billion in assets, 1.2 million isn't really that big a deal!
The small company offered much more freedom, personal responsibility, and allowed me to make a direct and substantial impact on the bottom line of the whole company. I was in direct communication with the owner of the company, not to a manager with a senior manager with an executive with an executive vp to the CEO.
Best advice: Play to your strengths and go with work that motivates you. You will spend about 60% of your life at work. You should spend that time doing things that motivate, inspire, and energize you.
- Oakbox
disclaimer: I am a programmer for career coaches
Not just answers, the correct questions.
There's a thing called Perl.NET.
If you take the perl job, would your income be greater than your outgoing, after taking accoutn of loan repayments, rent, food, utilities and sufficient luxuries that you're content? If so, why do you actually want the extra from the .net job?
[ ] Perl .NET
[ ]
[x] Death by ooga booga
No folly is more costly than the folly of intolerant idealism. - Winston Churchill
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
You didn't mention how close the .net job was. 120 miles is more than 2 hours each way. That is brutal especially if there aren't public transport options. You didn't mention if you have the ability to move easily or if you are tied to your current living arragnements. This alone would make my decision.
.net? .net is more marketable in the corp world, there is no doubt about that. .net seems to be only picking up steam in the marketplace and there doesn't look like anything is around to unseat it in the forseeable future. Still, you could easily make a good career out of perl and open source and (generally) smaller projects. You stated yourself that the perl job seems to be more casual and closer knit group, hanging out outside of work and what not. If you are new to the area or don't have a close group that may be very valuable.
.net. Running a small internet/web consulting shop, doing various smaller scale web sites? perl will be fine. This job is most likely a stepping stone down a path. think farther down the path a bit.
perl vs
Where do you see yourself in 10 years? master of a domain of programmers building large systems? go
The best thing to do is to take a couple of your close friends out tomorrow night and spend the evening getting loaded. Don't talk about this the whole time but bring up your concerns now and then. get good and drunk and when you wake up in the morning, you will know which way to go. the subconcious is a beautiful thing. seems odd but me and my friends have been doing this for major decisions for a long time now and i am still amazed out how well it works.
Even coming up with a system that saved 1.2 million a year in expenses warranted only an 'attaboy'.
Okay, either:
1) Your manager [or your chain of management] was/were completely incompetent bozos, or else
2) Unbeknownst to you, THEY took the credit [with the higher-ups] for the 1.2 million in savings, and THEY pocketed the year-end performance bonuses.
Or maybe some combination of 1) & 2) above.
For me, carreers are about long term goals.
The Perl shop - will you be happier there? Are you planning to move, and if so do youlike the area/can afford it? Does the company have long tem prospects? Will it likely stay this size, or grow. (Grow means more opportunities, but also that the culture may change.) Will you get to play with technology that interests you and has a future applications.
The Windows shop - same basic questions. Take out moving, add in how much you'll be working undr others/following corp standards - can you enjoy that, or be stifled by it.
I know that I've done startups, small, and mid sized, and they each have their bonuses. To make a sweeping generalization that has plenty of exceptions, larger companies give more stability, smaller companies give more opportunities.
You're in a good position - two employers competing for you. Figure out which will long term make you happy - which technology, culture, size, and company. And go for it with a passion.
Good luck,
=Blue(23)
LITTLE GIRL: But which cookie will you eat FIRST? C. MONSTER: Me think you have misconception of cookie-eating process.
Money is nice, but a pleasant life is better.
Use absolutes! Why are people scared of saying how much they earn?
Your company knows how much you earn, and it knows exactly what all
your colleages earn as well. If you share that information with one
another, you get the same kind of improvement to your economic
decision making!
Corporations don't want you to tell one another because they want
to be able to take advantage of that lack of knowledge to be able
to pay as little as possible.
FWIW I'm currently on ~ $30/hr for a part-time Linux kernel programming
job at a big-7 Linux company (Google, IBM, RedHat, Novell, Oracle, SGI,
Intel). I'm underpaid but hold no hard feelings against my employer because
they've been good and it isn't like they forced me to sign the contract. But
I think I'll ask for at least $120K for a full time position next year.
My own personal and highly subjective opinion of this is - .Net, you are going to worry that Java is going to continue its dominance, if you spend all your spare time mastering .Net, Java AND Perl to hedge your bets, well, it might be a new framework in Ruby or Python that all the cool kids are talking about next year. But if you are skilled enough, there is always going to be some jobs available in your favourite language, and you are probably going to pick up the new technology fairly quickly if you have to.
don't worry too much about making strategic choices. I think as programmers, we all have a small nagging worry that one of the technologies we didn't pick is going to dominate the market, and cause our hardwon skills to become obsolete. But no matter how hard you study and try to keep up, that worry is never going to go away. If you pick
Pick a technology you like. If you get a job in it, fantastic. You are having fun, and you are earning money, and getting experience. Now, you can spend some time reading up on other languages, but if I were you, I'd concentrate on enjoying life.
Now, the remaining question of what to value most - the money or the job enjoyment, that you can only answer yourself, and is the very essence of an economic transaction.
Being bitter is drinking poison and hoping someone else will die
When I first started working, I was doubting between programming and network security. I couldn't find a job in the latter, so I choose a big company (Oracle). I invested heavily into Java (which is what Oracle does), but it wasn't really what I wanted. After three years, I went to look elsewhere.
I found out that when you've invested in some specific area, people start assuming that's what you want to continue investing in. Every recruiter, every interviewing manager had the opinion that I was most useful in the Java field.
But that's not what I wanted. After a brief stint as "just another Java developer", I found the job I wanted: programming C and Perl at an institute which develops instruments (like infra-red sensors) for climate and space research. However, it was very hard and based on my experience alone I shouldn't have gotten the job.
My advice: you should choose whatever you're most comfortable with, because it's an investment into your future. Others will say, "but, a good CS student can program in any language/environment". It's true, but that's NOT how most people see it who might have to employ you.
As for your debt: you can quickly pay that off by continuing to keep expenses as though you were a student. Don't start buying too expensive cars, don't buy crazy gadgets, don't invest in silly hardware, and make sure to get a girlfriend who doesn't have a hole in her hand (or at least, one who has a smaller hole than you have).
8 of 13 people found this answer helpful. Did you?
If not, take the money and run. Nothin beats cash.
Technology is largely irrelevant....just ask the guys who made a killing doing COBOL while everyone else migrated to C++.
Doing .NET is actually good fun believe it or not; assuming you can use c# rather than any of the others (VB comes to mind). Also, bear in mind that .NET covers a multitude of sins - WWW, WinForms, Pocket PCs - not just the web, so any experience gained from the job is transferable to a degree.
throw new NoSignatureException();
You probably haven't thought of one thing: freedom.
In the large company, you will be locked to a regular user account. You won't get to install unapproved software (this includes your favourite text editors, browsers, music players, etc).
They might run some sort of software metering service, perhaps even keyloggers.
You will access the net through IE (which I'm sure is the official company browser), and their proxy might have half the net blocked.
You will probably be locked into using Outlook.
There will be all sorts of crap on your PC (since it's going to be a company-wide standard image); perhaps even something like McAfee AV, which happily chews away on 70-80 MB of RAM and makes things unbearable.
If your workstation is lacking RAM or other hardware, you're going to have to file a ton of paperwork and have it signed by 10 different people until you get the stuff half a year later... If you get it.
Also, it's very possible that your movement through the building will be monitored. Cameras everywhere, and your ID card will log the exact moment you get to work and leave it. Your lunch break will be exactly 60 minutes. You won't be able to go outside for a two-hour walk in spring if you feel like it and if you have nothing more important to do.
You will work with drones, not people. Mostly incompetent drones.
Listening to music will probably be forbidden, thought you might sneak in some headphones and find out you don't hear your phone ringing when you have them on, and if you make the music quieter, you won't be able to listen to it from the phones ringing (catch 22).
(Disclaimer: I work in a large company. I do have admin access and unrestricted internet access, but I had to buy RAM by myself, and I'm still waiting for a new monitor - on my desk is an old 17" curved CRT.)
The small company, while cool, has a lot of risks associated with it. Not least of which is that small companies tend to offer less security and coupled with the fact that you would have to move house, I would think long and hard about whether this all makes sense. If you did move and the Perl shop went down the pan in six months say, would it be easy to find alternative work in this new town/city? Or would you find yourself moving back to where you live now? Of course the bigger company will not be immune from 'downsizing' either. Has this happened at all recently? How do the two companies compare in terms of their financials?
You Mentioned that the other job is 120 Miles away from your current one. Assuming you live close to work, that is an extra 4 hours a day of Commuting! Much more if you live in a place like the Bay area where the average Highway speed is 35MPH.. If your not willing to relocate, or if the Perl Job is in a more expensive area, it seems like that would be a huge step backwards from having a life outside of work!
What are we going to do tonight Brain?
From my limited experience I have found that in larger companies the process of producing new code is much more important to the company than the code itself regardless of what language it is written in, whereas in smaller comanies the reverse is true. So my advice boils down to this, if you appriciate a strong software development process and enjoy having your work process being defined, go for the .net job. If you would rather have a more unstructured work process and environment (in more than one way per your original post), go for the Perl job.
One thing to consider is this - how often has perl been completely overhauled and replaced with something more or less incompatible with itself in the last 15 years, compared to how often the MS platform of preference has been completely overhauled and replaced with something more or less incompatible with itself?
.Net, and remember to keep up with the latest MS programming languages or you'll be laid off as irrelevant. Big companies won't be bothered giving you time to train in whatever new system they want to use when they can always just hire a fresh batch of new graduates who only know that language.
Perl vs Perl vs Perl compares well to VB vs VBScript vs J++ vs VB.Net vs C# vs whatever is next
Remember that if you're going into the MS programming job, you're going to have to re-learn every new language MS comes out with to stay relevant to your job as they "switch over" to the latest greatest thing the marketing people have pushed on you, and some of them may only be there for a few months before you once again must switch over to the new latest buzz-word compliant new toy.
What you really need to ask yourself is, "Is the added stress of the impersonal environment and having to re-do all of my work in a slightly different language every 3 to 18 months worth the extra money?"
If the answer is yes, then go for the
I preface this by noting I have been working in IT and data processing for 18 years now, with an uncountable number of clients at this point, so I have seen a lot.
.NET and I have been in shops where the last boss was gungho about .NET and everyone pities the 2 programmers who are still forced to work in that environment (and I am not dissing .NET really. I just mean that preferences change.)
Here are a few points:
Programming and technology is rarely the primary challenge in any job whether its a short term contract or a fulltime position (and my father who has been in the business for 40 years pointed out that there is no such thing as a short term contract or a fulltime position.) You can make a lot of money very quickly doing stupid work with annoying people. You can work very hard with a great team, and end up with very little to show. Commuting can be exhausting, relocations can be frustrating, and all in all things that start off well can turn bad and vice versa.
That being said, we no longer live in the world of working for the same company for 50 years. Consider it a learning experience one way or the other.
And lets be honest. A few years working in a big iron shop or whatever the equivalent is, using the enterprise standard, within an organizational structure is going to teach you a great deal about the industry, beyond the technical.
There are alot of variables. Flexibility of schedule, telecommuting, whichone is going to leash you with a beeper fulltime, which one is going to get you into new technologies, and force you to think for a living.
I recently got two jobs in the same week, one programming and one heading Network Ops and I had billed out the second one at considerably more, but chose the first one because the reason I had priced the network stuff so high was because I knew it would be more punishing and less rewarding.
Do I think, 'Hey the 100 bucks a day extra might be nice?' Yeah. But I have worked both type of jobs, and I noticed that when I get paid more to work in a miserable situation, it gets harder to save, since I need to spend the money I make on keeping me happy. While if I wake up in the morning and the only thing that bugs me is that it takes too long to get into the office to try out this new idea I woke up with, well.... You get my drift.
Again though, and its been said, there will be other jobs. You never know what happens. My dad became a VP for a bank after years as a consultant and they did an early retirement buyout in 8 months.
I went into my last long term contract as a database analyst and left as an expert in VoIP, having been fired by my new boss after 3 years of big raises, because he wanted to shift in his own staff...
Also, don't worry too much about languages. I have been in shops where they are gungho about
Good luck! Congrats on having this as your difficult choices in life.
In the .NET company
I just left a .NET company to work for a php/perl/python/ruby company. At one place I had trouble getting up in time (had to be at work for 9am). Now I get up at 5 in the morning to get to work ASAP.
Perl's, well, a butt-ugly dinosaur. .NET, well, not quite as bad, as long as you don't try and do anything off the beaten track, otherwise your in real trouble. .NET. What's your pain threshold?
So platform-wise, a slight win for
Environment-wise, go with the small company. Cool workplace or dilbert goes live? I wouldn't even hesitate.
So, go with the small company and cope with perl until you can convert the heathens to ruby!
Red to red, black to black. Switch it on, but stand well back.
I'd go for quality of life: less coding, more freedom and some fun at the job.
Why would you want a job at a megacorporation in what will be probably a very stressful work environment and coding in one of those ironclad languages with layers upon layers of redundant abstractions and frameworks that in the end do exactly the same as ten lines of Perl?
money isn't worth it.
I don't feel like it...
Two tradeoffs exist: income; and career vs fun.
Income: if you do not need the money, then you do not need the money. Three hours work pays my weekly rent (and I am not earning executive dollars) because I am comfortable in a smallish flat near (not on) the beach.
Fun vs career: there's a lot of crap about how cool is required in a job (*cough* Google *cough*). Work is survival for almost all people, and any child of immigrant parents knows the discipline they had to endure shit jobs.
If you need the money or a stronger career path, take the 66% increase. Either way, two job offers is a lot more than most people have. Good for you.
Choose what you'll enjoy, and keep your mind flexible. If you plan to stay in the tech field, keep learning new interesting technologies. Focus on what's interesting, and you'll easily be able to pick up the not-so-interesting stuff that the industry keeps throwing at us.
As for debt... maybe it's a cultural thing (I'm European), but I've never seen the logic why regular people, outside of exceptional difficulties or circumstances, would ever want to be in debt. Just spend the money *after* you earn it, will save you from heaps of trouble.
We all know which of these jobs we'd prefer and offshoring .NET development is practically a selling point of the Microsoft platform. 120 miles is a long commute so I might be tempted to take the .NET job and keep looking for something non-soul-destroying; just like every other non-executive corporate employee.
However, if I were 25 and single, I would definitely go for the hip/more interesting job. Control of your own project is much more important, overall, than the specific technology you are using, because it gives you an opportunity to look at the big picture issues - architecture, design choices, hardware constraints, etc. That will serve you very well in the long run even if you later end up using another language.
It's not wasting time, I'm educating myself.
We're a small shop. If I can write code once, on a stable platform, and keep it away from Microsoft's API of the week - great. Whenever possible, that means web-based applications. For things where that is not practical, and that is getting smaller, I have had great success with Python as a application environment. Compiling natively provides good speed, and with the toolkits out there it's easy to jump across platforms.
Java offers similar advantages, but I find the GUI code overly complicated for what I want to do.
The answer is different depending on what you want to do, but this is a trend I am noticing more and more.
..don't panic
Go to the .net job, earn more money and convince them to introduce IronPython. Then you'll have the money and resume of .net, and the geekyness of open source dynamic language.
You can also make great career advances by showing them how they get more productive with Python and being their guru.
Just writing more C# or Perl lines will not take you anywhere. Try to make highest impact and leave your personal mark on the job you do.
I think you should take the .NET job. You obviously have trouble making personal decisions - with the extra money you can get a personal shopper to buy stuff for you and a butler to dress you.
You're comparing a job working with a leading development framework that pays more in what's likely to be a more structured environment VS writing small web apps in a scripting language and with a mysql backend, in a location far away, where they pay far less. This may be a case of you hating professional software development :)
If you've not worked in a large company then you won't know about this, but it should be part of your assessment.
:-)
Large companies work to a process model, and those processes are designed by morons. Well-intentioned morons, but morons nevertheless. Your life will become a never-ending battle against "the system", instead of about doing useful, sensible, and fun things with technology.
And life is simply too short for that corporate bullshit.
If you choose the big company, don't say I didn't warn you.
[PS. Being freelance, I've worked for 9-12 months at a time within a *LARGE number* of companies, and the above is true everywhere. The only thing that varies is the extent of the malaise, but it's general.]
You spend a third of your life at work (and another third asleep, so essentially half your waking life). Don't you think being happy is more important than money? Unless you think more money = more happiness. Personally, I haven't experienced anything to justify this theory.
The title "Choosing Your Next Programming Job -- Perl Or .NET?" is totally misleading. It's clear to you and to me that your deciding factors are, in order:
.net.
1) Fun: social/work environment, large/small company considerations
2) Money: Salary and benefits
3) Toolset: perl or
Having said that, you can do worse than c#. I even prefer it to perl, the syntax is less of a mess. But your mileage can and will vary.
My Karma: ran over your Dogma
StrawberryFrog
... and see if you're happy with the result. If not, switch.
Fleur de Sel
Think about it this way. For the extra +66% they might throw you, (+46% more than when you take the
Perl job) you're also getting +666% more pain.
+222% more useless meetings
+222% more pointy-haired boss interaction
+222% more hassle and frustration (remember you're working with MS-crap...)
=====
+666% GRAND TOTAL
However, my real advice to you really is to not accumulate any debt in the first place
if you can avoid it. Debt is part of the slavery we're in and see what debt is making
you think about... I'm sure you would laugh at the idea of taking on a Microsoft project
if you weren't in debt. Maybe you can "work" your way out of it with doing the more
interesting project of the two and at the same time save some money on _sensibly_
reducing any "lifestyle expenses" (premium channels, subscriptions, convenience food,
etc... the usual culprits). Whatever you do, of course, don't go overboard and get the
Microsoft project _and_ reduce your life to a bare minimum at the same time...
Believe it or not, language is not that big of a factor in whether you like your job. As proof, I offer that I've been working 2.5 years in a ColdFusion job, and while the language feels like I'm trying to perform surgery with rusty tools, the work is interesting and challenging.
Here's a few questions, and my advice based on their answers:
1) Are you young? Take the higher paying job and work like mad for 5 years while living like a pauper (small apartment, used car which you paid cash for, but wide broadband and good computer). Your time in the cubicle farm will be rewarded with getting home and being able to go frag someone. You'll either pay off all your debt, develop a huge savings, or some combination thereof. This will establish the financial stability today which can permit you a lot more freedom in your job choice in a few years. This is the path I'm going, and I'll have my mortgage paid off 3 years from now (5 years after I opened it).
2) Are you willing to relocate? If not, you do NOT want that Perl job no matter how good it looks. 2.5-3 hours of driving a day will sap way more of your life than working in a corporate environment. Every single day you will arrive at work tired, and every single night you will get home exhausted. I drive 1.5 hours now, and this is absolutely my upper limit. Something most folks don't really think about is that they get errands done during the week, which I don't have time for even with my (short compared to yours) drive. That means my weekends get sapped up getting stuff done which most people get done during the week. Opportunities for relaxation become few and far between. During the week you'll get home from work and just crash on the couch until you fall asleep, exhausted. My drive takes more out of me than my work day does, by a long shot.
3) Do you have a wife and/or kids? You're going to want to take the job which provides sufficient financial stability, while giving you the most time with them. If not, refer again to question 1.
4) How many hours are generally worked by the employees of each location? I've seen small companies which generally work 40 hours and no more, and I've seen big companies which are this way. Also I've seen small companies which expect each person to put in 70-80 hours, and I've seen big companies which expect each project to meet its deadline no matter how unreasonable. Total amount of free personal time is way more important than how much you like the work you're doing.
5) How busy are the people at each place? Too busy as in #4 is bad, but too slow is just as bad. Nothing is worse than trying to muddle through another work day with nothing to do, and nothing interesting to keep your mind occupied, while you surf work-friendly sites such as Slashdot, and hope your web usage doesn't get high enough to raise eyebrows. This will actually lead to a state of mental apathy which is very hard to shake, and which can seriously cripple your career for years. We've had people like this, and have had to get rid of them because we could never depend on them to get anything done in a reasonable amount of time even though once upon a time they were firecracker developers. 3 or 4 years in a job like this can ruin a developer, sometimes forever.
I hope these thoughts help. Largely they're based on my own personal experience, but to some extent they're also based on having been a developer manager for a firm which contracts most of our people out to other companies (hence my experience with point 5).
Slay a dragon... over lunch!
Balance in ones life is always important. Prospects are all well and good but if you are not happy then no amount of money will fix that problem. Issues and pressures on ones personal life are a hell of a lot easier to cope with if one is happy with what they do to get by. I personally have made the decision to take less to get more in the past and would not hesitate to do so again if the situation presented itself. Its cliché I know but money ( an potential money from future prospects ) is not everything and it definitely cannot buy happiness.
I get the feeling you are trying to pull our collective legs here. It is hard to imagine a person who knows both Perl+Linux and .NET would have to resort to slashdot for this kind of advice. But anyway, here are my 0.05.
If you are a young person (assuming so, because you are considering joining a small Half-Life-playing Perl-using Web-programming company) go for Perl and Linux. Enjoy it as long as it lasts, because it will be much more fun than white collar work at a .NET corporation.
But if you are an older person like me, who has children and a career to look after, go corporate. Just be patient because corporations are slow and good things come to those who wait.
Antti S. Brax - Old school - http://www.iki.fi/asb/
There are a lot of factors. One way to do it is to make a list of your priorities in life and then rank them. You can then do a simple "which best meets the top priority" or you can assign some kind of weighting and rank each choice on how it meets all your priorities. Only you can come up with the list of priorities and the value of each.
Some ideas:
Better commute: 10 points
Paying off debts: 20 points
Control over work: 15 points
Enjoyable work environment: 15 points
Staying in my house: 30 points
Future Job Prospects: 20 points
Opportunities for Advancement: 25 points
etc.
So now you have that raking of priorities. You can then assign the points from each priority to each job.. all or nothing, or distributed:
Debts (Job 1): 15
Debts (Job 2): 5
It's not perfect, but it gives you an analytical way to consider the things that are not easily tangible such as salary1 vs. salary2. But also trust your gut. If you "feel" you're leaning towards one job when you "think" the other would be better, try to figure out what is leading your gut.
In any case, it's a good problem to have - to choose between two pretty good jobs. Make your pick and don't look back.
one thing you can not buy is more time. It wasn't clear to me whether you would actually try driving 120 miles each way, or whether you would move closer, but if it's the former, that's about 1/4 of your waking hours you'd be spending in the car. I did this for a year. It sucked.
The only asset you have is your ability to make income. Either through passive means like investments or through your job. Take the raise and see how it goes.
.NET world and I like it. There are some really cool technologies coming down the pipeline (like windows workflow and linq), plus there are some decent open source projects too (nunit and nhibernate, for example) which you can leverage. I've also worked with Java and Perl too. Right now, I'm in .NET. Three years from now maybe I am programming in Ruby or Python or who knows what. Don't sweat that.
.NET like reflection, threading, etc. Then it becomes fun.
I work in the
The main thing to worry about is what you will be doing. A lot of the Federal government work is simple CRUD-based web applications, which get old. And a lot of the large companies in the US do that type of work. I've done those, and they suck. But if you can get on some cool projects, you can leverage some of the cool things about
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
I am not very familiar with the .NET framework (I've had my head stuck in PHP for the past five years). Can someone please clarify which .NET language has the most promising employment prospects? Looking at a Wikipedia entry, I see that C# is the flagship, but there's no mention of ASP. Isn't ASP used almost exclusively for web development within the .NET framework?
.NET and Java. Except I'm confused about the whole .NET thing. I've never been fond of Java, so any wisdom regarding .NET (and vs. Java) would be very much appreciated!
I've decided I would like to pursue another language outside of PHP, and it's a toss up between
For he today that sheds his blood with me shall be my brother.
This is totally unreadable. Fix the bug now!
I strongly suggest thinking about going for positions based around PHP (perferably somewhere doing OO based PHP5) - as these days PHP is much more commonly sought after as far as web site design goes and it's similar enough that's it's easy to learn and you can maintain your Perl skills at the same time (and I imagine most places that would welcome both). I'm sure there are certainly people who are going to advocate you go for positions with something like Ruby, but I would say it's not mainstream enough yet and it's safer to stick with something more common if you're looking for reliable work.
.NET itself, but I would have some trepidation about it on the grounds that a lot of Microsoft technology shops have some really awful developers and working in an environment with a bunch of numpti's can really drive you insane (something I would say that is also true for some Java shops - more so than most Perl/PHP/Unix houses, but obviously they are not guaranteed to bad developers either, I've just found them to be not quite as bad overall). If the guys seem like the stand up sort who have decent experience then I'd certainly consider it though!
:-) Oh and I'd pay attention to any bad vibes you get in an interview! If you are a bit suspect or slightly irritated by something in the interview I'd move on (it may be better to wait a few weeks for a job you reall want).
If your looking for steady employment you could also learn Java - demand for Java developers of all levels of ability is still very strong, though it is more of a departure from something like Perl (it's actually pretty close to doing good OO PHP5 though). Java development can be a bit dull though (based on the sort of environments it tends to get used in) and because it's so verbose you need an army of people to write reasonably complex applications with it (not that I don't like it). JSP development is another option, but seems to be less popular than PHP these days (something I think is for the best if I'm honest).
There is a lot to like about
As far as what not to look for, I would advise staying clear of anywhere that runs PHP on Windows or does much in the way of ASP (especially if they are using Vistual Studio to create ASP sites - you'll go mad inside a fortnight with that). Those two things are defiantly bad mojo in my experience, YMMV.
The amounts you talk about on interview may be nothing like you really get. On my pre-last job I settled on one thing and then several months later boss decided that he should cut in by a third and pay the difference as bonuses (theoretically even more than it was before, yeah, right). Of course bonuses only applied if boss was happy. And when you are a "small cog".... Well, you can go down depression road pretty easily. And climbing back may be a bit toughy.
Look at the lifespan of Microsoft's "this is really it, this is the target platform" specs. DOS, Windows, OS/2, Win32, NT, MFC...
.NET?
.NET in favor of something even buzzwordier?
How long has perl5 been out there?
What's the carryover from perl4 to perl5? How does that compare to, say, the carryover from MFC to
What is a reasonable expectation for the time between now and then next major overhaul that drops
Developing for Windows is the upgrade treadmill at its finest.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
We can tell you what we think, but you're the one as has to make the decision in the end...
That said: I would much rather make less doing a job I enjoy than get paid a lot for doing something I hate. Does the lower paying job cover your bills? Will it allow you to build up at least a little bit of a reserve? If you decide to move, will you be able to afford living nearer that job, and if not, will you be able to afford to commute? Assuming the answers to all of those are "yes," I'd take the job that pays less but looks like more fun. Don't buy into the American "money is everything" mentality -- money does you no good if you're miserable.
I worked in a small shop for a while. Great people, and every once in a while nerf gun wars would break out. I took a substantial pay cut to go there, and it was worth it for the first year. After that, the missed paychecks and other startup woes grew tiring. So I'm back in the corporate world again.
.NET after the first few months. Perl becomes work. The startup .com shenanigans become tiring too, especially when you're trying to write code.
I realized that money does allow you to do things that you enjoy. I love technology, but tech is expensive and without the money you'll resort the ultimate example of a pathetic geek: Reading the arstechnica and hardware review pages and drooling over the new graphics cards that you can't have because you're on a budget.
In the corporate world you can barter some of your ideals and dreams for a bigger paycheck; we all do that to an extent. It's work, however. Whether you're in a 5 man shop or a multi-national, it's still work. Perl can get as tiring as
Plus, working at a corporate behemoth does not preclude you from doing cool things. We have LAN parties and wonder of wonders, friends outside of work who we can frag (in both senses of the word).
Another option is to start your own company... Probably make as much doing that as anything else...
KL
Choose this pal.
.net route.
.net is generally preferred by big companies or businesses, which, by the nature of business are smaller in number than small businesses. this limits the job offers in number, and you will have less options. and i bet in such positions work stress will be higher, as these companies tend to be in a corporate manner due to their size.
This area is a booming area, and it will boom continually as it is being adopted as the basis for open standards, and open business. heck, oscommerce is becoming a genre of 'programming' by itself, with oscommerce coding specialists out there.
this avenue will guarantee that in future you will be able to choose from hordes of similar job offers, WHEREVER you want. and you can do contracts over the internet too, more than
go the perl way buddy. apparently this is gods' gift to you. go and play half life after work hours.
WHAT THE HELL DO YOU WANT MORE ?
Read radical news here
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.
Perl does a poor job of protecting the code base from bad programmers. This is true. There are also modules which extend the language for better class behavior and isolate code, especially in web development. Think Amazon using Mason.
The trade-off is massive productivity per LOC. Even Microsoft had to argue with IBM about LOC's being a meaningless measurement of complexity.
Personally, I am a big Ruby fan nowadays for web apps.
Ruby's a great language, but hardly performant for high-volume web apps - yet.
A very close second on my list is Java.
Clearly the best choice for making the programmer behave and getting decent performance out of a system; the object model is at least well-defined and the class library is rich in certain areas. All these speak to its popularity.
But without knowing what the job is, it's merely hubris to suggest that the company switch platforms. There are plenty of things Java and Ruby can't do, especially if they're using mod_perl handlers extensively.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Pick the Linux bazaar one until Microsoft cathedral shop offers 666%.
There you are, staring at me again.
There will always be Unix systems; and as long as there is Unix, there will be Perl.
.Net programming job, great, but it will end sometime. Microsoft have all their own standards; meaning when Microsoft go les Roberts vers le haut, which they will, nothing you have learned will be applicable anywhere else. Yes, that means there will be a whole lot of wasted knowledge in the world. Don't be caught out by it.
.Net is a blip in the grand scheme of things. Microsoft's dominance will come to an end. Maybe not tomorrow, maybe not next week, but soon. If Vista doesn't kill Microsoft, whatever they try next surely will. There's a world out there that isn't prepared to put up with the kind of shit Microsoft are trying on. Linux is ready for the desktop, and BSD still has life in it yet. The world will be very quick to forget that Microsoft ever even existed. If you get the
Perl lets you get the job done, pretty much independent of what the job may even be. It's old-fashioned, for sure; but then, it doesn't have to be trendy. It works well enough not to have to try any harder. And you'll be picking up Unix system administration skills, which are highly transferrable.
Je fume. Tu fumes. Nous fûmes!
If you're young and haven't set up a retirement account, or are doing poorly on it, take the .NET and feather your bed early - you can't buy back the early earning years for any amount of money later. Crank the 401K to the max and a Roth too and buy stock outside of sheltered plans.
Do that for a decade, then get a cool job. You'll be much happier at retirement age.
OTOH, if you're golden for retirement already, sure, get a fun job!
Bankrolling your retirement is a long, hard slog if you start late (voice of experience here...).
First off, everyone's different. What makes some people happy makes other people miserable. You need to figure out which makes you happier.
People say, money can't buy happiness. I don't know whether that's true or not -- but money sure helps a lot of problems go away. And it helps buy peace of mind. For me, peace of mind is the first step to happiness.
Take mortgages, for example. Or car loans. Or anything else you wish you didn't have to spend exorbitant amounts of money on, but end up having to anyway. Depending on whether a mortgage or a big loan is in your plans (or maybe already is part of your life), being able to pay it off sooner may help give you peace of mind sooner. That's my main goal for the immediate future, for example. As soon as I get it over with, I'll be able to breathe a sigh of relief and have one major worry off my back. After that, all I need to do is make enough to pay for maintenance, which ends up being a lot less than a mortgage. Which means I might even consider a lower-paying job with fewer responsibilities for the upside of having even fewer worries. Of course I probably won't (or if I do it won't be for very long), because there's retirement to save up for and kids to send to college and such. But at least for a moment I'll be able to enjoy my life a little more, spend more time with the kids, have time to read a relaxing book (you know, like a "How to become an expert DBA in 21 days"), watch some DVDs I bought and never had time to play...
Have EVDO, will travel.
I can almost tell you what the comments here are going to say. The money doesn't matter. Do what you like. Etc.
Is that possible, though? I think a lot of times, people choose A over B because A is closer to what they like. Meanwhile, they take a hit in pay. Does this really get you on a path to doing what you like? What happens when you finally have the opportunity to do exactly what you want, but the pay cut is so great that you are unable to take it?
The paradoxical path might be to choose B over A because it has higher pay, even though it's further from what you want to be doing. Continue up this path. Invest hard.
Then, at some point, you will have enough wealth to really do what you want, not just get closer to what you want.
You didn't mention your age, so it's difficult to tell whether this might be feasible for you. This is basically the path I am taking, but I'm rather young in my career. I'm hoarding 25% of my (pre-tax) salary into 401k, and investing another 25% of the remaining salary (after tax) into slightly more liquid assets. This leaves me with peanuts, but because I've been doing this since I was a poor college student, I don't really notice having significantly less money available than my salary says I should.
Again, no idea if this will work at all for you given where you are in your life/career, but hopefully the alternate path is food for thought.
1) if you are under 30, it doesn't matter much long-term, but I think you will grow more if you have the option to control the projects you work on, which can help downstream. 2) Having a job you **like** has an effect on your health and productivity, which should (each) be worth a lot. 3) I have seen people drop jobs where they were just a "cog" despite the financial issues simply because they hated it.
My option would be to take the more "fun" job if they can bump up the money. In the end, I think the absoluet dollar value matters less than the feeling that your are being fairly treated (assuming certain essentials are taken care of). Many studies show that absolute dollar amounts don't matter that much to long-term happiness, relative to all the other obvious factors.
How much time do you like to spend time doing things outside of work? A 240 mile-per-day commute will put a big crimp on that, and on TOP of that, you're talking about spending off-hours time with your Perlish Workmates. Got a spouse/SO/kids? Attached to the area you currently live in?
.Net, or some option C.
Do you want to "Be Your Job", or "Do Your Job and Be Something Else"?
If you're OK letting your life revolve around your work, including that brutal 4 hours a day in the car, it sounds like you're MOSTLY looking for a sanity check that it's OK to take the Perl job, and it is if you're OK with all the extracurricular sacrifice it entails. Else,
In addition to the work environment and platform, I would look beyond the company or job shop to examine whom and what mission it is serving, e.g. who are its customers or clients. At the end of the day (and your life) you want to feel inside like you helped build something terrific for a great cause.
This is purportedly how Steve Jobs sold John Scully, the former Pepsi executive, on working for Apple Computer: he asked him, paraphrasing, "Do you just want to sell sugar water all your life, or do you want to change the world?"
A stodgy platform may be a reasonable choice if you're "building a cathedral" with it in a job that aligns with your deepest personal aspirations. But if your apps are just helping someone sell sugar water better, you might not be very satisfied, regardless of money or platform. My two cents.
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.
:). (The Ruby code in question is actually fairly infamous here it's that bad.)
I definately have problems with Perl's object model but I don't think 100,000 + line Perl software is especially difficult. I've found a system with lots of modules and at least that many lines of code (I would estimate it at at least twice as many, but I don't have access to it at the moment) is quite easily maintainable. It's not as elegant as something like Java or PHP5's Class model but it still allows for a good level of discipline to be enforced.
As with any language, it does assume you don't abuse it, which is just as true of something like Ruby - purely anecdotally I would say that outside obfuscation challenges I've seen some worse Ruby than even the worst Perl I've come across from a maintainability point of view (and I've writ^W seen lots of nasty Perl!
... I'd take the small company job, because waking up and WANTING to goto work is worth more to me than a few extra dollars.
Hating your job sucks, and its all too common in big companies (well and in little companies too, but doesn't sound like that is one of those.)
Shadus
I've worked at a Perl shop like that. We built our own MAME machine so we could play arcade games in the office during lunch. We did a lot of programming with MySQL, PHP, and Perl on Debian Linux and managed a few Asterisk PBXs. The company eventually failed however. Small companies have a hard time distinguishing themselves these days. This company was a small VoIP company focused on phone cards. Well, Vonage and Skype essentially killed that business. They started to diversify but it was too late. I eventually got one of the jobs where you are a "small cog in a wheel". Trust me, you want stability. It's all fun and cool to try to live the dotCOM era lifestyle and Silicon Valley lifestyle, but I would rather do a boring job that pays well and consistently, then have a job at a company where there is a lot of risk. That is my opinion of course. I have a family and I am still young (25), but there comes a time when you have to take measured risks. I'm not saying that working for a small company is bad. In fact, this company had been around for 10 years before it crashed. I simply came around at the end of it's lifetime. Just remember, nothing in life is guaranteed.
"That said: I would much rather make less doing a job I enjoy than get paid a lot for doing something I hate."
The problem with a lot of the advice here is that it's as binary as the solution. Most jobs don't fall neatly into the hate/don't hate bins. There's a reason it's call a "job".
With the PERL job, you will be limiting your future, but maybe not by much as you already have the MS .NET experience.
No one can make the decision for you, but maybe I can help you quantify the decision:
First, list the qualities of the positions. Work environment, hours worked, pay, working in a perl/linux shop, having a continuous career arc, company size, and anything else you can think of between these two jobs.
Then, set your priorities by rating the qualities on a scale of 1 - 10.
Next, for each job, assign each quality a score of 1 - 10.
Now, for each priority and job multiply the quality score times the priority score. This will give you a weighted score for each quality for each job.
Add up the qualities for each job. The one with the higher number is the one you should probably take.
Or, you can just go with your gut feeling.
There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
In the Perl company:
.NET company
.NET company smells of brimstone, will bring about the Apocalypse, and powers it's network by grinding up cute little kittens and feeding them to failed coders, who are sentenced to running endlessly on treadmills until they die.
hackers make technical choices
you use open and free software
you'll most likely have people like you who understand you
the projects you'll take on will have more chance to be difficult technically because the people giving you the work know what the languages and you can do
In the
business people make technical choices
the stuff you'll be asked to do will probably be simple (which means boring) because business people know as little as they can get away with of the technical side of things
You forgot to mention that the Perl company smells of roses, and will bring about World Peace and free kittens for all Mankind. The
Or maybe the language used has little or nothing to do with the work environment you'll encounter. Just a radical thought, I know.
If you are a good programmer, learning a new language or system shouldn't be an issue. For that reason, take whatever job brings in the highest salary + satisfaction, however you choose to measure that. Another job well done can only positively affect your prospects in this industry. :)
If at first you don't succeed, skydiving is not for you
You have stated that greed is the motivating factor in the OP already on several occasions, so why ask? If you don't know what you want to do (other than greed), why would you think anyone else would know what YOU want? I think being a little cog in a huge wheel, and earning more than the the other job of course, would suit you, from reading your post.
Take the big job and play HL2 with the cool company. Besides, coding C# is like taking candy from babies... And almost as fun. I'm primarily a C# programmer, and just started a side project in C++. Oh. My. God. I've completely forgotten how awful other programming languages are. Barely any type safety, primitive (in comparison) IDE support, awful documentation, MACROS??? Its like being adopted by Madonna for a year, then getting returned to the orphanage.
first make sure whatever job you take will cover all your expenses. after that, take the job you want the most. if it's a 2 hour commute but you STILL want to work there, then do it. but don't just go for the bigger paycheck. remember that bigger paychecks usually entail more responsibilities, which is usually not very fun.
at the same consider that there are lots of perl consulting jobs out there (check job sites to confirm this - ive gotten dozens of calls lately)
The last agency I worked in meant dealing with considerably worse ASP.net than the Perl developed in house. Presumably the perl developers know what they're doing - if they have time to play counter-strike or whatever they clearly aren't having to firefight bad code are they? Fuckwit!
Only a complete idiot would suggest converting from one platform to another - testing, documentation, communication and project management are what makes for a maintainable codebase, not using a newer trendier language. In fact using Ruby would mean LESS maintainable code as there is less ready-rolled software available, less experienced developers, and therefore more roll-it-yourself-without-any-best-practice.
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.
Again, this is bullshit. You clearly don't have the experience you claim in Perl and are repeating second hand information. The only time encapsulation causes a problem is when you have out of control inheritance, and *should* you actually need it, it's been available via CPAN for years - it's even described as a pattern in DCONWAY's OOP book which was published back in 1999!
As for large, mission-critical systems - I'm proud to say we're using perl in the aviation industry, and the biggest problem? Getting decent requirements and documentation.
To me mission-critical means solid specifications, lack of SPF, recoverability, paper-trails, unit and regression testing, out-of-hours support rotas, service level agreements from providers, and good SCM.
So.. how does using any of
How about you do some real serious development and talk about it when you know what it actually involves. muppet.
--
Aaron 'TEEJAY' Trevena
The people you work with and the challenge/variety of your projects will probably play a much, much, much larger role in your work satisfaction than what programming language you're using.
As someone who's taken both the high paying job and the fun job, I'd say take fun 98% of the time. The only 2% where I'd take the high paying job are: 1%: The high paying job is also the fun job. 1%: You are very deep in debt and need the high paying job.* *If you're at this one, making more money likely won't help you. The more money you make the more money you'll spend because you likely have a money management problem.
Do you rent or own? If you own a home, this humble non-home-owner would fear that the transaction costs involved in moving would be as big a hit, if not bigger, in the first year than the 30% pay hit you'd take moving for the Perl company. Of course, if you own in the city and are moving to the boonies, you may actually come out ahead in the deal. Anyone who's been through it recently have thoughts?
Take the money and use the gas savings & extra pay to buy beer!
...do what you enjoy for a living, and you'll never work a day in your life. Try and get more money from the PERL job, and ultimately take that. I've worked in both languages extensively and .NET is irritating as well. Working in large corporations is also irritating because you hardly feel like you're making a difference or contributing to the company's success. I'm sure you'll have much more fun at the PERL job, and happiness is really what matters most. Life is definitely too short to be stuck in a crummy job M-F.
You idiots all seem to think that simply because he didn't describe the .Net job as "super happy fun job" that it can be a fun place to work. I may not be fond of Windows but I have a lot of friends who are Windows programmers and administrators who I know I would enjoy working with. Just because they don't all sit around playing half-life in the after-hours doesn't mean they aren't competent or aren't pleasant in the workplace.
Consider the more important options - do workers seem excited about their work or beat down by management? Does the environment seem open or closed and secretive? Big companies have lots of problems but they also offer good pay with the potential for lots of different opportunities.
May Peace Prevail On Earth
I don't see these two positions as comparable. .NET is used for developing small to large-scale applications, on par with Java or C++. PERL is used for small highly-portable scripts, tools, and add-ons. Judging only from the choice of languages, it sounds to me like these are two completely different positions, probably with different titles, salaries, team sizes, and expectations. You need to make your decision based on those factors.
I must also echo what another poster said: 120 miles is a LOOONG commute.
No matter how much you make, you'll spend it all and get by anyway. I've made amounts from $29K to $100K in the past ten years and all that I remember is being happy or not happy and I don't have a penny of all that money to show for it anyhow.
There are numerous ways to manage a debt load, but if you don't like your work your day-to-day life will be miserable. Go for the job that will make you happier.
That said, a lot of liking or disliking work has to do with the people you work with, as opposed to the work itself. Right now I'm at a job that I find interesting but not amazing...but I really, really like the people I work with. So it makes it fun to be in the office. That might be less true for developers though--I'm a manager so a lot of my job is interacting with others.
At my last job the work was truly incredible but I worked alone in an office most of the time (tiny consultancy), and worked hugely long hours. That got very old after a while.
Build a man a fire, he's warm for one night. Set him on fire, and he's warm for the rest of his life.
With the 4 extra hours you will earn by not driving 120 miles each way, you can spend as much time as you want working on your Linux friendly applications (develop an oss) and still have time left over. .Net is not bad, has lots of potentials for jobs, AND you continue to be an all around programmer, not a live-in-the-basement Linux guy.
When the world switches (we are starting to see this now) there will be a HUGE need for IT specialists that understand both platforms well and can build systems that make migration easier.
Religion and politics, without the flame. godgab.org
If we're going to be forced to choose between Perl and .NET, we ought to be issued cyanide pills...
"Not an actor, but he plays one on TV."
When I bumped into a similar question I sat down to think what whould
.NET, no amount of fun after work will compensate,
.NET has more of a future, but this cancels out .NET will give you no points in your next prefered jobs.
I do with the extra money?
It is assumed that both jobs give you enough money to get make a respectable living,
if not the choice is obvious.
The extra money therefor goes either to long term savings(college fund,penssion plan, etc..)
or into luxuries.
Now you need to compare how much fun you would have with and with out the extra money.
If you really dislike programming in
but If the programming enviorment is reasonable and you find the job fun most of the time,
then a newer car, an extra restraunt visit a week and off shore vacation once a year
could easily compensate. (these are obviously random examples of fun things to do with extra money).
as for prospects, you are probably correct
with:
a. You probably prefer a non-M$ future, and
b. a good programmer should get along with any platform, especially if you keep up with technology on your spare time.
Me.
Working in a crap job really sucks, but know what's worse?
Being broke all the time. You will not be happy being broke.
So if you'll still be doing pretty well for yourself with the fun job, do that.
If you'll be barely squeaking by, no amount of 'fun' on the job will make up
for it.
The libertarian solution to the failures of capitalism is to apply more capitalism til the failures are fixed.
You have a choice between driving 120 miles (or moving I guess) to work at a perl shop for a 20% bump at a small company or a 66% bump at a large company coding .net.
.net job.
What I do off work is much more important than what I do at work. With the 66% pay increase I would have much more money to have fun with and have much more money to invest and retire earlier. Big Companies tend to be more stable then small companies so there is less risk involved. Having a 66% pay increase means you can demand more at your next job if you decide to leave that one. So earlier retirement, more spending money, and future higher salaries at the
Also, a 4 hour commute is nuts (I assume 2 hours each way). That doesn't give you much time after work to do things and means you have to get up way earlier. What I do when I am not at work is much more important then what I do while I work. The less time I am at work and the less time I commute, the better. Of course you could move. Do you like where you live or do you want to move?
To me, work isn't for fun. The purpose of work is to earn money so I can have fun. Don't get me wrong, I like my job and we have great benefits, but, it's still work.
The 66 percent increase only matters if you can sustain it for a long period of time. How much time before you get disgusted and want to move on? How long before the company goes bust? Being in a big company is really no guarantee--big companies eliminate departments or go bankrupt all the time.
Does .NET have more future? Maybe. Maybe neither one of these have as much future as PHP, Java or some other technology that will become the clear winner.
That said, if you are in debt, you may be better of sucking it up for a while. Is this the difference between being trapped in debt for 20 years and paying it off in 2, or is it less drastic a difference than that? Sit down and do the math. Only you can really say; but in a situation like this, I'm inclined to go where I'll be happy, since I spend a 3rd (or more) of my life at work. That's just me though. Ultimately, it's personal.
Why don't you take up the .NET stuff now, so that your money part goes up. Continue dabbling yourself in Perl...etc as you do now. Then after some time, (you fix how long it should be) try moving onto perl/linux domain. By then, with your (then) current earning potential, you would get a better job in the domain you like most.
:-)
Time, Tide and Money waits for none
Hey - There's More Than One Way To Do It!
Yes, the Perl job is fun, but it's 120 miles away from your place and pays less.
It's all a matter of convenience over fun...
.NET will die eventually, like all that Borland Stuff did. Perl has its niche, just like C, where it is unreplaceable. If you a good at Perl, you'll always have Job. In .NET, you might have to learn a new technology in a few years.
if so, or if you are planning to in the near future, I would factor the hanging out, "playing Half-Life together in the off-hours" thing out of the equation... given that, most people I know who chose the money over "what they love", usually regret it, although it may be years later.
I would've replied to but as we all know replies are in the ether at the moment...
But yes, this is pretty much exactly what I was going to say and pretty well articulated too. When I read your summary the first thoughts I had were "what are your circumstances?".
There's a lot of good discussion on this story about quality of life issues -- enjoying your job, etc. I do agree...but here's the rub. Say you have very specific desires -- you want a nice car, you want to buy a house, you really enjoy travelling, whatever. The higher paying job, even if not as fulfilling during the work week, will enable you to more easily achieve those desires. You say the benefits are roughly equivalent, so assume that means you get the same vacation time, for example. Perhaps you'd love to be able to spend two weeks every year for the next few years travelling across Europe and spending time in Italy or Russia or England. Much easier to achieve that end with 66% more money in your budget.
Only you can really decide what your priorities are, however. If you don't care about, e.g., travelling all over the world, but instead want to spend all your free time windsurfing, then maybe the quality of job satisfaction is going to be the deciding factor.
Final comment: if you're thinking about long-term prospects (which you mentioned), someone else has pointed out that the bigger company will give you more insight into how companies and projects and so forth work. That can be very beneficial, especially if you are willing to push yourself forwards and make sure you get involved in project decisions.
Easy answer. MS wants .Net to become obsolete someday. It's their way to make money. Perl won't go away. It's quirky, it's ancient, it totally Unix - but it won't go away. It kicks every butt available, old or new, for an array of programming tasks, especially those involved in data migration. Note: ALL other languages have regexes measured by wether they are Perl compliant/like or not. All of them. :-) ), Perl won't got away. It wins against .Net, hands down. Unless you want to make current native windows desktop-apps, no matter what it costs. .Net on the other hand is MS. Bound to become obsolete as soon as the marketing division considers it's time again to milk the industry for another round of cash.
All Perl jokes aside (those of which I as a Python guy like to tell aswell
Apart from that 120 miles thing, it's an easy choice.
I know and love Perl (in fact it probably takes the case for "least looking things up" for me) but... I don't think it's as solid career foundation right now. It's a great supplement to the Java/J2EE that actually lands me jobs, but it's getting to be more and more of an esoteric kind of skill. (And I still haven't found a way of making a decent UI for a standalone app...)
.Net is a "flash in the pan", but it seems to be the current plateau of a Microsofty-path. And it's not a terrible one. The mindset can be a little weird for a Perl-head, Microsoft tries to do too much and too little and sometimes it's hard to get the deep grokking that coders tend to like. But there are some upsides as well.
I don't know if
This isn't an evaluation of your life position and work-culture-based decisions, just my two cents about the technologies.
SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
I would look into how each company manages development. The advantage of the big company is that you will probably work with someone who has more knowledge and experience than you. There is also a good chance that you can move up the ranks there. In the small company, you're it. You are at the top of the development ladder, and there is nowhere to go from there. However, in the small company, there is an opportunity to shine, and really show what you can do.
Go for the money. You are paid to work. If they stopped paying, you'd stop going. That simple fact should form the basis of all your work decisions. Keep your work and the rest of your life separate. You'll be happier in the long run. There is a good reason "don't mix business and pleasure" has become a well-known aphorism.
In my opinion, there isn't much in this world that is more pathetic than people who look to their jobs to find friends and entertainment activities. I want to stress that I certainly have no problems with making friends or having fun at work when it happens "naturally" as a simple result of normal human interaction. I've made my share of friends through work. I even met my wife through work, although we didn't get together until years after we worked together. It's just that a lot of people seem to have lost the ability to separate the two, and the question posed in the article is a prime example of this. Asking whether you should accept a job offer based on how they plan to entertain you is literally the last question you should be asking when seeking employment -- if all else is equal, it's a fine point to consider, but otherwise it should be almost irrelevant.
This job-as-your-life trend has taken on a creepy, over-the-top significance in Corporate America. Now employees are expected to be best-buddies with everybody around them, and to engage in goofy "team building exercises" and other non-work-related activities. In larger companies, it has become de rigueur to structure your life around your job, to the point that simply choosing to not attend "optional" non-work activities can literally jeopardize your position.
Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005
Many perspectives... What works for YOU?
;)
As you said, it's the balance between the need to make money to pay the bills (or just amass a lot of wealth if you're THAT sort of person) or have fun (ie. have a life). Some of the answer is going to be based on how old you are and whether or not you are single. If you're below 30, take the Linux job because it will still pay the bills fairly well and it's still a step up from your current job. While you're there, you're going to learn a lot regardless of which camp the employer is. If you're in your 30s, then it's a toss up depending on how "involved" you are and how serious it is in terms of a relationship. Regardless of whether or not your partner is independent and brings in an income or is the stay at home type who relies on you, you'll ALWAYS want to be in a position where you can take care of everything reasonably well in terms of finances for the both of you. Depending on just how much money you're talking about with the 20% vs. 66% increase, you can probably figure out what would work out better, especially if your partner works and a sudden loss of that income would impact you both tremendously. If you in your 30s and you are very single and plan to stay that way for a while AND you really like your own time, then go with the Linux job. If this is a career change later in life, then I think you probably have enough experience in the work world to figure the answer out for yourself, so I'm assuming you're in your 20s or 30s...
I know that the route I chose once I got into IT was based more on this:
More money vs. More time
I could easily have gotten a job in the corporate world that would pay me a six figure salary. But I'd also be working a minimum of 50-60 hour weeks year round and get a pittance for my vacation. I was lucky in that I found a job at a non-profit that pays me reasonably well (mid $60s) and I only have to work 37.5 hours a week. I also get have nearly a month's vacation time per year to spend any way I like. The hours are extremely flexible to make up for the fact that I'm pretty much on-call all the time. Now, with that kind of income in the city I live in, I'm able to live a reasonably middle-class life. *IF* I really wanted more money, I could get into investing, but I really don't have that interest and actually find money EXTREMELY tedious to deal with at all levels. The income I have is currently support my wife, daughter and I very well. At least by our standards, which might be lower than a lot of people. To make up for the smaller income, I have a good deal of time for my family and myself. I also spend some of that time doing work on the house that others would probably pay to have done. Wiring, plumbing, plaster repairs, renovation/restoration, etc... The things that matter to me, like spending time with my wife and daughter and having plenty of time to work on Linux projects at home are all easy to accomplish with this job. And regarding my retirement, I've got both a private and a public funded retirement program as the organization I work for falls under the same auspices that the state schools do. In return for all of this flexiblity, I have to make sure I do a kick ass job in IT. And I do, even if I say so myself.
So the answer to your question is going to lie in whether or not you value your personal time, or personal wealth. I'm sure there are plenty of readers here who would argue that the more personal wealth you have, the more personal time you can buy. That is likely true if you enjoy the work that it takes to amass that wealth, whether through investment, or just having to work 80 hour work weeks for a number of years (ie. paying your dues). I chose a different route. I'm not saying it's the best one, it's just the one that works for me. So, with an important decision like this you need to consider what is more important to you and what works for YOU.
-"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
Don't look at the MONEY!!
What good is 66% more if you have no time to spend it or are too burned out to enjoy it?
Go for the smaller company if you can get them to come up a little on the pay. You'll be happier with the work environment and your ownership and control of the projects you work on. Also to feel like you really have an impact on the company with everything that you do is hard to pass up!
Some things are more important than money when looking at a potential job.
I've been in a few WELL paying jobs where the environment really sucked and I hated to even get up in the morning to go to work! I took a $15K cut in pay to work in an environment that I enjoy with people that I enjoy working with. It was worth $15K to me just for the peace of mind and to get my fire back to do the kind of work that I enjoy!
Money makes a difference but the kind of people you work with and the ENVIRONMENT you work in are worth more to me than the cash!
-SjamisoRC>
First, are you willing to relocate or at least reside where the "Perl" job
...).
is during the normal work times? Can you telecommute for this job if not?
Second: You say you have been doing Microsoft/.NET work since college.
Perl/.../Linux would BROADEN your appeal to employers (and yourself) as
you get more experience and become more senior in the programming world.
So it would also be a professional learning experience. It never hurts
to have balance, and more that one point of view in computing. My background
(over just a FEW years) includes IBM Mainframe, most of the operating systems
offered by Digital at one time or another, (U/Li)nix in several flavors
and writing operating systems and applications. The breadth of my past
professional background and the comfort in many platforms as contributed
hugely in my abilities to offer value in situations where a "single view"
(say Microsoft OR *nix OR Mainframe) contributors were banging their heads
against the sides of the boxes they lived in.
Third: There is the personal reward.
Unless +20% is not enough to maintain the type of living you want, there
is going to be an extra N% effective in self reward as well as developing
breadth and making yourself a more salable senior programming "product"
at the same time.
If you were to relocate to shorten the 120 mile commute, can it be done
in such a way as to LOWER your cost of living, for instance? (Is
housing cheaper or more expensive,
I personally thing we, as a society, have gotten so focused on money and
"cost of doing business "here"" that we loose ourselves and a chunk of
self reward.
You sound fairly new to the workplace and have time for the money to come.
I shoot for fun and learning while it is still possible. Who knows, perhaps
you can make the Perl shop a Python shop and/or become such a WEBbing expert
that you won't care what platform it runs on, you can handle it and have
a good time too. It is really nice to go home after work on a high.
It is really nice to do something so creative, to you, that you keep beating
in it, not because it is expected you will put in more that 40 hours, but
because you are having fun.
JMHO
Bill
...which one has the most hot chicks?
Having worked in an environment that paid more but I enjoyed less, I am the first to tell everyone I would rather work for less money. Provided that it is enough to eat and pay the bills and save a bit here and there with a small family, it's better to enjoy your job and have a life then work 60, 70, 80 hours a week and get paid more.
The only instance I could ever conceive of doing the latter is if there were no other choice, you had external obligations, and you could easily get out if you wanted to. The extra money would allow you to tread water until you found an escape route.
But no job drudgery is worth the money in the long run. You may suffer an anonymous job existence for a few months, years even, but it will take its toll eventually.
Then again, I was never one to be a "cog in a larger machine."
If there isn't anything in particular holding you to where you're currently living, pack up and move closer to the Perl job.. Go for the job you are really going to enjoy.
.Net job close to your house, rather than making that horrible commute. Losing those 4 hours of time just isn't worth it unless it is the only thing available to you.
But if you don't want to move, take the
There is no such thing as "... I'd basically have total control over the projects on which I work." Not even close. You may have control on "How" you complete the projects, but not on "Which" projects. Not every company can be a Google. Beyond that there are two types of employees. Those that live to work and those that work to live. You can not decide which you are, your too close to the subject. So ask family and friends. People that live to work need a higher degree of job satisfaction to be happy. On the other side, I have known people all my life (half a century) that hate their jobs, but the job has regular hours and pays well, and the jobs only purpose is to fund their weekends and vacations. In any case, it really doesn't matter, your young!
While not a clear indication of trends towards choice of programming languages, its interesting to view the queries associated with either .net or perl. Google trends shows a nice steady decline in searches for perl while .net has remained a constant.
0 &geo=all&date=all
http://www.google.com/trends?q=.net%2C+perl
There is also a steady decline in Java compared to C# in queries.
http://www.google.com/trends?q=c%23%2C+java&ctab=
Could it be that nobody needs to search google for examples, updates, information versus C#? Who can tell.
Why do overlook and oversee mean opposite things?
What is in favour of the small company?
.Net - why not? I am sure it has some interesting features.
- Using Perl? Certainly not good enough, I don't want to start a flamewar, but Perl is definitely not great enough to warrant moving 120 miles from home and giving up money
- Playing Half Life after Office hours? Personally, I'd rather get home and play Half Life with my friends. That doesn't mean you couldn't make friends with the Small Shop people, but also, why not make friends with the big corp people. Lots of people are into playing Half Life. Again no good reason to move and give up money
The big company:
- might be a chance to work on a big project, learn lot's of stuff
- they are humans, too, might not be so bad after all
- if it sucks, you can still quit.
- small companies can suck and have annoying superiors, too. In fact, big companies might have programmes in place to try to keep their empoyees happy. Small companies usually only offer overtime hours.
- you don't have to move away from friends and family
-
There is nothing better than a job that you enjoy. Look at all of the stress associated with each job ( good stress and bad, because even good stress is still stress ) and decide if the stress of the higher paying job is going to be substantially more than that of the small company. If it is, stick with the small company. It won't be as much money, but it is still a raise AND you will actually have fun with ( Not everyday, I know, but overall ). This is just my $0.02, but having a father-in-law who has suffered a mental breakdown due to stress at work has really put this into my head.
You can make the choice now to do what you are happy doing in life. Or you can become dependent on the high salary. If you choose the higher paying job you'll have an unbelievably hard time later choosing a much lower paying job that will make you happier. Choosing .Net is a great career move. There are tons of jobs. Choosing Perl (or for many these days, Python or Ruby) is a great personal move. Choose the thing that has the best chance of making you happy and live within the means of that salary range. Trust me on this one. You can almost never go backwards in salary comfortably, so make the choice to do what makes you happy and live in that comfort range.
.Net long term. You should always continue to learn new tools and apply them to your jobs where they are appropriate. The Perl job probably understands that. The .Net corporate place probably doesn't.
BTW, you don't have to choose between Perl and
I have observed that there are two kinds of programmers. Regular programmers to whom it's just a job. You will never catch them contributing to open source or attending a user group meeting.
.net'ers, but that big corporate job doesn't sound like that's where they would go if they were passionate.
Then there are the passionate programmers, people who would code whether they are paid for it or not. I decided a few years ago that I only wanted to work with and hang out with the passionate kind. You may be different but if you make the basic decision of which camp you are in your choice will be easy.
I am not saying that there aren't passionate
It's not wrong to go for the money, this is after all America. Just be certain why you made the choice.
Man Holmes
Don't get stuck with a slow removal of debt. Clean out your decks as soon as possible. As you progress in your career, your debt will eventually approach 0%, and you can then make a decision based on fun vs. profit. You could take that fun job later... seriously, get rid of your debt load. If the dollar crashes, interest rates will go up and you'll be screwed. So lighten your debt so it will be more manageable. Besides, the fact you'll be paying little to no interest will feel so good.
As someone who is also in the middle of a new job search I think you failed to mention one other very important aspect. What are the opportunities for advancement? Is the job where you are making only 20% more, have better or or chance to advance? Does the better paying job start out better because you will only get a 3-5% raise every year and no real chance to up your base pay any time soon?
Some companies do a pay review and based on what others in your job description make will adjust your pay up accordingly.
Talk to the people that you may be working with. Is the smaller company in a growth position? If so you may be able to grow your pay as the company grows. If not can you still pay down your debt at the smaller pay? Its no good taking a lower paying job that you may love if you can't pay down your debt and get stressed because your bills never seem to stop growing.
I'd go for the one that pays more, as, if you actually save the extra money you'll be better off in the long run. If nothing else your 401k would be MUCH larger just by virtue of the increased pay, not to mention whatever sort of matching plan that company has, which being large, I'd guess must be pretty decent. You can always play half life, etc. with anyone you choose to you in your free time.
Not to mention 120m would require you to move or be one helluva commute every day...
Also, a larger company would, hopefully, mean better job security and other little perks like maybe they'd pay for attending conferences, etc. and "certifications" if, for some reason, you feel that you need them or they, for some reason, require them. That said, IMO certs are worthless unless you don't have a degree or a degree not related to a technology field and/or no other experience even then they don't appear to mean much from my experience, but I guess you can only get so much out of a few weeks of "training" and a multiple guess test.
That sounds like a bit of a no brainer.
It also probably depends where you are in your career.
If you're just starting out it might be fun to work for a small startup, work huge hours, bond with your coworkers.
If you've been around a while and have a family and other things to do in your life, it might be nice to work for a huge company where you can leave at 5PM.
That you're asking this questions shows you already know the answer, deep down. I'm in the top half of Slashdotters, agewise, and one of the most important things I've learned about professional life is this:
You will spend most of your waking hours at work. Don't think about your life only as "what you do after work", or you'll end up really unhappy, trying to cram 24 hours of living into the precious few hours between when you get home from work and when you go to bed.
Make finding a job that is engaging and enjoyable, in an environment with as little stress as possible. When, I say "stress", I don't mean try to avoid a challenging job, but avoid being around people you can't stand, doing something that's not interesting. Don't work with pricks if you can avoid it.
I don't mean this to sound like the Desiderata, but try as much as possible to evaluate a job situation by what it's like RIGHT NOW, not what it's going to mean for your future or based on an expectation of "where it's going to take you".
Screw the money, follow the fun. And as far as trying to negotiate a better salary out of the company that you clearly prefer, I have found that it's much easier to negotiate for more money after you've shown that you can do a really good job.
Good luck.
You are welcome on my lawn.
You must come over to the .dark .side. .Become .a .NET .developer. or you could become a Ruby zealot. I've heard it involves becoming an acolyte but you must first sacrifice an old Amiga (or is it a goat?) on the alter of zealotry. Perl is cool and all, but I recently converted from Perl to Python and it is wicked cool. Once I got past that weird whitespace thing it's really nice to not to have to put a ; after each line. I think Python hits the language sweetspot. It's an object oriented scripting language robust enough that you don't have to learn Java. You get the added bonus of being more productive for things like web development.
"You'll get nothing, and you'll like it!"
If one of the two will give you a chance to learn more than the other, I'd consider that pretty seriously. In the long run, you'll probably have a more successful career and (if you care, a more prosperous career) by taking jobs where you'll work with the brightest most interesting people, and where you'll have the greatest chance to learn about useful technologies, business techniques, or whatever gets you up in the morning.
Look at your budget. Look at the housing market near the Perl job. If you can afford to pay off bills, live modestly, and still work on your debt, take the Perl job.
There is no reason to sacrifice short-term happiness, because in the long run, chances are you won't get that happiness back. Enjoy your life as much as possible.
I left a job I liked quite a lot to take a job with lower pay, simply because the work was cool, and the people I now work with are a lot of fun, too. I miss my old workmates-- they were some of the best friends I've ever had. But the new job is *way* too much fun, and there is significantly less pressure, and I get to be a lot more creative.
Trust me. Take the Perl job, if you can afford it.
You'll thank me later.
Microsoft is to software what Budweiser is to beer.
Whatever you choose, don't forget that it won't last a lifetime. Your ability to find a new job declines over age, so do the 'move for bigger bucks' while you can - eventually that path will run out and you should have enough buffer to then seek the job you want to stay in. Also, a big company has a bit of rom to move around in, which provides a degree of redundancy if work grows short. Being flexible helps. .Net is likely to get a push from Mono as well now Novell has sold out, so it doesn't seem a bad way to go.
Oh, and do not confuse work with play. At work, you work, that why they pay you $$. At home, do what you want to do. You could even practice your Python and Perl there for your next job. Just ensure that work doesn't absorb your life time as well - living close to the office is often used as an excuse to make you stay even later.
Good luck!
I've been programming for 13 years. I've been in big consulting shops, small chaotic startups, offshoring, software shrink-wrapped, big web sites ... and many different platforms/technologies. Strictly hands-on coding.
My experience is in all of them, I value the following in order of importance from highest to lowest (and note - Ne'er does appear anything about technology or language):
1. People
1a. Direct Boss
1b. Peers
2. Smart Operators: Do they do death marches? Are the managers technically-minded? Or is it a bunch of political appointees? Do they expect stupid hours because project management is braindead?
3. Flexibility (schedule, etc). and Environment
4. Location
5. Salary
It sounds to me like based on the above, the jobs stack up as follows:
PerlJob Job.Net
People 1 0
Smartness ? ?
Flex+Env 1 0
Location 0 1
Salary 0 1
So, I'd decide which of the two is likely to operate "smarter" day to day, and go for it.
Unless of course I decided to alter the scoring functions, maybe by making them non-binary.
A search of Dice shows a lot more .NET jobs. Would taking the Perl job hurt my prospects in the future?
Let's just focus on this. And sum your current professional coding experience as X years. Then in two years
For several years I chaired the LPN Board for a large hospital, which screened applicants for hire and promotions. A big chunk of our work could be summed up with this question: "Is this a nurse with five years of experience, or a nurse with one year of experience repeated five times?" The same thing applies here. I don't think your decision is about money. I think it is about whether you want to take the red pill or the blue pill.
VB6 is completely different than VB.Net aside from a few syntax similarities. It was a necessary change to provide for threading and the entire world of objects.
You can be a bad programmer in any language. A lot of vb6 programmers fall in that category. You can also be a good programmer too. If you can program in Java, you can program
A good programmer shouldn't be limited to a single language.
I'm a
It'd be whine whine whine whine, if I was using PHP I'd do it this way. And I'd spend all my time bitching at you if you'd just get off your fricking ass and stop playing half-life and spent some time reading and learning we could depend on you to get things done by yourself without whining.
Eventually I'd just start ignoring you, or worse I'd give you all the Access applications to support. You'd hate your job even more because you feel you never get anything challenging to work on, and then you'd whine to slashdot asking what you should do with your life.
Maybe this was cruel, but it is how things work in our world.
As someone who went from a very large company (150000+ people) to an established startup(~350 people), small companies are the way to go. You can make a difference there. I could make more at a larger company, but I would be a cog, and for me I just can't do that again.
As to paying off your debt, take your raise and push every dollar of it straight to debt, and at the same time quit buying toys. I did it, and it was painful, but life is so much easier and less stressful now...
I don't understand why people continue to argue about the details of which language or framework they want to use. Procedural-object languages all function largely the same, they use virtually the same syntax in many cases, and they all have minor gotchas and workarounds.
Add in a distribution layer such as J2EE5/EJB3, CORBA, XML/RPC, SOAP/XML, or good old fashioned fixed-format record overlays ala mainframe/AS400, and there isn't even a need to select one language to implement the whole application.
Personally I'm sticking with Java5/J2EE5/EJB3, because I invested a lot of time and effort in learning the "gotchas" and want some revenue payback before I invest more time and effort in learning something else. Coupled with the fact that only two of the dozen recent interviews are for .Net shops, and C#/.Net are way, way, wayyyyy down my list of priorities.
Yet even C#/.Net isn't "elminated" from what I do, because there are several adapter projects that let C#/.Net desktops access a Java/J2EE server cluster, including SOAP/XML automation from Apache.
Guess I'm just not a language bigot. I worked with too many to hold on to such irrelevant "ideals." (Z80/650x machine code, various assemblers, various C dialects (the world's greatest assembler), C++, ANSI C++, Java 0..5, Perl, KSH scripting, and God knows how many proprietary scriptlet languages.) Worse, I took the 400 series compiler courses from J. P. Tremblay at U of S, so I came right out of school with the mindset that one could compile any language or descriptive structure into another, given the right compiler framework and supporting technology.
I do not fail; I succeed at finding out what does not work.
It sounds to me like one of the appeals is that you can stay after work playing half-life with your new 'friends'. While a short-term cool idea, it gets old "real fast". Just because you work with a bunch of people, doesn't mean they are automatically your friends and that you will enjoy hanging out with them... It's nice to have cow-orkers you can get along with. In fact, it's very important. But do try to keep your personal life seperate from your work life (while participating in the obligatory team-building recreational outings). Also, don't under-estimate the sheer pain of commuting that far/long twice a day. If you ever decide to create a family, you will loathe the time you waste sitting on the freeway instead of playing with your kid(s). Having said that, don't just go for the money.
...the answer probably doesn't matter.
.NET well enough to get the job offer.
.NET is also one of the "nobody got fired for...." platforms nowadays, which suggests that there may be CYA in play. On the other hand, small companies aren't immune to this mindset either.
.NET and Perl, but that doesn't mean much. You could be part of a group doing interesting cutting-edge work in .NET, and part of a maintenance programming group in Perl. The language is a tool -- what are you doing with it? Is one more interesting than the other? Which one would you learn more in?
.NET, and it would take six figures or unemployment + an eviction notice to get me to work on Windows on a daily basis. There's also no way I would take a job that required more than 15-20 minutes of driving or an hour on public transit, again unless unemployment + eviction was involved. If I were in your shoes, unless I were planning to move for the Perl job, I'd probably turn them both down.
You've interviewed at both places. You have a rough feel for the culture of both places. You know Perl and
What's the management like? Odds are that it's better at the smaller place, but that's not a certainty. Working for a manager you don't respect technically or professionally is an absolutely miserable experience, because he or she has the power to make all sorts of stupid decisions. It's better to have a manager you respect but disagree with than a manager you don't respect but agree with, and a manager you don't respect and don't agree with means it's time to leave. Note that "respect" and "like" are different things; I like my current manager, but I think she's way out of her depth technically and faking competence poorly; but I've had managers in the past that I thought were absolute jerks but knew their stuff cold.
What are the coworkers like? Some places have such a strong culture of "we take care of our own" that you can't get fired short of gross sexual misconduct; places like this tend to gravitate towards mediocrity, because the smart people get frustrated with the drag and leave for greener pastures, while the incompetent people stick around because they can't get fired. This is much more likely in a large organization, which will have a lot of momentum.
What's the work like? You've said
Beyond that, at this point, you should know which one you want. No amount of money, for instance, would make me work on
Alternately, you could be asking for validation -- if you want to take the Perl job, go for it, but beware the commute. You can't buy happiness -- which argues in favor of taking the job you'd be happier with -- or time -- which argues in favor of taking the job with the least commute, or moving if that's on the table.
Whatever you decide, good luck.
I'll offer my somewhat unconventional advice, find yourself a unique overlooked little niche area to work in. Mine is Mac programming and even more specifically game development. Sure they're aren't too many jobs in that particular market, but on the flip side you have even less competition because there are even less developers with that specific skillset applying for those positions. I've had absolutely no problem finding employment in my 10 years as a professional programmer and have never once had to use a PC as my primary dev box, and I make pretty good money too. Not quite a much as some poor wretched cog in an MS corporate machine somewhere, but I have fun, love what I do and make more than enough to live comfortably. Just my 2 cents.
120 miles is at least a 2-hour commute (assuming traffic's moving well), so unless you're planning to relocate closer, that's 4-6 hours wasted each day unless the Perl job is fine with you telecommuting. Personally I couldn't deal with anything over 30 minutes for a commute. And if you're willing to look in a 120 mile radius, I'm sure you could find another Perl job that might pay more.
.NET and they're going to pay more and are around the block, it seems like a no-brainer. Work there for 2 years, save your cash, start your own Perl shop.
If you're proficient in
rooooar
Then go for .Net. I am brushing up against some limitations in .Net and with all MS tools it always seems like I spend an inordianate amount of time fighting buggy and limited tool kits just to get the job done (and you can't fix anything!). Which is not what I need to be doing, I should be solving problems in the problem domain.
.Net by accident, we were working on revamping some MS Access applications and were going to have a 'bake off' between .Net, Perl and Java. Then, right at that strategic moment, MS Access screwed us over real good. We had to scramble to get things running and since the other programmers needed to be retrained ( I was the only one with real Java, Perl, C experience) the decision was 'We can't wait we need to slap it together in .Net ASAP'.
.Net would not have been it.
Though I would usually reccomend the higher quality organization. You will not learn anything in either location if all they are doing is writing 'COBOL in drag'. And high quality also means that the environment is not toxic. A bad place of work will impact your health in a negative manner, which is not worth it no matter what the pay or what the growth potential may be.
I got into
If I had had a choice,
putting the 'B' in LGBTQ+
I loved the people I worked with. They were awesome. I don't, however, ever want to work with them again. I've found that it's nearly impossible to have coding standards with Perl guys. And I use coding standards here in the loosest sense. I should probably call it legibility standards. Like, "How about we try to always keep our opening and closing braces on roughly the same indent level?"
As long as you have full control over your projects and never have to troubleshoot someone else's project you should be fine. If there's a potential that you could be on call in the middle of the night for a guy who manages to put "map" or "grep" into every line of his code, then I'd say run. Run fast.
I'm not sure about Perl, but the developers (, developers, developers) at MSFT are doing really cool stuff with .NET, like LINQ. ASP.NET is going to support interpreted languages. Ability to integrate a functional language with languages like C# promises to be quite cool. Of course, who knows if you'll actually get to use any of this cool stuff.
The best description of working for a large company. Dilbert isn't that much of an exaggeration. You'll wake up in 5 years hating your job, hating your life, contemplating all manner of extreme remedies.
Take the Perl job and start moving them to Python*. Perl is dead for web development, but it sounds like this kind of shop would be able to move on to the next technology and let you have fun while doing it.
* rand(Python, JServe, LAMP, Ruby)
Kevin Fox
Small company: After working part time for only six months I was put solely in charge of enhancements to our main product for one of the largest buildings in the world (you would recognize it by name).
Large company: This is a large non-IT industry corp that I'm sure you've heard of. I have to figure out how to make major configuration changes on a system. The last person who successfully did anything with this system left the company three years ago. The source code we have compiles on average 2k smaller than the executables in production. Some of the parts were built by a company that went out of business years ago and we have no source code for those parts. The code has zero source control.
I haven't been in the business for that long (only ~4 years) but the small company seemed to have their act together more than my current company.
Check out my lame java blog at www.javachopshop.com
Money isn't all that, and there's a MAJOR factor missing in your information.... What are the overtme/crunch time/weekend situations like?
.com for 5 years, and some of them really sucked, but I dumped all of that money into my house. After 7 years I sold the house in the "perfect little suburban community" for a boatload more than I paid, and bought a cheap house, and I was able to put a huge chunk of money down on it, reducing my monthly mortgage payment.
Being happy in your job is a major factor of leading a happy life. If you hate your job, odds are you're going to hate your life. If you have to work a lot of overtime and weekends, it can really make life suck.
One good way of dealing with this is insisting on comp time for overtime. Make sure your company knows that you expect a fair deal. If you have to work 8 hours on a Saturday, you should get a comp day. They're hiring you, not buying you.
Also, money isn't everything. BUT, if you are young, and the pay is really good, it can't hurt to put several years into making good money as long as you somehow invest it. I slaved away in a
Now I have a low-stress job with greatly reduced pay, but I also have much smaller financial needs, and I'm as happy as I can be.
Always keep your eyes on the prize. Happiness.
... but like all small things it has the chance to grow. And you
can be on board. Apple and Microsoft where small companies too,
today their founders are mill/billionaires. Well, the chance that the
PERL-copmany becomes a new MS is very small, but when you want to make
big money/career in the large company, you'll have to spent your entire
worklife to reach that aim. When the small company makes it right in the
future, you'll automatically grow with them...
While I can't make your decision for you I can tell you what I did from my own experience.
My current job way underpaid me, and everyone knew it. I liked working here most days (you have bad days anywhere), but the offers I was continuing to get were getting too good. I was making 61,000 and was getting offers for 80k - 100k. I didn't want to leave but felt obligated to at least look, since that is no small amount of money and my wife and I are starting a family. I also told my boss my situation and how much the offers were for. She understood completely and vowed to get me a raise. I went and ahead and did a couple of interviews, and had a new job in the bad making 85,000, BUT it was for a major financial company. That means ties and what not (now I only have to do buisness casual (polo's and what not) 4 days a week. It was also a longer commute and I'd have less creative freedom. The boss came back with an offer of 70,000 and a big bonus and another big raise when that time comes around
I wreslted with the idea for a while and eventually decided to stay. Sure, the extra money would be nice but I've worked in some really shitty places, and being happy (or relatively) where you are is, for me worth a lot.
Basically it comes down to what you want. I also have a sizeable amount of debt I stupidly acquired in my youger years, but not having the extra salary simply means that some of the things I want I don't get to buy right now and it takes a little longer to pay off the debt, but I am happier during the time I am.
There are more things to life than money, at least for some people.
I would take the Perl job over the .NET job in an instant. Work is somewhere you will spend at least 40 hours a week at, and if you're not doing something you enjoy for that time you will be miserable. You will still be making more there than your current job, so money shouldn't be an issue.
I decided to follow the money. I work at a M$ shop during the day and also work at a bartending job for a fun environment at night. I run linux at home but am stuck using Microsoft at work. I think as I get older I will choose the Perl job but for now debt calls for .NET.
Comment removed based on user account deletion
I am borrowing heavily from someone else but here goes: .Net Job is the higher paying job because they have to pay you more today because "tomorrow" (5+ yrs?) there will be less demand or lower wages for the same position. So, in 5+ years you can reasonably expect to have a skillset that fewer employers will want or pay high wages for. When it comes to pricing and innovation the most likely scenario for Microsoft is they will be driving away more new business and demanding more money from their current customers.
.net and perl job is the price you are paying to learn a skill that will be in greater demand in the future. (e.g. "Paying your dues") Typically in the early days of any new market, you'll find lots of people who didn't earn very much, and maybe learned the business. The ones that are lucky enough to stick around that industry for 10 years end up earning cha-ching because they paid their dues to be there. Their customers, who were small businesses 10 years ago are much bigger 10 years later and will pay much higher prices for the few experts in the field.
The Perl Job is lower paying because the difference between the
It also depends on your personality. Personally, I am -much- happier earning a little less doing many different tasks and working with people who work together as opposed to large companies where you have a few tasks and "chinese walls" surrounding you.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
Imagine it's February. It's cold outside - there is frost on the ground. It's early morning, and it's still dark outside. You have to go to work. Which one can you imagine being least hacked off about doing: going to the Perl job, or going to the .NET job?
.NET that much. If you need the money, or you don't want to move/commute 120 miles, take the better paid job, but just realise what it is you might be giving up. That said, a move of 120 miles - or a couple of hours each way spent traveling - can be a big sacrifice in itself, so just think carefully about what you'd be sacrificing to do that.
Money is great if you're planning on saving it all up and doing something interesting with it. If you're just going to take money to do an awful job, and then splurge it on crap to make your life feel happier, it's a false economy.
I'd always tell somebody to take the job that is closest to what they would want to do in their spare time as possible. Nobody loves
Personally, I'd take the Perl job, but then that fits my personality better.
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."
see fun anyways you are having in your free time, doing perl stuff.
making money is also what you want to do so why not have both....
You sound pretty sure that you'll enjoy the perl job more, and a 20% increase in pay is significant. Just make sure that you won't be living beyond your means. .Net has much more of a future than perl, but that would be a terrible reason to take a job that you don't think you'll like. Anyway, you already have .Net on your resume, and a good developer should be flexible in their choice of technologies. 120 miles is way too far to commute though, so find some place to live that is close and I think you'll find that your life will be pretty sweet.
control and is a priceless commodity, once sold it is hard to recover. I would suggest going the perl route or a higher quality of life. If the perl team is not a good team, go back to the microsoft shop, they are plentiful and probably wont remeber you original resume anyway... To adjust for the pay, just don't spend any moneys you don't actually have. When you money is depleted stop spending it. just my .02
I can't tell you which job to take, but I hope your resume doesn't list decisiveness as one of your strengths.
[I keed, I keed.]
Also, keep in mind that technologies change over time. Don't assume that if you start out in perl you will always be using Perl. You may start a job using perl, but a year or two later you find yourself working in Python, Lua, or Ruby. The perl company may start some new project and realize that perl is not the ideal language for it. That is why it is important to choose a company also for its culture. I've worked for a large software company before and didn't have such a great time since I was just a small cog in a giant machine. When I switched jobs, I took a cut in pay (since I was also jumping industries) but enjoyed the new company so much more. Like they say, if you can, choose the job that you would do for free because you'll be so much happier in the long run.
"Oh dear, she's stuck in an infinite loop and he's an idiot" -Prof. Farnsworth (Futurama)
Make up your mind how badly you want to get out of debt. Make up your mind whether you mind a (roughly) 2 hour commute.
For my own part, in your place I'd love to go with the small, fun job, but I am the sole breadwinner for a family of 4, so money is unfortunately a big part of the decision process. Aside from that, I am deeply attached to my time with my children, so hacking 4 hours out of my day is pretty much unacceptable. I also want to get out from under some debt I worked up with the last "small fun" company I worked for.
4 years, no raise? Yah, I had to sell the house and go back to renting. That's been my experience with small companies. They'll tell you you're doing a great job, but the funds just aren't there to translate their appreciation into compensation. If you're really unfortunate, they'll actually ask you to wait a few weeks longer for your next paycheck. Try putting gas in your car with no paycheck. Never mind putting food in your mouth.
In your place, I'd go for the job with the familiar commute, better money, and if you're lucky enough (or better yet, good enough) to stand out and shine, you'll be much better off down the road.
Bottom line though, you have to make the choice on what you are willing to give up or not. Either way, I wish you luck.
> They play Half-Life together in the off-hours
Whether or not you can play FPS with co-workers off ours should not affect your decision to accept or decline the job offer.
This is equivalent to taking a job because they have better coffee or bring in doughnuts on friday.
Based on the percentages given, I would assume you are making 30k, and one job is offering 36k and the other is offering 50k.
Take the 50k, there is a very little that will make the difference between the standard of living on 36k vs 50k.
if it was like 70-80k... I would take the good place to work.
Internet Retail spaces are wonderful. Get over it!
If you choose .NET you will go to hell.
It sounds like you'd be happier at the Perl job, and you know it. Money can buy some degree of happiness when away from work. So there really is a tipping point where you should take a better paying job, if taking a low-paying job would make it difficult to get by. But since you'd be getting a significant increase by moving to the Perl job, I don't think you're near that tipping point here.
.NET offer. Tell them that you're having trouble deciding -- that you'd take the Perl job if they were a little more competitive. If not, it'd be a toss-up between the 2. There's a good chance that they'll actually increase the offer, and VERY little chance that they'd rescind the offer. If they do increase the offer, definitely take the Perl job. Otherwise, write down the pros and cons of each, to get a better picture in your head.
My advice would be to talk to the company with the Perl job, and let them know about the
I'd also like to agree with everyone who says not to drive 120 miles to work every day. That'd just make you miserable, taking away most of the advantages of the Perl job.
Software sucks. Open Source sucks less.
Comment removed based on user account deletion
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.
take the big money that's close to home doing boring work. invest wisely, retire early, and spend your long retirement writing Perl in Florida. OR take the perl gig, and create the perl "killer app" thereby becoming fabulously wealthy and able to write perl code whenever you want. Those are your only two options.
Obviously the Perl folks are happy because they don't have to use .NET and the rest...
Obligatory language flame: Imagine how much happier they'd be if only they used Python!
My point: Reeeaaalllly look at what will make you happy now and in a few years. You can't predict the future, but it's something to keep in mind while navigating your way there.
--marmot
Is that they have better employee cohesion at the Perl shop.
;[enter].
I find that coding in Perl is just as enjoyable as coding in C#. VB.NET is not all that great, but that is due to the lack of smoothness in coding that it provides. I'm simply too accustomed to ending lines with
Go for the money, it'll let you be more flexible in your off-time.
You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
At the perl job, you said you'd have some control over the projects - will this give you the opportunity to bring in PHP, Ajax, LAMP, app servers, glassfish, tomcat, java, javascript, python, ruby, etc., etc? People that are telling you that perl is dead end may be right about the perl, but if it's a linux shop, you can really branch out into a lot of these other technologies that will really make your work shine, will be much more fun than .Net and will be marketable in a lot more places in the future.
Obviously, everyone knows its better to have a happier life in general. However, in this case, who is to say that the people are no fun at the MS shop? You have to realize, when push comes to shove, no company is ever truly looking out for you in the end. You need to be proactive and look out for yourself (and family if the case dictates that). You can play games with other people at other times, you do not need to rely on your co-workers for that.
.NET positions. But also note that maybe you should not look at just PERL positions, as most people say .NET when they mean (.NET/HTML/IIS/SQL Server, etc), as they Linux webadmin when they mean (LINUX, Apache, MySql, PERL, PHP, etc). But I get your point. If you truly only focus on PERL, then you have an issue, but I doubt you do. Good jobs will always be around for smart people.
.NET position.
Also moving 120 miles for it? No job is for certain. You may get their and find you can not stand them. But in the process you give up everything just to find out. Thats a big negative.
Debt? Debt sucks, and one is paying substantially more? Again, should be obvious by this point.
As for job prospects. Yes, there are more
So yeah, since debts a concern, and moving is never really fun, and its offering substantially more money, and only actual kind of benefit you really push is a "possibly more fun environment over the big place", hands down, go for the
[Notice, its not about what technologies, its all about money, lifestyle changes, assumptions that are incorrect, etc].
remember what happened to the Jedi seeking to balance the Force...
job satisfaction over $ I recommend, you can always become a mindless cog at a later time.
"If...you can't be a good example, then you'll just have to be a horrible warning" - Catherine Aird
Make the decision yourself. If I were with one of the companies that made you the offer and knew you made this post, I'd probably rescind the offer. I'd want an employee who's confident enough to make his/her own decisions about where he/she wants to work.
Choosing a job is a personal choice and I'd NEVER consult a bunch of anonymous people I don't know for advice. You're the one that has to live with the consequences of the choice. "Should I take a job where I'd be happy or should I take a job with lots of money?" Figure out which is most important to you and make the decision.
Life throws many curves at you during your time in it.
My suggestion would be moot on this, but I can ask a question:
Which do you prefer? Enjoying your job and you co-workers and going home having enjoyed your day, or just working to get paid and wishing your co-workers would leave you alone so you can get some work done and going home wondering why you still work there?
Answer that question, and you'll know which offer to take.
Things you can say to your dog that you can't say to a girl: "How about a nice bone?"
For most people, work is the only part of their life that gives them money. Therefore, money is the most important thing about work. You can get self-fulfillment from your hobbies, family, friends, etc. However, that doesn't mean you shouldn't do your research about a prospective employer. Unless you hear any horror stories about shop offering you the higher-paying job, take it.
"The advanced societies of the future will be driven by competing systems of psychopathology." -JG Ballard
H = C - D. H represents Happiness. C represents your current situation. D represents your desired situation. When your current situation meets or exceeds your desires, you're happy. You have control of both C and D. Most people forget that they control D and cede control of it to "Marketers." So, is it more important to you to be debt-free or play Half-life with your co-workers in the off-hours? Do you personally prefer .NET or Perl? I would NOT give language a lot of weight unless I was giving financial rewards a lot of weight, then I'd probably go .NET.
To me, being a happy software developer is related to the puzzle solving nature of the work, not the language or operating system. I really like debugging and just love optimizing. I don't care if it's SQL or C# or Java or COBOL or C++ or C or 80x86 as long as the development tools are not an impediment to the problem solving. It's also fun seeing people use my products in the real world.
P.S. I know of some .NET shops that have XBoxes and play Halo together during the work day and I know of some UNIX shops where gaming is viewed with great contempt.
Fact: Perl is a dead programming language. No one tries to build enterprise type systems in perl anymore. It is a dead system. If you go with the Perl shop your skills will become more and more out of date. .NET has solid object-oriented desgin and a vigorous development community behind it. The answer here is so obvious...
But whatever you do, don't get married.
choose uncertainty
One thing I've learned in my career is that if you're not having fun at work, then you will eventually become stressed, irratable, and not enjoy your day. at all. So, even though I'm a .NET junkie, I say go with the PERL job. You will have a better chance of becoming an important player in the company as it grows, and you will have a more enjoyable time, by the sounds of it.
Again - Fun is #1. Money, Fame, hot women - those are secondary.
All is prevelant in the world...
Take the PEARL job, but don't negotiate more cash, take the risk and negotiate a small ownership share, potentially deferred to after 12 months of meeting the companies expectations. If the company booms then you're in the door and can work up more ownership, if it breaks the small share shouldn't hurt you. Of course this is assuming that you have skills to sell and the kahonas to ask for this type of thing.
Of course never dismiss the other offer until you've signed the contract of the one you want.
A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort.
enough said ;-)
you would sell your house and move? or would you spend at least 4 hours a day in an auto? either way it doesn't sound like a match for Pooh Bear.
moving sucks. commuting sucks worse. go for the closer job that pays more.
First. You need to choose something that you will be happy with.
Second. Language choice should be aligned to your professional growth path as an engineer. What growth opportunities does it offer? I'll higher a solid engineer any day over a language technician. Programming language choice also affects job stability and opportunities to some degree. How will this job look on your resume when you are looking again? What are the growth opportunities in each company? A large company doesn't necessarily offer the most growth but it might.
I guess it comes down to a balancing act between what you enjoy and making money.
:-)
I've been in the industry for 15 years now. I have worked on Windows, Linux, Mac, and OSX. I have cut C++, Java, Perl, Jython, a little assembly, and some rather obscure language code. I have worked for top 5 software companies and very small startups.
Every where I have worked has had their pluses and minuses, but I have to tell you we live in a world where money talks and kewl fades over time. While going the Microsoft route may not have the kewlness factor that being a perl Unix/Linux geek does, it does have more earning potential. And in the end it's things like putting food on the table, paying your mortgage, clothing your children, being able to send your kids to college, living in a safe neighborhood, and the like that matters.
I also happen to believe being a full-time Perl coder sounds a bit odd to me. Perl is an OK scripting language, but it sounds like the Microsoft shop may be more hardcore "software engineering" -- what ever that really is
Just my $0.02
Here's what I'd do in your situation. I'd climb up the ladder at this .net company and convince them to do business with the perl people. Then you can work in that group and you have the best of both worlds :)
.net job is going to be hell. This is possible, but every situation is what you make it. You're a developer, not a congress librarian. Take the .net job and make it fun. As an example, the job I'm at right now required business casual dress and 8 to 6 hours everyday. I come in around 10 and wear jeans and don't tuck my shirt in and I shave on mondays. I do whatever I feel like because I'm valuable to the project and the people I work with love me. Do the same thing, make yourself irreplaceable and make your managers want to keep you around forever.
.net is that large software makes money, not small software. And you don't see many IT managers choosing perl for big projects simply because having Microsoft or Sun behind your project is just looked upon as more stable than having OSS behind it. I personally would much rather code in Haskell than either of these languages.
If not that, consider that a lot of people are telling you to take the perl job as if the
The reason I lean towards
Some generalizations that may or may not be true about your situation:
.NET experience will be very relevant.
One thing about smaller companies, where everyone knows each other and hangs out, is that work often becomes your life. Smaller tech companies in my experience demand a much bigger time investment from their staff, the people you work closely with will be your friends and you will not want to slack off and let them down. Based on the description, in addition to the increased time investment of a smaller company you are making an additional investment of time in the car. Basically you will be either asleep, in the car, or at work.
In general, at a larger company, you can work your 8 and go home. Sure it might not be flexible, you might be expected to be there at 9am every morning or whatever. But your real hourly rate will be much higher, not only with a much larger increase in pay, but also fewer hours worked to bring that pay home.
Regarding career progression you can have the best of both worlds here. Working as a cog in a machine can give you a lot of time for off-work activities. You could invest some of that time per day developing or contributing to an open source application. If you find that the life of a cog does not suit you, having some open source development experience on your resume could really impress a hiring manager at a smaller shop. And of course of you choose to stay at larger 'enterprise' companies, the
Disclaimer, I'm working at a small shop/startup right now, and took a pay cut to do so. The hours are brutal but the work is interesting and the people are great. But I would have stayed at my cushy IT management job if it weren't for the big upside (stock options, party like it's 1999). My decision also had a lot to do with where I was in my life; this is probably the last opportunity I'll have to work in a startup kind of atmosphere. Once my wife and I start having kids I won't be willing to swing those kinds of hours.
Just thinking...
.NET place would let you negotiate a 4 day work week? By my calculations you'd still get 32% more cash than at your current job, AND is still more than the Perl job, AND you'd get an extra day off EVERY WEEK for pursuing hobbies or whatnot.
What if the
But that is just some fun outside-the-box thinking. In truth, I'd think hard about what I would enjoy about each place. How are the people? How is the work environment? Which one has a nicer office? More fresh air? More space? More Perks? Which one has the people you'll enjoy spending time with? Which has the work challenges that will make your days enjoyable?
Take the job you would most enjoy. Go to the environment you would most enjoy. Sure, big bucks is great, but if you end up hating your job, or hating the people you work with or for, then what's the point. Alternatively, if you plan on not staying very long and happiness in the short term isn't important, then take the better paying, closer job and invest all the extra money.
--JLockard - "Some mornings, it's just not worth chewing through the leather straps." - Emo Phillips
I live in Austin, TX and my commute is and always has been 30 minutes or less (sometimes a lot less). A 120 mile commute will totally s*ck. I'm not too hot on all of the MS stuff but a PERL job isn't that great either. Maybe if it was Java and a lot closer it would be worth less money to work there because small companies can be fun. Take the money, short commute and play Half-Life with your buddy's when you get home!
-Lee
You are asking Slashdot which job to choose???? Most of of Slashdot is either misfit teens, overaged geeks living in their parents basement, or sysops that eat potatoe chips / drink coke / and tell everyone how busy they are all day lol.
Me, I would take the Perl job. Assume they dont want you to write entire programs in Perl. If they do, you might give these guys an IQ check. Might as well have fun whatever you're doing, even if it's work. Course my gf always told me I was nuts.
Another thing to consider is why they play Half-Life? Why not WOW or COH / COV. Gee that's what some late nite programmers, who sleep in their office, play.
And then move closer to it.
Money is no substitute for happiness.
Technoli
At my local university, part of the Bioinformatics curriculum involves learning Perl. Combine this with the fact that people working in biotech are considered to have the highest rated jobs in the country, even above actuarys, systems analysts, software engineers and mathematicians, and the temptation of Perl starts to look more appealing. Of course, to get in on any of that biotech research, you'll also need a good background in both chemistry and biology, but if you do then I would definitely say go with the Perl. If you're a strict CS guy whose only interested in the typical programming job, you might be better off with .NET or J2EE.
I know only one programmer who "loves" .NET, who incidentally also "loves" pretty much everything Microsoft does, or at least argues loudly in their defense. The rest tolerate it.
Conversely, every Perl programmer I know of enjoys the language and their work.
I do not believe this to be a coincidence....
Skip both and go for Fortran 95!
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?"
.NET pays well but that will change since schools are saturating the market with fresh .NET coders (think Java & PHP).
That is because most companies that work with perl don't advertise their positions on DICE. They post their opening on - http://jobs.perl.org/
And let me tell yaou. Perl coders are ALWAYS in demand. The average starting salary is normally from 60k up to 100k depending on skills set (OO perl, mod_perl, etc).
As for myself I would continue working with perl. It's a specialist language that is not going away anytime soon. Currently
Just my 2 cents.
P.S. Nothing compares to CPAN.
One think you may want to consider is that if you haven't gotten paid to do Perl and Unix programming before, it may well be worth it to have that on your resume. Employers are a lot more likely to hire someone if they've got the skills and have used them in a professional setting. Since you've already done professional .NET development, taking the Perl job could improve your career prospects the next time you apply for a job that needs Perl skills.
I was in a similar situation not too long ago. Take job A, which paid less in a smaller company, which had work I was more interested in; or take job B, which paid more in a larger beaurocratic corp. I took the better paying job.
And, it was a mistake. After the first couple initial months of employment there, I got bogged down by the tedium of being a cog, always working on essentially the same thing, and in a language I hated. I'd get off work and I would be utterly exhausted, despite having done precious little and having gotten enough sleep the night before - in essence, I got depressed. It got to the point where I'd do little more than go to work, eat and watch TV when getting home, and then go to sleep - only to repeat the next day.
The job A was available 8 months later, vacated by their new employee who, ironically, came to work for company B. So I quit and went to work for company A, and I couldn't have been happier - even if I made less (and had to put more towards the debt I created while working at company B - depression does some fucked up things to ones rationality), I was happier, and was able to spend more time doing things I enjoy (which didn't cost much), spend time with family, had more energy, etc. - in general, I was happy.
YMMV.
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
For gods sake take the net job and cultivate a fun life outside work.
Aim to enjoy your life while balancing it with responsibilities. I am happy working a Perl job right now, but was previously miserable working with Ruby on Rails and ATG Dynamo for a shitty company/manager. I took a 10% pay cut moving to my current job, but I'm more content with my job and company than I've been in a long time.
If you really need to pay off debt; take the money, pay off your bills and look to switch again in a year or so.
On the one hand, the Perl job allows you to have more responsibility. And responsibility makes people grow.
On the other hand, I saw some people in small companies being too busy moving from a project to another, not having time to horn their own skills. So small doesn't always mean growth. This is a call you need to make.
I personally changed my job 3 times in my career, going smaller in each step. I found myself happier every time I switched to a smaller company.
If you don't mind dealing with moving, I would go for the perl. With the .net you will be jumping through hoops 24/7. You are just worthless ant in the hill, while at the perl you are a respected leader. Seriously, if you value that extra money enough to go for the .net, you must live a very sad life.
What bloody inane question to submit to Ask Slashdot. Next Ask Slashdot: "I'm getting dressed and totally don't know what colour of shirt to wear. I was thinking blue, but I also have a black one I might wear. PLS HELP KTHXBYE!".
.NET? By yourself, jackass.
Here's my answer, take it or leave it... How do you choose between Perl and
A lot of good points have been made here, but I haven't read anything about documentation yet. If you go with the .net shop, you're going to be up to your ass in documentation of every tiny little detail. Think about what it's going to be like spending half of your time in meetings and documenting stuff.
Also, I work in a mostly MS shop and every time Linux or open source is mentioned, either they give you a dirty look or don't have any idea what you're talking about. There's no tolerance for anything that steps out of the MS best practices framework which only seems to include MS products and solutions.
I've been stuck in a shitty little cube for 8 years now. Take it from me: go for what's fun and interesting and the money will at least be okay. If you're still in doubt, go rent out Office Space before you make a decision. Good luck!
For me, job satisfaction by far outweighs the money. If I don't like what I'm doing, why would I want to go to work?
Tyler Durden said "This is your life ... and it's ending, one second at a time".
.NET hacker, but I wouldn't rule out the latter based only on that.
It sounds like you think Perl will be more fun (I agree). In 5 years, do you want to have had more fun, or made more money? That's the question you have to answer, and only you can.
I hear a lot of people talking about "prospects". Whatever. When I look for hires, I'm more interested in what they did, than what language they did it in. As long as it's fairly interesting work in Perl, I don't see how the language would hurt your prospects at all (at least in relatively smart companies). On my current team, I'd be much more likely to hire a Perl/Linux hacker than a
You mention debt. If that's a serious issue for you, you have to take that into account; but remember that both jobs pay better than what you make now, and no job is peramnent.
I have many friends. Some of them I would never be willing to work with. Others I'd have no problem working with, even if we aren't the best of friends.
.Net? for fun, who cares - both languages let you express yourself. For resume building, .net for sure (and I'm a unix/oracle admin).
I can't imagine how "gaming with each other offline" would be a factor in job choice. You want people who you can work with on a daily basis. Are they finger-pointers? Do they build fiefdoms at work? Are they helpful? Bureaucratic (which is both good and bad, depends on situation)?
Others have said it, but you need to factor (in random order, not priority):
1) Money
2) Time spent (including travel)
3) responsibilities vs your expectations (are you being asked to program 80%, manage 20%, when you want 20/80? etc...)
4) satisfying work (not the same as fun).
5) vague - environment (you seem to like the perl place's environment, but these things change when you work there)
Perl vs
-Jeff
Please learn the difference between a dissenting opinion and a troll before you moderate.
Although 90% of all the jobs involve M$ products, it appears an unusual amount of people are asking me to migrate from M$ into more NIX oriented platforms because of all the security issues.
.NET programming when in a few years that client might wake up and smell the roses and want to migrate from .NET web apps to the more traditional UNIX way of doing things...
It seems a waste of time to put so much effort into
In most cases, I get to choose the languages I'm comfortable with (Python, C++), build a parallel system from scratch and only worry about how to interface with their existing database, of which Python has a rich set of wrappers for most DB's.
This allows for no downtime for the client, as both systems can co-exist at the same time. But I envy you that you have two offers...
... http://thedailywtf.com/ then decide. Look at the number of things that can happen when large corporations employ vast numbers of marginally competent programmers to work in an overly complex framework. I admin that I am biased, mostly because I am a Perl programmer; pretty much have been for over a decade. I spent six months doing Java and hated it. The company I worked for switched from Perl to Java and IT seemed to fall on its face in the process. I was working with mostly the same people that had been Perl devs, but the Java environment was awful. I nearly ran when I was given an offer to go back to Perl.
.Net and Java are not the same. I have never subjected myself to it. Ultimately, I think enjoying what you do is extremely important, unless you feel that you are getting so obscenely overpaid to do something that you hate that you can justify to yourself doing it.
I'm sure that
Congratulations and good luck.
Especially since the next version of Visual Studio seems to separate the work into Architect, Developer, Database Admin, and Web Developer positions (and probably more) if you can afford the $10,000/seat licensing fee.
SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
I wonder why nobody suggested this:
Tell the big company that you're considering another option and ask them for a raise.
They should give you 3-4% on top of what they've offered.
This will show you that they indeed value you / need you.
Go with the big company, unless the city that's 120 miles away you're moving in is much better - where would you feel more at home, what's the price of houses, etc. etc..
With both places being equal or close, definitelly go with the bigger company - you will have a chance to change jobs within the same company as well.
And remember, the salary you start with, doesn't go up that easy unless you change companies.
Good luck.
Take the fun job. You're asking the question because your heart is in conflict with brain. Follow your heart. Nobody ever lay on their death bed and said "I wish I'd taken a job I didn't enjoy instead of having all that fun!"
have courage
A fun workplace 120 miles away vs. a short shot to a .net job...
.net will open more doors for you than learning perl, but that's speculation. What's not a matter of taste or speculation to most people is that a 2 hour commute both ways stinks on ice.
I'm liking C# a lot more than I thought I would, and can't stand perl, but that's a matter of taste. I think learning
I would submit that in the four hours you'd save on your commute, with all the extra money you'd have in the bank, you could have quite a lot of fun by taking the corporate job.
(And sure, money doesn't buy happiness... but without money you can't buy anything!)
Here's the question that should really determine your answer: are you in a position to move? If not, then take the .NET job. Four hours of commuting each day will suck whatever pleasure advantage the Perl job might give right out. Unless they'll let you work from home at least three days a week, you'll burn out from commuting.
.NET (or whatever) shouldn't be that much of a challenge.
If you can move, though, then I'd take the Perl gig. Sure, maybe Perl won't lead to any great career advances, but I went from C to a 4GL then back to C then to a different 4GL then back to C then to VB then to Java then to PHP and back to Java (with brief stops at C++, Perl and ASP along the way). If you think the prospects are better using another technology, then pick up the tech and learn it on your own. One of the hardest things about learning web development (for me, anyway) was wrapping my head around the whole stateless-session thing, picking up Java and the DOM and HTML was pretty easy. So if you're already a web developer, learning the specifics of
Just junk food for thought...
Look at it in terms of are you going to enjoying the environment you are going to be working in. I personally took a job that paid a little bit less to work for a company that cares a lot about their employees and treat them very well. Or I could have worked for bigger company where you are basically a number. Go where you fit in the most and where you will enjoy it the most, the money isn't always the key factor.
It boils down to which will make you happier. Money is good but I've found that as a developer, I will take a smaller salary for more control, more freedom, a better work environment and an easier commute. It has little to do with the language unless you like one more than the other in which case that's another factor to take into consideration.
This is my sig. There are many like it but this one is mine.
Remember that people who say .NET has no future as perhaps just as dumb as the one who said that also of APL, PL/I, the token-ring LAN, the MCA bus or OS/2. Something which is launched by a big company cannot fail to have a bright future. Once in a while.
Signature omitted in order to save space. Thanks for your understanding.
The .NET megacorp pays you more money because they not only want your labour, but also want to crush your personality. If small and big companies offered the same money, no one would want to work in noisy cubicles and with incompetent drones anymore. That's why the big guys pay more. The smallish Perl company, on the other hand, doesn't need to throw you so much money because they are going to pay you with a more comfortable working environment. You don't get paid only with dollars. Knowing this, it is then up to you to understand what you need most: Money or your sanity? If you are in debt and the Perl salary can't service it, then your only option is to be fully paid only with money. If, however, you have the luxury to accept a mixed money/happiness payment package, then you may want to accept it in order to have balance. There are of course other variables in the equation like future job prospects. To me, the fact that you ask Slashdot about this and you haven't already accepted the big NET salary means that you cannot or don't want to sell yourself for the money. It will be very bad if you end up depressed at a cubicle between drones counting the time left until you can leave. Some people can do that for the money, others for some job prospects, but others really are too revolutionary to allow themselves wear the corporate-drone-in-a-cubicle costume for long hours each day. Only do this if you really need the money or if you have other needs that can only be satisfied at that company.
It seems like you'd enjoy the Perl job. Tell them about your other offer and see what they come back with. They might not be able to match it, but if they are able to get to say, 140% of your current salary, it might be enough.
No, I will not work for your startup
I find C# and Java to be annoying compromises of languages and never the right tool for the job; and find that a combination of (Ruby or Python or Perl) and C is better in all ways.
When doing high-level stuff, Ruby is a far more productive environment than C# or Java; and in the rare times you need low level stuff (hand-tuning spin-locks or memory allocators; etc) C is far more flexible than C# or Java.
C# and Java are almost never the right tool for the job, and I think the only reason C# and Java exist when a clueless CFO is taken to an expensive lunch by Microsoft or Sun and gets convinced to "standardize on only one language" to save costs in the same way that a construction crew saves when they standardize on only using hammers to drive all their screws and glue.
If you follow your bliss, you put yourself on a kind of track that has been there all the while, waiting for you, and the life that you ought to be living is the one you are living. Wherever you are -- if you are following your bliss, you are enjoying that refreshment, that life within you, all the time.
Once you are on this track the money will follow.
Unless the higher paying job comes with an exceptional amount of overtime I say take the money.
Playing games at work is great and all, but think of a. earlier retirement and b. buying many more toys/house/etc to enjoy on your off time.
Seriously. I just changed jobs for an even pay and even though I think it is the right move long term, it sure would be craploads easier if I had a little extra feel-good money.
Alot of people have worked for big, small and medium companies so its not supprise im one of them.
One thing I always consider when taking a job is "will this be something that'll effect what i do for fun?". My first job was working as a 3d graphic artist (i LOVED doing modelling and rendering). But doing that job for 8 hours a day totally killed my inner graphics child within 6 months.
I dont code for a living, but I do it for fun and i'd probably never code for a living because of that experience. Having said all that There seems to be 2 types of people in this world, those that take one job and fret they should have taken the other job for the next 2 years and those that take one with no regrets for the other.
One more point, i learnt c# in about 10 minutes (being a c++/java and having used the mfc and various other MS dev environments for "fun" for some time). But perl I often find im re-training myself everytime I need to use it, and thats not a bad thing.
I'll end with this though, a job (IMHO) is simply something you do for 8 hours a day to stop you from getting bored during the day (or to stop you from sleeping 100% of the time), it is important to at least be confortable with your job but a the end of the day its just a job and chances are you'll probably be doing a different one 5-6 years from now.
I think that realistically, Perl is not a good language for serious programming. It is so convoluted and cryptic that code that you wrote a a year ago is almost unintelligible. I have programmed with Perl for some complex projects and at the time the code was clear to me. Perl doesn't lend itself to self-documented code, so you'd have to be a commenting nazi to be able to understand it enough to maintain the code a year or more later.
Granted, there are OOP libraries for Perl that make it much more like a "real" programming language. But those libraries aren't part of the base language and there's little uniformity to it. You might as well use C++ or Java and be done with it.
I'm sure some will disagree with me. I tried to like Perl back in the day. It's tailored for quick & dirty scripts, not complex applications.
Comment removed based on user account deletion
Perl can be fun, in the sense of "guess what this random set of chars can do". If you are never going to have to maintain any code, sure, go with Perl. If you enjoy writing larger, structured, easy to maintain programs, you are better off with .Net.
.Net world that's just syntactic sugar (despite what the C# bigots would have you think).
And don't worry about VB.Net vs C#. Doesn't matter. In the
Someone rightly replied that in a big organization, you'd most probably be working with drones. Bots, rather. Who are programmed to do what they have to do daily, and who'd most likely be lifeless creatures who you'd detest hanging out with. I am not saying this is the case in all big organizations, but that's what the law of averages says. And you'd just be one amongst the crowd. Just another expendable employee. With a smaller organization, there are many advantages, as many have pointed out already. You'll have a say in what the company does. Best of all, you'll have freedom. I guess the real argument here is not about the technology, but rather about the kind of organization that works right for you. Just get your priorities right (money or happiness), and you'll know which one to choose. P.S. - Sometimes, money IS happiness :o)
Better future with .NET on the resume, MS is going to be dominant for next 5 years at least in the industry probably longer. PERL is on its way out, even if Linux completely dominates MS PERL will not be the dominate language of the future.
Plus all jobs get old, playing half-life may be fun at first, but you may find doing small projects by yourself gets boring after awhile.
Perl:
Once you know a few general-purpose programming languages, it's easy to learn more. A small shop is much more likely to let you experiment, even try mixing in other languages like Python and Ruby. I suspect you'll be in a better position to grow as a programmer at the small shop, not to mention the importance of a decent working environment. You won't learn as much about management and company politics, though. Try moving as close as you possibly can to the new office -- people generally rate their commuting time as the worst part of each day. IT job prospects are usually better in cities, too.
Money is nice. However, there's a good reason that big companies tend to hire lots of
If you're young, there's probably more in it for you with the Perl job. Financially, you're taking more of a risk, but the company could also give you stock options. If your debt is from student loans, don't worry too much, the interest is low and you're not expected to pay it off immediately (you're supposed to be investing in skill, not cashing out at this point). You'll be closer to the company founder, which means you'll have closer connections to the startup club -- not a bad crowd to hang with. Going the small-company route generally means you'll have a lower raw salary, often some share in each company's future, and regular offers to join your buddy's startup.
But if you're in massive credit card debt, or older and caving in to the financial pressures of a family and a mortgage, it's probably time to cash in for the stability of a .NET programming job. And if you're interested in becoming a manager, there's probably an opportunity to gradually climb the ranks there, too.
Don't go for the Perl job, it's a dead end. While I love Perl the fact is that companies are dropping it left, right, and center. In my company the use of Perl is prohibited for the development of Internet sites. The huge drive behind this is security. It's hard to hire "professional" Perl scripters, as a result Perl tends to draw inexperienced developers who by way of being inexperienced don't understand the basics when it comes to secure coding. Just ask the average Perl coder to turn on strict and listen to them rant - that's because their code sucks and won't pass the extra review.
Money first, fun later, small bites at the large system are long in waiting but in time there will be change. Your time off is your time off to do your own stuff. It may kill you inside for a while but after a while you relize the numbness is all the same.
Your first priority is that you should like your work... If going to work is like going to hell everyday, then it's time to look for another job...
.NET, in a few year, .NET will be obsolete and it'll be another Microsoft technology. On the other side, you've PERL which has evolved but remained basically PERL...
Don't forget that what is the most important is YOU and not your job... Your job is going to take nearly 1/4th of your total time, which is nearly as much as your sleep and more than any other thing you'll do...
In the long term, I'm not sure that Microsoft technologies are such an asset... Because they are everchanging... A few years ago, you'd have to be an MFC wizard, now it's
There are a few "stable" technology, which stayed after many years... C, PERL, PHP, JAVA,... And some whose future is unknown as they are mostly used by Zealots (Python, Pike,...). Old school VB was such a stable technology, until Microsoft decided to wipe it for VB.NET...
You've the choice between a job where you'll be someone, you'll have your own projects, your colleagues will probably become friends, and a job where you'll be a number in an inhuman environment...
Money, for the win!
My other first post is car post.
.NET is without question the more marketable choice. However, there are other factors to look at. How stable are these companies? How well do they follow various software methodologies? Which company has the more competent or scrupulous managers?
Is this Perl shop just using Perl? Do they use web services or RPCs with their web apps? What kind of database do they use on the backend? Perl isn't too marketable in and of itself. However, Perl with PL/SQL might be. Maybe they need some sort of business logic written as well. I've never seen any serious software shop run 100% on Perl.
Also, if you become a real Perl guru, there's some marketability there. Of course, you need to write articles, contribute to projects, and possibly write a book, but it can be done.
Incidentally, there's something to be said if you've got two good job offers. Your skills seem pretty marketable. Lastly, there's something to be said for having fun at your job.
What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
If you take the job you will enjoy, you will be a happy and motivated worker. They will notice you and promote you because you are doing well in your job. You will be too busy having fun to watch the clock and worry about how fast you will advance monetarily. I would give almost anything to be in your shoes. If I could be working and happy with my employer, that would change my whole life around. It sounds to me like the perl job would be kind of a family shop, and in the Microsoft shop you would have to compete with so callled software engineers popping out of the Microsoft University. Obviously the smaller job will be more innovative, and you will have more opportunnity to be visible for your efforts. As the Microsoft shop get squeezed by market pressures, your job security may suffer. In the over competitive Microsoft shop, you would be wagged around trying to force the Microsoft technology into the shape you need. In the other shop, you can write what you need. The experience at the smaller shop is multiplatform and will look good on your resume, and the smaller shop works with technologies that don't become obsolete every two years. Make the right choice.
I worked for a small company similar to the one you are describing, then moved to a big one for a lot more money. I stayed there for 9 months, and got fed up with the typical corporate bullshit, fed up being treated like a number, fed up with the idiotic decrees handed down unilaterally to IT by managers who knew nothing about IT. I went back to my previous company, where I'm making significantly less monay, and couldn't be happier since. Let me just say that the culture and the people at work are hugely important to your daily "job happiness". It's worth it to make less money for a job you can actually enjoy, and keep in mind that if a small company starts to grow, the original crew tends to become the managers and team leaders for the new blood. Just my $0.02.
Maye sure you don't reach any 24 bit limits.
You may brake things.
Badly.
IANAL but write like a drunk one.
Unless you're financially strapped, I'd go for the Perl job in a flash and I'll tell you why. You say you have a lot of Microsoft experience already -- that's good. But with Perl experience as well, you can invoke what I like to call the "old longhair effect" -- you can appear to some uninformed IT managers as having a breadth and depth of experience greater than you actually may. This has benefits, if you don't abuse it: like getting picked for challenging projects, being asked for your technical opinion in business decisions, and having greater freedom to choose your next job -- all of which also adds to your actual expertise immensely. Now obviously, this won't work in that small Unix web shop with the Perl job...its more something to bank on for future positions in bigger corps.
Get yerself all Unixed up while you can! I can tell you from experience that it has nice benefits.
I have experience working with open sourced technologies and frameworks as well as Microsoft technologies and frameworks. While Microsoft shops are nice, and while developing applications using their tools and technologies are also pretty convenient, you can't be a true guru without mastery of open sourced technologies or frameworks. Developing with open sourced tools require you to really figure out the underworkings of how it all works. Configurations are usually done with XML, and often times if you come across a problem, you'll have to really dig and while this could be time consuming, you learn a lot. Microsoft, on the other hand, since you pay for licensing, issues and problems are usually well documented and you can find a solution easier on the net than with open sourced problems. You could also call up support as well. Configurations are done with nice little wizards, no need to really do the grunt work. I'd recommend you to do what you really prefer. Yeah the money's nice, and commute also plays a big role in any decision, but if you make a decision based on what you'd like to do from a software development perspective, you'll be happy. My commute to my job is an hour and fifteen minutes, but I still enjoy it better than any other job I've had in the past.
Do a reverse opportunity cost (I'm not referring to that awful teen show to the dismay of some).
.NET one).
Picture yourself in the higher paying job (the
Then think to yourself how much would you be willing to pay to have each of the advantages of the other job.
eg. If job B requires you to commute for 2 hrs a day, how much would you be willing to pay to have that be 1 hr instead? If job A is monotonous, how much would you be willing to pay for a job that challenges and inspires you on a regular basis?
Much of my 15 year software career, I've worked as a contractor, which allowed me to work at many different companies. I can tell you these things:
- take a position that you know you can last at least a year at; recruiters and executives tend to dismiss resumes with too many short term positions regardless of quality of the candidate.
- 120 miles each way on a commute vs a walk to work means you're losing up to 4 hours a day...that's an amazing amount of time, permanently and unproductively lost. You want to become an expert on a new technology? You just received 4 hours of "paid" training each day to do it.
- contrary to popular belief, being out of debt is a good thing.
- while having a broad spectrum of skills/technologies is useful on a theoretical level, hiring managers these days are usually seeking highly skilled and specialized workers that can fill specific needs. My highest rates have occurred when I moved from database generalist (dba) to db specialist (db developer, db architect). However, what happens is, as you move up the food chain, the overall number of positions decreases but the quality/pay of each position increases.
- quality of work environment IS a critical component of your decision AND is only valid (IMO) when the other factors of pay, project quality, commute, and work/life balance issues are in alignment. FYI, I just took a new position where I got it all - short commute (can even bike to work), exceptional work environment/small company, excellent work/life balance (no more friggin 24x7x365 ecommerce projects!), and an acceptable pay rate, and the technology and job description/responsibilities are right in my sweet spot. The pay slightly less than my prior job but still a very good salary.
- lastly, a very critical item: financial stability of a small company. You must do due diligence on a company you contemplate working for, and many will not divulge those numbers. Good, solid firms will divulge enough to give you a sense of where they're at, flaky firms will obscure and deflect such inquiries. It is your responsibility to ask those questions. How great is an opportunity if your paychecks bounce or the company shuts down a month after you start? I LOVE working at smaller companies and the risk is higher there, so the management must be excellent (you should be able to review their backgrounds online). Ask about indebtedness, cash flow, profitability, number of outstanding shares (if appl), etc.
You asked a great question, one that hits home for essentially every tech worker.
Don't focus entirely on the salary number and forget to take into account the diffrences in cost of living between the two locations. Because of the differences in the cost of living (real-estate prices, etc) a $90,000 job in a smaller city could buy you the same standard of living you'd enjoy with a $160,000 job in New York City, for example.
And, for what it's worth, I've worked for both a mega-corp and a small company (300 or so employees)... I much prefer the feeling that I'm making a difference in the small company vs. the small-cog feeling I had at the mega-corp.
Well, if 20% more then what you are getting at the moment, go with what you'd like. Half-Life rules, and it's sure proven you indeed work better when you are enjoying your work. I'd always take anything Linux related over M$, come on man, you know what you truly want to do.
NoCommute + MoreMoney - MoreFun > MoreFun - MoreMoney - NoCommute
NoCommute = - LongCommute
LongCommute = BeingTiredAllTime
BeingTiredAllTime = LessFun = - MoreFun
BeingTiredAllTime is bad.
Be pragmatic. You can always have fun after hours. For more money you can have more fun. Every job will eventually get boring. It's just a job.
Cheers!
ActiveState has Perl component builder for the .NET Framework with their Perl Dev Kit.
:-/
.net job something that you can endure ...and with a bigger paycheck.
Yeah, the brass will never buy it though.
Take the.Net job. A perl hacker in a dot.net enviro will do much more interesting things than a factory trained coder who can't compile code outside a group effort - not that you will ever use perl in production (and don't think cgi)
TIMTOWTDI and a "easy things easy and hard things possible" attitude is a approach that can make the dry
You spend 8 or 9 hours a day working... make sure it's something you enjoy. What is better... 5 enjoyable years paying off debt, or 3 miserable years paying off debt, followed by 2 years where you're STILL miserable when at work even though you have toys at home.
Sorry... nothing is worth hating your work. Nothing.
"I will trust Google to 'do no evil' until the founders no longer run it." Hello Alphabet.
I ain't sure how much I can help because I am still confused after 25 years in the industry. The high pay corporate alike environment will very likely give you frustrations not only because you have to work overtime, but perhaps have to help deliver immature products projects after projects. In a few years time, you perhaps would hate yourself because you earn by fooling the customers more than pleasing...
However, giving up the high pay job doesn't mean it would be worry free. In a few years time, you might also hate yourself because all your classmates make better income than you, perhaps even by a lot.
Just want to say, consider the worst case scenarios for both choices, make sure you can take it, then go for the choice that you have prepared not to regret, or prepared with backup plan.
Good luck.
I've worked for several large (50,000+) corporations, and I've worked for startups. I've done most of my work in MS technologies. Several times, including my current position, I've been lucky to be working in an MS environment with all the security of a large corporation, with a group of people who are just as fired up about what they do as the guys were at the small shops I worked in. Don't forgo the money of the .NET position just because it's for a large, impersonal corporation. DO forgo it if the environment SUCKS. You should be able to tell what kind of place it is from the interview -- did fellow developers spend time with you? What were their attitudes like? Large corporations aren't necessarily boring and evil.
I am, therefore you think.
they don't read /.
Perl or Dotnet? Ugh.
One of the best pieces of advice I've ever gotten is "work as if you don't need the money." Do what you'll enjoy and will find the most rewarding. That company codes in Perl today, but you don't know what they'll be doing tomorrow - maybe Ruby or some other fun, modern language that you'll love working with and will boost your career. Do a good job, enhance your skill set, and the money will come. The real skills of a top notch coder or architect aren't language specific anyway.
"Money does not makes happiness, it buys it made".
.NET job. Not because it is .NET or whatever, but because I would be working on this "nationwide IT company" which will provide if anything else a very nice line in my C.V.
.NET company you might start being "a very small cog in a very large machine" but consider that you could (if after some time working there you like it) climb up that large machine and be better.
What I would do is go for the
The other reason is that if you go to the small Perl shop the most you can get from that is developing and developing all the way until the shop is closed (or assimilated by the other big company) while if you go to the big
Ubuntu is an African word meaning 'I can't configure Debian'
240 miles per day, 1200 miles per week, approx 60000 miles per year.
60000/25 mpg = 2400 gallons @ $2/G = $4800.
A beater isn't going to last long. Assuming an outlay of $18k on a low mileage used car (or cheaper new car), and that you can stretch it 3 years (180k + whatever was on it originally) = $6000 per year.
In that year you're going to need 1.5 sets of tires ($600 installed), 1 set of brakes all around ($800), 1.5 major service ($600), 6 oil changes ($300), 0.5 clutch replacements ($400), 0.5 timing belt replacements ($400). You'll have to pay for all this as you won't have any time to do it yourself because of the commute. Total = $3100.
That commute is going to cost you $13900 per year.
I left a sysadmin job at a university for a sysadmin job in private industry, for a 30% raise in pay.
However the raise in pay was accompanied by: A 75 minute commute; Only 3 weeks holiday/year; no banking of overtime;
life in a dilbert box, and three signatures required to buy a $100 ethernet card.
I left that position after a year and a half, taking a job at a local school as a sysadmin for a bit
more than half the pay. Curiously, we found that the transition to half the money wasn't nearly as hard as we expected. We weren't putting as much into retirement plans, but between saving $6000 per year on the commute, and that lower salary is taxed at a lower rate, we have pretty much the same life style.
But I now had 12 weeks holiday per year, a 15 minute commute, 4 weeks per year where they paid me to go with
the kids on canoe trips.
In my experience most jobs dealing with computers turn into infinite time sinks. You will be spending at least half your waking time at whichever of the two jobs you choose. Go for the one you will like.
Third Career: Tree Farmer Second Career: Computer Geek First Career: Teacher, Outdoor Instructor, Photographer.