Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Comment Pure FUD from a competitor (Score 1) 768

Win8 is no more closed than Win7. You can still build / sell Win32 apps. Win8 *adds* a new way to distribute software. Regardless of whether the Windows Marketplace / Store / whatever is good or bad, that's completely independent of the fact that Win8 is still *Windows*, so you can still install Steam, Firefox, or whatever other software you want to download or create.

Comment Re:How many more? (Score 1) 409

It's not "mediocre." I defy you to walk into a store and actually play around with a WP7 device, to get some real experience with it, rather than just living in the Slashdot echo chamber. Yeah yeah, I expect cracks about "I can't even find them." But seriously -- judge the product on its merits. The interface is actually pretty damn good.

There are two problems with Windows Phone. 1) The apps market is tiny, compared to iPhone. 2) The poor perception / reputation. But the product *itself* is pretty good. I use a WP7.5 device (Samsung Focus), and I'm very happy with it. Disclaimer: I am a Microsoft employee. However, I have a choice, and I choose Windows Phone. And I plan on buying a Lumia 920 when they're out.

Comment Re:Just a cheap H1-B visa scam, "for the kids" my (Score 2) 257

Comment Re:Just a cheap H1-B visa scam, "for the kids" my (Score 1) 257

I'm glad your experience has been a positive one.

> But, in general, the potential for such abuse is inherent in the system, and there has been plenty of evidence of other companies abusing it that way.

Agreed. Personally, if I had control over things, I would eliminate all H1B limits, and allow American companies to hire as many immigrants as they wanted, while requiring these companies to pay up for INS fees and domestic training and education. Skilled immigrants increase the competitiveness of American companies, and they often become naturalized citizens, anyway. I would drop the requirement that the visa terminate, as well. I'm more than happy to have skilled immigrants come to America, permanently, as full citizens with all rights. The more the merrier.

Comment Re:Just a cheap H1-B visa scam, "for the kids" my (Score 2) 257

I completely agree. And that's what my team does. We hire bright people who are willing to learn. Existing knowledge about a specialized field is a benefit, but it's not the most important thing.

Sometimes specialized knowledge is a requirement, but that's the exception, not the rule.

Comment Re:Just a cheap H1-B visa scam, "for the kids" my (Score 1) 257

> But you won't be hearing from me. No degree, you see. I need not apply as I'm not "qualified."

I interview candidates that don't have degrees. *I* don't have a degree, and Microsoft has hired me, trained me, and promoted me. It's not a barrier.

If you actually read what I wrote, I never said a degree was required. Degree programs are the most common path, but hardly the only path.

Comment Re:Just a cheap H1-B visa scam, "for the kids" my (Score 1) 257

Oh, also, we usually have anywhere from 3 to 5 interns rotating through, and their ages are usually early 20s. Many of our interns like the position so much they come back for another internship, or they join us full-time after they finish their degree. Note that I'm talking about my particular group -- I'm not talking about the entire company.

Comment Re:Just a cheap H1-B visa scam, "for the kids" my (Score 1) 257

Yes, the programs suck. Or to be a little more precise about it, the CS programs are a confusing mixture of things. When you graduate, what are your goals? Do you want to be technology-focused, in the sense that you're involved in machine architecture? For example, working on parallel processing, power efficiency, networking protocols, etc. Or do you want to work at a higher level, where you are mainly applying existing technology to solving real-world problems (business, society, etc.)? These are both worthy pursuits, but many CS programs confuse the two.

I mainly look for CS students who also have a strong EE background. Someone who has been through a VLSI design course is very often a much better programmer (for my particular workplace) than someone who has spent a lot of time working on web sites.

Also, performance analysis is *always* a great way to learn more. Start with any good profiler, and let the data tell you where to go. You'll be amazed what you find. It really doesn't matter that much what particular profiler you use. The important part is to focus on measurement, rather than guessing. The real performance problems are rarely where you think they are. For example, in a lot of programs, basic string manipulation is often the bottleneck. It's tempting to think you can guess where the perf problems are, but after doing perf analysis for many years, I can't exaggerate how humbling perf work is. Even the most experienced engineers rarely guess correctly. To become a great engineer, simply accept some humility -- you don't know, until you measure. Measure, measure, measure. I like to think of this as the difference between "programming" and "engineering". You're not doing engineering until you're guiding your work based on measurement.

Comment Re:Just a cheap H1-B visa scam, "for the kids" my (Score 1) 257

