Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

The bigger joke is SAS - as someone who has programmed in many, many languages it must have the absolute worst syntax/design of any computing language I know... in what other language does x=y actually mean y=x in some contexts????

It's not so much that it has bad syntax, as that its syntax seems to have developed completely independent of any other computer language, and concerns itself with a very different domain of problems. Most of the functions automatically apply to a whole recordset at once, so you can be amazing concise in program certain algorithms... but if you try to write them like you would in any other language, you'll create a miserable mess. It's hard for a 'normal' programmer to wrap their head around, because even the most basic structures are different.

If SAS had been the only language you programmed in, it would probably make a lot more sense.

The SAS data step language was originally modeled after PL/I. Some recent additions (for example, the "object-oriented" interface) appear to have been modeled after C or other more recently fashionable languages.

If you are speaking of the data step language, it's not correct to say that "[m]ost of the functions automatically apply to a whole recordset at once"; that's a misunderstanding of the default data step iteration over records. Statements in the data step apply to one record at a time, going sequentially or in index order through the input - unless you've done something to make that not happen (which you can do - SAS is very flexible).

In many ways, SAS follows the same principle of least surprise as Perl and some other languages.

The bigger joke is SAS - as someone who has programmed in many, many languages it must have the absolute worst syntax/design of any computing language I know... in what other language does x=y actually mean y=x in some contexts????

Please provide an example of what you're describing. I do a lot of SAS programming, and I can't think of a situation where x=y is the same as y=x, other than in If statements. The only thing I can think of right now that comes close is that you can do something like, "0<=x<=12" if you want to check that x is between 0 and 12, a construct that really surprised me the first time I saw it.

When I'm showing SAS to new people, I tell them to forget any prior programming experience they have. That's not

Is that what this is mostly based on? It seems that way because I notice a lot the firms that made it (and keep making it) are companies known for long hours and high stress.

Goldman Sachs shows up there, lists the most common job as an analyst with about $120k a year in pay. The people I know who went off to work in investment banking are not exactly what I would call happy. They are getting a pile of money, a solid resume, and a ticket to a top business school...but most of them are not planning to return after grad school. There are other finance/Big 4/mgmt. consulting firms on there that have the same sort of characteristics--strong pay and benefits but consistent 80+ hour weeks of stress and deadlines.

I just don't understand how they make it to the top of the list along with companies like SAS or Google (I've heard long hours...but you get a lot of special perks and a lot of time for your own projects). Are they paying their employees to write good reviews? Are these done like college rankings where you get a boost just for being the company that everyone applies to just to get rejected?

I notice a lot the firms that made it (and keep making it) are companies known for long hours and high stress.

I suspect the only companies who are concerned with placing on the list are the ones who are very concerned with low morale and high turnover. I've seen it happen on a local level. Sweatshops place highly - comfortable workplaces don't appear.

Its the pager. Its a killer. The majority of amazon hires quit in under 2 years, because of the damn thing. Add in the fact that some underhanded teams don't mention it up front (many do, but I knew many people who didn't find out about pager requirements until after they hired on) and it doesn't belong on the list. If they got rid of the damn things it would go by the top.

Pager duty is a major pain. Smaller teams can expect to be on-call at least one week per month, while larger teams spread out the pain longer. Getting paged in the middle of the night for a high-severity problem that take eight hours of investigation to fix is enough to drive many to quit.

Sounds like they're trying to make routine (as opposed to rare, emergency) use of on-call engineers as a way of maintaining 24/7 staffing without actually paying for 24/7 staffing.

Seriously, that is hardly uncommon. In fact, I'd say the majority of places I've worked in the last 10 years have similar rotations, one week per 3-6 weeks. Granted, in most places I've been you only get paged a few times during that week. But one week per month is not that unusual.

I dunno, it sounds pretty crappy to me to spend 1/4 of your life on call. Most respectable companies will hire 24/7 staff if they want 24/7 staff. I have never heard of chemical companies routinely using on-call engineers to solve problems at their plants, for example. Sure, if something explodes, they'll start calling everyone's cell phones---but that better not happen very often at all.

