Sure, Google and Amazon.com, but who else?
September 11, 2011 5:13 PM   Subscribe

Jobsearchfilter: I'm a year away from a B.S. in biochemistry and computer science. As a recent graduate, my primary objective and my most valuable skill would be to learn new things. Please help me brainstorm software companies that will hire smart, ignorant people and train them in-house (i.e., the companies whose recruiters ask about graph traversals, not dependency injection in PicoContainer).

Partly, I'm looking for companies that value the potential over the actual because I don't have all that much actual experience. For example, all my coursework has been procedural C and Python, and my internship used OCaml, which leaves me in a sticky wicket when people ask about object-oriented Java. I'm sure I could pick it up given the chance, and I'd like to find a company that will give me that chance.

But partly, I'm suspicious of companies that hire for experience with particular frameworks or libraries because, ideally, I'd like to spend the first decade or so of my career at someplace that believes in teaching its employees new skills and gives them a broader survey of the field. The career office tells me that it's normal to hop jobs every couple of years, that it's become the only way to get a raise, but I really don't think that's what I want to do. I'd much rather find one company that's diverse enough and internally open enough to expose me to different problems, different areas, and different techniques. And hopefully that would also be a company that believes in retaining and cultivating its existing talent.

In terms of skills, I'm familiar with C, Python, and OCaml, I am most comfortable in Linux, and to the extent that I have developed specific interests at all, I'm curious about compilers, operating systems, functional programming and generally processing lots of data really fast.

In terms of the kind of work I'd like to do, I'm fond of well-developed libraries but it's important that my work is more than just gluing libraries together. I want to work right at the edge of known space, not too far away from it nor too far beyond it. For example, I would enjoy porting a library from one language to another, or implementing something out of an academic paper. I probably haven't got the chops to pioneer anything really new, although I'd be looking for a job that moves me in that direction.

Any ideas?

Incidentally, where is this magical school where new graduates pop out already "experts" in C++ and Java and databases? Or is this where the "M.S. preferred" comes in?
posted by d. z. wang to Work & Money (14 answers total) 5 users marked this as a favorite
 
Google. Microsoft. Apple. Or any startup in the valley that is interested and seems like a good fit to you. Experts out of college did side projects and failed classes. They are rare.
posted by jeffamaphone at 6:29 PM on September 11, 2011


I think you'll probably have better luck focusing on big software companies (Amazon, Google, Microsoft, Adobe, Apple, that sort of place) or startups that are "thinking big" (ie, trying to do something awesome) -- they'll be more interested in whether you have the sort of raw ability they're looking for than whether you're familiar with some specific technology. In my experience, they're not going to "train you in-house" in the sense of sending you to some sort of training class however -- companies like that are going to expect that if you need to learn C++ or Ruby or whatever else, you're going to be able to get yourself up to speed pretty quickly on your own.

It would probably behoove you to learn Java, C#, C++ or something similar in your last year. Maybe there's a project class or something you could take that would give you the opportunity to learn those skills?
posted by Blue Jello Elf at 6:32 PM on September 11, 2011


Soooo... you don't want to go work in bioinformatics, then? I feel like there are half a dozen companies in the Bay Area desperate for CS grads with some bio background and willing to take new hires (I've talked to some of them, and they were all "uh, so do you know any code? Any code at all? No? Damn.") You might not find super-formalized training, but I bet you'd find plenty of new problems to chew on, and colleagues willing to train you. You sound like you've given it some thought already, but just an alternate suggestion.
posted by deludingmyself at 6:40 PM on September 11, 2011


Response by poster: In my experience, they're not going to "train you in-house" in the sense of sending you to some sort of training class however -- companies like that are going to expect that if you need to learn C++ or Ruby or whatever else, you're going to be able to get yourself up to speed pretty quickly on your own.

Yep, that's all I meant. This summer I had an internship at an OCaml shop having never previously written a single line of OCaml, and a few weeks in my supervisor commented on how well I had picked it up. I just want some place where I'll be allowed in the door even if I don't already have the entire API memorized.

Soooo... you don't want to go work in bioinformatics, then?

I've talked to some people who do that in academia, and it sounds like, especially as a technician with only a B.S., I'd spend very little time thinking about the interesting problems compared to all the time I spent munging data between random formats, doing first-tier workstation support because I'm "the computer guy", kluging up screen scrapers because nobody bothered to release an API for some web tool, etc.

Maybe I'm misunderstanding the situation, but it doesn't sound like a very attractive career.

It would probably behoove you to learn Java, C#, C++ or something similar in your last year. Maybe there's a project class or something you could take that would give you the opportunity to learn those skills?

So, strangely enough, those languages aren't really taught here. The big project courses are taught in C (OS, Databases) and SML (Programming Languages). I am trying to learn Java, though, because the libraries are a big advantage for ACM-ICPC, and you're right that the structure of a course may help. Maybe there's a newbie-friendly open-source project that uses Java, which could provide the structure and the feedback I need?

Oh, wow, on preview I wrote more than you guys. Okay, no more thread-sitting, I promise.
posted by d. z. wang at 7:13 PM on September 11, 2011


Even very smart companies often have dumb recruiters. I was in a similar situation and got through HR (somehow) by saying I knew every language and framework on earth. When I finally got through to an engineer (my current boss), he asked only very conceptual questions. As it turns out the work is almost entirely data structures and algorithms in C (which just requires hard work and careful thought, not experience, and is really interesting).

Of course there are lots of boring jobs out there. But you have to talk to someone in engineering, not HR, to find out.

Most people do have to "put in their time" doing boring work or getting a masters', although of course if you have good grades from a good school you may be able to avoid it.
posted by miyabo at 7:33 PM on September 11, 2011