1. Willingness to work at any level required in a system. All the way from high-level languages and environments (HTML/JS, UI toolkits, SQL) down through middle-level languages (Java, C#, C/C++), down through assembly language (understanding machine architecture, compilers, assembly-level debugging). You don't have to *start* with those skills, but you need to be willing to *learn* them and be comfortable working at any level.

2. Willingness to learn any new problem. We usually look at your background, and ask you one programming question that is solidly in your "comfort zone," and then ask programming questions that are outside your comfort zone. The first question is designed to see how much you can talk about something that is comfortable and familiar to you (and also frankly to make you feel comfortable -- after all, hiring is *not* adversarial for us, we're trying to see if you can work with us to solve problems). Can you explain a solution well? Can you teach something to someone else? The programming problems that are outside of your comfort zone are all about seeing whether you are able and willing to apply yourself to something new. For example, if your background is in networking, I might ask you a graphics programming problem. Or vice-versa. The goal is not to be a jerk, the goal is to see whether you can apply yourself to something new.

3. Ability to identify the problem, its exceptional cases ("corner cases"), and to identify engineering trade-offs (memory vs. speed, etc.). Just being able to identify what an interviewer is asking, in a programming problem, is an important skill. Very often, candidates will focus on the wrong aspect of a problem. Or they will rush into a problem without understanding it, and will miss the forest for the trees. This is a really basic skill that anyone can develop, and it helps in all job interviews (and in all real-world problem-solving situations).

4. Ability to choose the right tool for the job. If I ask you a question about vector programming for high-performance graphics rendering and you start answering in JavaScript, you've already failed. Conversely, if I ask you to solve a database problem such as "How would you store and search the data for a geo mapping web site?" and you start answering by focusing on low-level concerns like STL templates vs. linked lists, then you obviously are not focused on the core of the problem, which is how to structure the data on disk and how to organize it for efficient queries. (I've had candidates do both of these things.)

5. Ability to communicate your thought processes. If you're working on a programming problem during an interview, then at least half of the interview is about *how* you approach (and maybe solve) a problem. Are you breaking a complex problem into smaller problems? (divide and conquer) Are you making something more complex than it actually needs to be? Can you identify an algorithm that you don't understand, but you understand how to use it? For example, I don't think I could invent the fast Fourier transform, but I think I could identify when to use it, during an interview. If I say to an interviewer, "Here is where I would convert this data from the time domain to the frequency domain, using an FFT library, and then I would use the frequency domain data in such-and-such a way to solve this problem," then that's good. You don't need to invent the FFT in order to apply it.

Unfortunately I'm not allowed to give any info on pay ranges. (I could be fired for doing so.) I will say this, though. The salary is decent, but not overwhelming (as tech jobs go), because the bonuses are huge. The bonuses and stock are where the real money comes from. If you perform well, your bonus could be as much as one third of your base salary. Your stock grant could be worth as much as your entire yearly salary. It's structured so that you are compensated for performance, rather than seniority.

Now, someone is going to attack me for saying that. "OMG, you're paying people to attack each other!!1!1!!" Well, would you rather reward people for seniority, or for results? Also, keep in mind that rewards are spent on successful *teams*, not just successful individuals. Yes, high-performing individuals get more rewards than their under-performing peers. But, all of that comes out of a team's budget for rewards. If your team blows it, then even the high-performing people will get crap reviews. Conversely, if your team nails it, even the middle-of-the-road performers will get a pretty fat review.

Comment Re:Just a cheap H1-B visa scam, "for the kids" my (Score 1) 257

The age distribution in my team is probably something close to this: Ages 25-30: 5, 30-35: 20, 35-40: 30, 40-45: 35, 45-50: 18, 50-60: 4.

So, pretty close to a Gaussian distribution. I'd say of the people I interview, one third are over 40. And they usually do better than the younger candidates.

> From my perspective, it is obvious that employers like you don't WANT good quality

I really don't understand how you managed to distort what I said into this statement. You don't know anything about my team, my hiring qualifications, etc. You're really just doing your best to attack me, without knowing anything about what we do. Your statement that we don't want good quality is simply factually wrong.

Comment Re:They've gamed the market so long... (Score 1, Informative) 257

I have interviewed over a hundred people in the last few years. And let me tell you, the issue is the quality, not the price. We have *plenty* of money to offer, and we do offer it. But most of the candidates I interview simply do not meet the requirements on intelligence, skills, and problem-solving abilities.

Slashdot Top Deals

"We shall reach greater and greater platitudes of achievement." -- Richard J. Daley