I dunno, it sounds pretty crappy to me to spend 1/4 of your life on call.
Well, then you wouldn't like my company. There are several people here who are ALWAYS on call. You have to take your laptop home every day in case you get sick and have to stay home. Sick means you work from home instead of work from work. You have to take your laptop with you on vacation. Generally they let you just work in the evenings when you're on vacation, though.

The company policy is that the best way to make sure that devs pay attention to defects is to make them the recipient of all the pain they cause. So the devs are in charge not only of writing the code, but also in charge of the service running in production (and on the test network, but that isn't the point here). So if a server goes down- devs take care of it. If a server breaks, devs have to requisition a new one (although a separate team does hardware checking and actually orders it from the supplier, and will also investigate hardware issues upon request). If anything goes wrong with the service itself (due to bugs, bad inputs, etc), the devs take care of it. So the devs share a pager around the team. Exactly how the pager is rotated is decided by the team, but generally its 1 week at a time, round robin. So on an N person team, expect to be on call 1 week in N. When you're on call you're expected to be within 15 minutes of an internet connection and a computer capable of VPNing into the corporate network at all times, and to respond to the page within those 15 minutes (otherwise it pages your boss after 30, then his boss, and on up the line). So basically devs are the 24 hr support crew as well as the developers. Needless to say, most devs don't want to be support, so leave the company very quickly.

So basically devs are the 24 hr support crew as well as the developers. Needless to say, most devs don't want to be support, so leave the company very quickly.

Oh okay. I did that for almost ten years at my last job with our state road authority. We supported a lot of hardware as well as the software and for a lot of the time I was doing it two weeks on then two weeks off. It wasn't so bad but if you are the kind of person who expects to spend weekends pissed and unable to move then it might result in a few lifestyle challenges.

We got perks for being on call though. But OTH the perks and pay combined were less than my total pay in my next job.

It really depends on your personality. Some people don't mind it too much. Others can't stand it. Myself, I didn't mind it when I was at work, I'm there I may as well work on that as anything else. And I had no problem volunteering to cover for someone who needed an evening off for family reasons or the like. But that type of crimp on my social life and the necessity of possibly needing to work at any time was a killer for me- I was miserable the entire week, the weekend before (because I was dreading

But if you are the one designing the system, what is the incentive to you if you get more money for breaking it ? The whole idea is that the pager is a PITA and your work is to make sure you do not get paged 'ever'. You do that by designing a robust system. Now if your team is understaffed to the point where you can only be reactive and not proactive, the developers get pissed off and leave.

If a doctor is on call, he gets paid. Same for a nurse, an electrician, and every other profession. Amazon pays decently, but not well enough that the pager duty is accounted for.

The idea of pager as PITA just doesn't work. First off, most developers (especially good ones) are going to do it right through professional pride. Secondly, you may or may not be allocated time to do so. Third, I got far more pages from network glitches, user errors, and hardware problems than I ever did from my bugs. Fourth, our systems aren't isolated, other groups can cause pager issues for you. On my team, a decision by another team to include a reorder data feature meant that our service had to allow it too- but that wasn't always possible in our system, so if the customer used it and that caused us to go into an invalid state, we'd get paged. We then had to psychically guess whether the customer would prefer us to cut out illegal commands (possibly losing their data) or reorder the things back. Generally we just paged out to the sales people to ask them. And they wouldn't bother waking up to answer the page, so it was handled next day anyway. That little bug took over 2 years to get the other group to add a confirm feature that asked our service if it was ok to do the reorder before doing it.

Oh and fifth- it actually gave you incentive not to monitor your service well. Fewer pages. Unless you're a professional and did it anyway, in which case the pager was unnecessary to begin with. Which is probably why no other company does it this way. I've only ever heard of one other company requiring pagers, and they had a massive ops team that took the first crack at pages and all operations work.

No, they tell you that's the idea of the pager, but it really isn't. The idea of the pager is to save money by not hiring qualified ops people. It probably saves them a few million a year. And all of the short term costs are external, carried by the employee. The company loses out long term, but not in any way that shows up on a balance sheet, so they don't really care.

I'm someone who doesn't mind being oncall; however, I simply cannot stand to get paged on something I can't do anything about or on a system I'm unfamiliar with. Both happen a lot at Amazon. You get stuck maintaining systems you did not design and did not write. Nor were you around when it was built, so you have no solid frame of reference. Oh, and good luck finding any accurate docs. When you do come to the conclusion you need to refactor something, 9 times out of 10 your request to fix it is vetoed.

A core set of developers develop some convoluted flaky system and end up moving to to other teams to work on something else. New hires come on and get the "honor" of maintaining said system. What you end up with is a bunch of recruits barely familiar with the code supporting the oncall. They continue beating their heads with resolving tickets and doing mundane band-aid deployments f

Agreed. I later state I don't agree with the policy, that's the company line. The truth is more avoiding paying for good tier 1 support I think. That's just a convenient line they can get enough devs to buy.

The company policy is that the best way to make sure that devs pay attention to defects is to make them the recipient of all the pain they cause.

Unless Amazon has broken development process I would expect that more often than not any faults in production are nothing to do with the dev code, and more likely to be deployment issues. I've been on enough firedrill calls to know most of the time the dev is usually not responsible and moreover doesn't much useful input to fixing the issues either.

I worked at Amazon for three years. While my colleagues was great, there were no perks like company paid day care or even arcade machines like the.com's of yore. Most new hires are gone within 2 years. My own department had 80% turnover.

"The majority of amazon hires quit in under 2 years"
Bullshit. From where are you getting your data?
Yes - Amazonians carry pagers when they are on call. Amazon engineers stand behind their code and their site and don't farm it off to teams in India or China like other companies.

Actually a lot of groups have spun up first-tier support teams in the past couple years, which include support staff in India. So if you can write up some simple rules to follow in the event of a page, routine stuff doesn't even come to the devs, only the unexpected stuff does. From what I understand, this is almost exactly the way Google does it too.

It's the same way at some teams inside Microsoft, only less formalized so you don't get everyone sharing the pain, only a 'select few' who get volunteered by

From working there 2 years ago. Next time at the company meeting when they say all the new hires stand up and you see a room full of standers- that isn't company growth. Those are mainly replacements. Or use the old fart tool (I assume it was still around)- within a month or so of my 2 year anniversary I was ranked at 54%- 46% of the company had been hired after me.

Part of that also has to do with the company's salary system- a large bonus payable on sign up and on 1 year anniversary with a 1 year vesting period after payout for each. Many people quit as soon as the first is earned, and another big chunk after the 2nd. Probably easier psychologically to give up stock you don't have yet than to pay back money you do.

Also, as to the standing by your code comment- the two have nothing to do with each other. I stand by my code, and I take pride in fixing bugs even without a pager. If anything requiring the pager for that reason shows a lack of respect by management for the coder.

The developers are on call thing is stupid for a raft of other reasons

*It's not industry standard. Most developers won't put up with it. You lose lots of damn good people to it. Really, talk to a recruiter- when they ask why you left Amazon and you say "the pager" they just nod. Everyone hates it.

*Related to above, there's lots of good people who won't even interview there due to the pager. I *liked* the rest of my time at Amazon and am between jobs at the moment. I won't even apply there now unless I'm assured up front its a non-pager position.

*They're developers, not system administration experts, not operational experts. Most developers aren't experts in configuration of servers, server monitoring, etc. That's a separate set of skills. It makes a heck of a lot more sense to pay people who are experts in it to do that stuff, and just have them meet with the developers to figure out any special cases needed for those tools. Incidentally, pager duty is far closer industry standard for them than for developers.

*A developer who just got paged at 3 am is not going to do a good job fixing a problem. He's half asleep. For anything that doesn't absolutely need programming work right then and there, you're better off with someone fully alert. For something that does require programming to fix- you're better off waiting until morning unless its a true website is down affair. Typing in db commands while half asleep can cause massive problems. I remember one night I was staring at a screen and thought I had already typed in a where clause to a delete, when I had really typed it in on the query above and wasn't seeing right. Almost wiped the table.

*An on call team in Asia (or the US working nights- you can just hire a night shift) is going to be in the building and responding. The developer may or may not. For example, one member of my team stopped getting pages at his house when they swapped providers a few years back- his house was outside the coverage zone. People sleep through pages, or forget to keep it in the room. People mute it for a movie or the like, then forget to turn it on again when they're out. Pagers get lost, purposely, accidently, or through the hands of pissed off spouses (I knew someone who's wife flushed it down a toilet after being woken up too many times). Paging people just isn't reliable.

*Putting ops burden on devs like that has horrible consequences if a stream of people leave the team. Not only do you have to do their coding work, but their share of ops work as well. Teams can go into death spirals where someone leaves, causing pager duty to increase, which causes someone else to leave. I've seen teams reduced to 2-3 men by that before management stepped in right before they quit.

*Taking a dev off of coding to deal with server issues that aren't due to bugs is just lost productivity.

As a former employee of REI who always made the list back then. I would agree that this list means nothing.

I mostly worked at REI for the disconuts, while I was at college. I had loans, and my incredible cheapness to actually live. I got paid less than a person working the drive through. I was extreemly knowledgable about cycling, where I worked. And fairly knowledgable in camping, and clothing. It wasn't the worst place to work, but not the best. They required you to work on weekends and weekdays, even t

I'd rather work somewhere that I can get learn and try new things without having to fight 6 levels of entrenched management trying to scratch and claw a place for themselves. But then, I'm one of those devs who enjoys the process of building software, and the overall goal isn't as much of a driver.

I was Mobil employee (pre Exxon merger days). Probably one of the best companies I have ever worked for. Progressive work environment, friendly people, ideas were treated with respect, and about as diverse friendly as you can get. They did everything right, but were bought out by Exxon. I've never seen such an about turn in such a short amount of time. It was much like I imagine going from a free country to the iron heel of some repressive regime.

Obviously if your a fortune 500 company, there must be a way to meld a happy work environment with a profitable one? Why isn't this more the rule than the exception?

Obviously if your a fortune 500 company, there must be a way to meld a happy work environment with a profitable one? Why isn't this more the rule than the exception?

The problem is, people are desperate for jobs. Fortune 500 companies are pretty well known, one or two employees who might actually do something aren't going to hurt the company. In short, its easier and cheaper to screw entry-level employees than it is to find and make lasting ones.

As soon as an organisation reaches a certain size you have a fair share number of people whose live is basically trying to get up the foodchain by all legal means instead of working for a common goal, and those end up in middle and upper management but as soon as they are there they do not change their ways but try to fortify their position by making everyone elses life miserable.I have seen that several times. Corporations are so often higher up entrenched with internal intrique and politics that it feels like hell down the foodchain. One thing btw. why I personally think that the US economy is doomed, US corporations are so entrenched with infighting within itself and against each other (the Microsoft, Google, Apple triangle currently is a prime example as well as the patent trolls) that they forget entirely about a common goal and that others are there as well. The classical example in history is the western roman empire which fell mainly because at a time of crisis they were not able to stop the infighting for the top of the foodchain but presumed and in the end the strongest won, but with the price of being reduce to parts of italy. It would have come different if they worked for a common goal instead of trying to outarmy each other!

YMMV, but having previously worked for both Google and SAS I can attest to both being wonderful working environments. A good working environment and having motivated people in your office really lifts general mood and ambition.

I've often wondered how Google gets away with free meals every day and other generous perks for employees, and not making the employees declare the free food as "income" to the IRS and pay taxes on it.

You're trying to be funny, and apparently succeeding, but the answer is: in the past. Apple used to have a great work environment, paid sabbatical for full-timers, etc etc. All that shit is now gone and working for Apple is like working for anyone, except that you have to fear being taken over by the turtleneck.

The rumors I hear around is that Apple is a hard company to work for. Long hours, late nights, working weekends.....it's not easy. The people who work there really love the products, so they are willing to put up with it.

Adding to that, what I've heard is that the pay is nothing great - possibly actually below industry average (unusual for a high-profile company). Good pay doesn't make the working experience better, but it makes up for some of a bad experience.

As you say, it's a company for people who really *like* the company, for its products or image or whatever.

"Of course you have to be a Brit to join it, its not like the French Foreign Legion."

Kinda sorta. A rather disproportionate number of them are from Fiji, for some reason. I think that you can get in if you are part of the formerly-known-as-the-British-Empire-post-1776. Well, that and are a bad ass.

As someone who lives about 1 mile away from SAS, knows lots of people who work there, and has talked to a lot of local business owners about SAS, and has eaten in their 'cafeteria'(gourmet restaurant for employees). SAS is an amazing place to work.
At the same time many of the people who work there are not motivated like people in places like Google or other silicon valley type companies. SAS has a few cash cow products that they maintain and beyond that there is not much innovation.
Jim Goodnight is a control freak about what the company does and is surrounded by 'yes men' executives. Many people who start to work there never leave and it functions as a self sustaining source of money with low work hours for all involved.
That being said I do like the statistics software from them that I have used(JMP)

At SAS - yes I work there - we grew our business every year for the last thirty years. Please explain to me how we were able to do this without innovation. We also put more money back into R&D than any other IT vendor that I am aware of.

We now offer a range of targeted solution, campaign management, telco retention, supply management you name it that allows to rapidily employ our analytical engine (BTW fully Grid enabled if you wish) to specific business problems.

I think if SAS dies, it's more likely to be a long, leisurely death. Their lock-in for business software is quite high--- it's a huge pain in the ass to completely transition a large company from SAS to anything else. Even if they stopped getting new customers altogether, I think their market share would decline only slowly.

Popular science/math/statistics applications generally have a very high market persistence... They are like well entrenched programming languages, which is actually what they are. People and organizations have invested an incredible amount of effort into software development, training, etc, to abandon a software packages like this one overnight. SAS software is a kludge of GUI tools written around a core SAS engine that was written at the time when modern computers didn't exist (and it shows), and yet this software is still going strong pretty amazingly. More recently, GNU R and STATA have become viable competitors for the raw statistics portion of SAS (they can't touch its business applications), and SAS might have lost a small market share in that area, but I really doubt it's on its way to die. Only time will show.