D.E. Shaw?
posted by skbw at 7:42 PM on September 11, 2011


d. z. wang, I'm a recent grad, and I work for a company that is as you describe. I'd like to emphasize that I do a lot of grunt work. I also get a great salary, am surrounded by smart people, have a manager who cares about my career progression and encourages me to learn new things, and resources to spend a solid chunk of my time learning new things, such as interesting languages and frameworks. But, in addition to all that, and really as my core job function, I do what you would probably dismiss as grunt work.

You don't get something for nothing, even at Apple/Microsoft/Amazon/etc. When you're 23 most jobs are grunt work, but some of them ALSO want to help you grow. Something to keep in mind.
posted by telegraph at 7:43 PM on September 11, 2011 [1 favorite]


ideally, I'd like to spend the first decade or so of my career at someplace that believes in teaching its employees new skills and gives them a broader survey of the field

A decade or so?! I realize you said "ideally," but this is complete fantasy-land.
posted by Civil_Disobedient at 7:57 PM on September 11, 2011


Eh, if you've survived a double degree at a big research university and have decent interpersonal skills and very good grades (>3.5), it really is possible to get a pretty amazing job right off the bat right now. Especially if you're willing to live in Silicon Valley.

(I taught lab sections of a CS class last year and was jealous of the job offers some of my students were getting!)

On the other hand, if you don't meet some of those qualifications you may be doing boring grunt work for a couple of years.
posted by miyabo at 8:15 PM on September 11, 2011


Is there a reason you're not looking for a job in academia? If you can find a bioinformatics / comp bio lab that is looking to hire a programmer without a PhD, you should be in a position where you can learn a lot and do pretty interesting work as well.
posted by pombe at 8:17 PM on September 11, 2011


Maybe I'm misinterpreting your response, but I'd think a key difference between "folks who do that in academia" [academic bioinformatics groups/positions] and in industry [the Bay Area companies involved in genomics] is that on the corporate side, your company has an IT department, and you aren't it.

Also, if you're still in school, you probably don't have a good sense of the hiring environment (and maybe it's similar in CS, I don't know), but the fact is, companies are hurting for bioinformatics folks. I've been watching the positions get listed and re-listed out here in the SF area. Last month I got called for an interview with a company hiring for a technical bioinformatics specialist at one of the big genomics companies out here in CA (take your pick: Pacific Bio, Life Technologies, Illumina, Complete Genomics, Halcyon Molecular, Affy, Agilent..), and they actually had me come down to headquarters before telling me they couldn't hire me because I had no technical background. I've talked to folks all across the molecular diagnostics industry who agree that if they got a chance to do it all over again, they'd go back to undergrad and do CS/Bio, because we're about to have a huge deficit of people with that combination of expertise as more genomes get sequenced. I don't normal urge folks in a particular direction to this degree, but I just want to impress upon you that god damn, are you going to be marketable - and not because you can install an antivirus system.

MeMail me if you want to explore/challenge this further, or maybe take a look at the postings at DNA Nexus or some of the other genomics SaaS companies springing up.
posted by deludingmyself at 8:56 PM on September 11, 2011 [4 favorites]


In my experience, they're not going to "train you in-house"...

When I was at MSFT they did actually have in-house training. There were courses on C++, VB, COM... all kinds of things. And other classes, like "precision questioning" and such. Some were a day, some were a week. You could sign up and just go learn about stuff. I never did, but they were there for those who wanted it.

Now, at my start-up, we only have one or two open head count and we are not going to hire someone who can't hit the ground running because we just don't have time. Education doesn't matter for us. The ability to write (correct) multi-threaded code for at least one major OS is really our gating function, and some other domain-specific expertise (e.g., graphics) that we need to accomplish our goals. In some ways you're going to have better luck at a big company, and I highly recommend it because you'll learn a lot about how the sausage is made. But there are plenty of start-ups that will make you an offer... Java really isn't that hard to pick up. 90% of learning a new language is just figuring out how to find what you need in the documentation.
posted by jeffamaphone at 8:59 PM on September 11, 2011


Response by poster: telegraph: But, in addition to all that, and really as my core job function, I do what you would probably dismiss as grunt work.

I'm fine with doing grunt work as the new guy, because that makes sense both for the company and for me. For the company, if someone has to do it, and anyone can do it, of course the new guy should do it, because he's not good for anything else yet. For me, probably what a more senior person would call grunt work is new and exciting for me anyway, so I don't mind.

So I guess the question is, do you expect that in a few years, say two or three, definitely fewer than five, your manager might start to give you a chance to use some of those skills he's encouraging you to learn? Or is there sort of a "promotion by resignation" setup, where if you stay around then your core job function will remain grunt work indefinitely?

deludingmyself: off to write you that MeMail. Thanks!
posted by d. z. wang at 8:55 PM on September 12, 2011


Incidentally, where is this magical school where new graduates pop out already "experts" in C++ and Java and databases? Or is this where the "M.S. preferred" comes in?

Sounds like you've been reading job postings. Job postings are lies. They (probably) indicate that a job is available, but they can't be trusted beyond that. Maybe you've been reading job descriptions and their ridiculous bulleted lists of qualifications, and then feeling bad because some/most/all of the bullets don't apply to you. This is folly. Job descriptions, judging by how well they match up with actual jobs, are primarily written by non-technical people or delusional technical people.

The people who will actually interview and hire you will be basing their decision on how smart you are, not on your knowledge of trivia. If you aren't asked primarily conceptual and "code this in your language of choice" problems during interviews, you don't want to work there.
posted by orangejenny at 5:38 PM on September 14, 2011 [2 favorites]


« Older Does anyone remember the old CompuServe text...   |   Planning a scenic drive to see the fall foliage in... Newer »
This thread is closed to new comments.