I have worked for several companies over the years. The best job I have ever had is with my current employer. Why? They are a "private" company. Note SAS is a "private" company. Huge public companies are always a slave to earnings and pleasing shareholders. Thats why a company like Intel can show record profits or increases and yet they lay off 5,000 people. The moral of the story. Try getting a job with a good private company.

Fortune's methodology is completely bogus because it doesn't interview former employees.
I used to work for #2 but quit when I learned that I would get paid 1/2 as much for selling stocks and mutual funds that were not recommended by the company.

It's possible what they're pointing out is that MS employees like what they do, and the products that they work on. That somebody would throw a private party in celebration of a corporate (rather than employee) milestone indicates that they really like their corporation.

Alternatively, it might be pointing out the parties that MS organizes/sponsors. There's a pretty good morale budget at MS, and the better managers will organize events that don't even use much of it so as to stretch it longer. As an intern t

It's possible what they're pointing out is that MS employees like what they do, and the products that they work on. That somebody would throw a private party in celebration of a corporate (rather than employee) milestone indicates that they really like their corporation.

"Yay! We finally have a product we can be proud of!" <whisper>Don't anyone mention IE; don't anyone mention IE!</whisper>

... if you're a full-time employee. I found it a little difficult to work there as a contractor. The people I worked with were great, but there was friction because they were pretty much all expecting to be lifers and I considered it a short-term gig. The culture there (at least, when I was there around 2000) was very uncomfortable with the "mercenary" mindset of "do job, get paid, leave."

The culture there (at least, when I was there around 2000) was very uncomfortable with the "mercenary" mindset of "do job, get paid, leave."

That's sort of the whole point of their corporate culture, though, and why the employees like it there, isn't it? The expectation is that neither management/owners nor employees will treat it as a purely mercenary endeavor, so employees aren't using it as a springboard to the next job that offers a 5% higher salary, and management isn't going to screw over employees at the first opportunity.

I've worked for a top rated corp. What a joke. On paper, they looked good. But if you didn't conform to the culture it sucked. Official policies mean little, it all come down to the managers in your local department.

I did an SAS course around 20 years ago. Had to support it on my SunOS system. Then, it was basically an OS360 environment ported to X11. It was horrible to look at and no single "modern" -that was 1992- concept was to be seen. The "concept" of supporting both STDOUT and STDERR was wildly exotic.

Most SAS users I met were completely clueless about programming and were basically summoned by their depts to perform some wild additions on homogeneous data sets. The statistical functions were probably used by the small base of power users. Back then I'd had wager that a handful of Perl scripts -that was Perl 4 back then- would have solved most problems at a fraction of the cost and would have constituted in more generally trained developers. However, in SAS' niche, product decisions are hardly ever taken by tech savvy people but mostly by accountants that are overwhelmed by (non-)features from ads.

Anyway, the software was sold and SAS made loads of money out of it. Good for them. Stating that the founder's first love is programming is stretching it a bit.

Look at how the top companies fare in past years. You notice that while SAS may be top this time, they were #20 last time and lower before that. What this tells us is that the selection criteria are either subjective (i.e. made up from individuals' biases and preconceptions), or, worse that the working environment within companies changes dramatically from one year to another. Either way, it's not a reliable guide to which organisation you want to spend any significant part of your working life with.

Then there's the minor point that you don't work for a company, you work for a boss and if that person is an idiot, it doesn't matter how high or low in the rankings some place is, that boss can make your work life a living hell. Obviously the opposite applies: a good boss in a bad company can improve things.

Finally, this list is not confined to IT jobs: it applies to the cleaners as well as the managing director. So there's no indication of a correlation between the likelihood of having a good or bad IT job in a "good" company - the spread is just too broad.

The very last point is that this only lists companies in america and has nothing to say about the other 95% of the world.

It's getting harder and harder in the US to find jobs at these "good places to work." I happen to work at one that never made this list...it's a European company with significant US operations. They have their problems, but one thing they do know how to do is keep engineer types happy and producing decent-quality work.

One thing that might help SAS is that it looks like they're a private company. They also have a huge niche market in academia, government and high-end business analytics. These two things appe

The Presidency has been rated one of the worst jobs due to the massive responsibility, stress, constant criticism, and threat of being assassinated. The illegal 'perks' you're obviously trying to joke about got Clinton impeached and nearly booted out of office. If that had occurred he may have lost some of the other perks he is entitled to while simultaneously finding himself in a rather unsavory place in history.

Yes.. very odd, non-conventional programming paradigms. The core of the systems seems to have been invented at the time when modern computers didn't exist.

The good thing about SAS is that it implements tons of statistics procedures (a lot more than say MATLAB) which are relatively easier to access than the same functions in GNU R. Doing any kind of standard (e.g. any Masters-level) statistics or econometrics in it is a breeze and this is why so many businesses are standardized on SAS. Academic statisticians and economists tend to like SAS too for things that are already implemented in it. But programming your own custom procedures in SAS is a pain in a butt..

SAS also beats other software in management of large data sets. The DATA step is odd, but it works where R or MATLAB would not work.

It's gonna be used in my applied stats course next semester. Took me a few minutes to even put the two together, and had never heard of it before the professor mentioned it. All I know about them is that they offer certification.

I can predict that the "hardest" SAS related part of the course will be

1) Getting your data into SAS2) Transforming your data so that it is ready for analysis.

Once your data is in the format expected by the statistical functions, then all you probably will have to do is call a statistical procedure and read the output. A 2-line long procedure call may involve an incredibly complex statistical estimator and give you output complete with estimates, standard errors, and graphs..