Computer Science degree, and no engineering experience. Can I get a job?
August 9, 2016 8:46 AM   Subscribe

As a software engineer at a top tier technology company? I graduated from a liberal arts college with a degree in Computer Science. We didn't cover much software development, but a lot of concepts, like algorithms, data structures, networks, machines, etc. I had always thought I didn't want to be an engineer, so all my internships and job experience is centered around business planning and product development. Now I want to switch to engineering.

After college, I've been working in a product management role where I do not have to code at all. I've also forgotten much about my computer science fundamentals. However, now I'm thinking I want to hop on the software engineering track, and I will be starting the interview process (online coding assessment, phone call, in-site) with Amazon in the next month.

How feasible is it to get a job with Amazon (or any other big company) as an SDE?
How best to prepare, when I've forgotten all about data structures, algorithms, etc.
Any other tips?

Thanks
posted by Junocular to Work & Money (21 answers total) 6 users marked this as a favorite
 
How feasible is it to get a job with Amazon (or any other big company) as an SDE?

To be honest, not very. The top tier companies look for experience and/or graduation from top colleges, neither of which apply to you. Further, lateral mobility inside the top tier companies is notoriously quite bad; in other words, the chance of picking up a product management position at Amazon and then moving internally to development is low.

How best to prepare, when I've forgotten all about data structures, algorithms, etc.

There is an industry in preparing for these sorts of interviews. The most popular reference is Cracking the Coding Interview, but Quora is also a good resource.

Any other tips?

There are software development positions at lower-than-top-tier questions and they tend to be a lot more flexible about backgrounds such as yours. I think this is a better place to start, lest you discourage yourself entirely from switching to development engineering.
posted by saeculorum at 8:52 AM on August 9, 2016 [6 favorites]


There are two steps to think about: getting an interview and doing well in the interview.

Getting an interview will be hard at a top-tier company unless you have a strong referral. Do you know someone at such a company who will say nice things about you? If not, there's no harm in applying anyway, but don't hold your breath for a call back. I agree that getting a job at a lower-than-top-tier place may be a good option to begin with.

Doing well on an interview will require lots of review (of fundamentals you forgot), maybe some new learning (of engineery stuff you never learned), and lots of practice. Doing some practice interviews with a sympathetic mentor could be a huge help.

A fun supplementary book is Programming Pearls.
posted by actionstations at 8:59 AM on August 9, 2016


Don't be completely discouraged! I teach computer science at a university more known for its liberal arts programs than its science or engineering ones. But our students, even ones who have been off doing non-software things for a while, get interviews and hired at top companies. I have known students who only had a CS minor get into top grad programs in CS or get hired at places like Google - of course, with additional effort on their part.

There are many resources for programming interviews. Buckle down and study up.
posted by procrastination at 9:01 AM on August 9, 2016


It's possible, but you'll need a Rocky training montage of preparation. In addition to interview books, search for previous semester final exams for introductory data structures and algorithms classes.

To be honest, not very. The top tier companies look for experience and/or graduation from top colleges

Yeah, but OP is interviewing at Amazon
posted by qxntpqbbbqxl at 9:22 AM on August 9, 2016 [1 favorite]


Is there some reason you want to interview at big/important companies right off? My recommendation would be to get a job at a smaller, less intense company for a while and build your skills. You need programming experience. Amazon is not the place to get it. If you get the job and don't perform well, you'll be in risk of termination that may not have happened if you had experience.

I learned more in the first six months of my engineering job than I did during the process of getting my bachelor's degree in Computer Science (at a liberal arts college).
posted by possibilityleft at 9:31 AM on August 9, 2016 [4 favorites]


Really top-tier companies: probably not. You'd have to have way more experience, or have really extraordinary credentials (like a 4.0 GPA or a publication). An MS from an engineering college that sends lots of folks to your target company would help too.

But there are dozens of big tech companies, most of which are not nearly as competitive, and which have a very similar career path. No reason to limit yourself to only the top tier.
posted by miyabo at 9:32 AM on August 9, 2016


Sorry, I misread and didn't realize you already had an interview at Amazon, but I do stand by my recommendation to start with a smaller company instead and gain experience that way.
posted by possibilityleft at 9:33 AM on August 9, 2016


Start some independent projects and create a track record on Github and/or in open-source projects. The advantage of this is that it's code that you can share with others (not covered by any NDA), and a side project can be entirely your own.

This does a number of different, good things: demonstrates subject-matter interest, displays initiative and independent thinking, creates useful subject matter for interview conversation.

A month is a tight timeline but it's enough to dust off your old CS knowledge and build some new interviewing skills and experience.
posted by theorique at 9:45 AM on August 9, 2016


Raw intelligence goes a long way. But ultimately they'll be looking to see if you can write code. So I'd practice writing simple programs as much as possible between now and then. Seconding Cracking the Coding Interview; it has many exercises you can do.
posted by jeffamaphone at 9:47 AM on August 9, 2016


There is no way you'd pass an Amazon coding interview right now, based on your self-description. You would have to practise solving coding problems against the clock for a few weeks at least. Sites like this one should give you an idea of the kind of questions that get asked and in fact you can search for Amazon-specific interview experiences.

Coding interviews everywhere have got a lot harder lately, and it's got to the point where even I dread having to do one, and there are good odds that I wrote part of the web browser you are currently using.
posted by w0mbat at 9:52 AM on August 9, 2016 [2 favorites]


Amazon has a huge hunger for hires. They burn through young cheap employees and send them into the Seattle tech ecosystem before their stock vests. Then again, I have heard that you learn a lot.

Just prepare like you're taking an oral exam for an algorithms course, and read up qualitatively on big company practice (how do you deploy new code without disrupting service, especially if something goes wrong?). Make sure you can translate problems from one machine to multiple machines, since that is what I am trained to do in interviews when the candidate has aced the basic coding question.

Usual advice, but worth repeating: make sure you can still write code that compiles without an IDE and also, without a keyboard. Remember the syntax for whatever language you choose, how to do basic things like instantiate lists or arrays. Have a plan of writing on whiteboards: leave space so you're not erasing and rewriting half the time.
posted by batter_my_heart at 9:56 AM on August 9, 2016 [1 favorite]


I'm not sure why everyone here is assuming you didn't go to a top college. If you did, I can tell you definitively that I know many elite LAC graduates with CS degrees that did not have any explicit engineering training who went on to be hired as SWEs at top tier tech firms. I agree with others who have posted above that you generally need some combination of name recognition school +/- high GPA +/- experience, but your interview at Amazon bodes reasonably well that you have enough of those boxes checked. Experience in product management is helpful and some engineering hiring managers will like that (it's culture dependent, some might think you're not worth the headache).

Are there any opportunities to move into engineering at your current company, or even just get involved with working on a small project there on the side of your PM role?

I know a lot of my friends went back and reviewed their intro level data structures and algorithms before interviewing. If you did well in your fundamentals CS curriculum and can speak intelligently about it, you have a good shot at endearing yourself to someone with hiring power.
posted by telegraph at 11:12 AM on August 9, 2016


Response by poster: Amazon reached out to me - I guess they had my resume on file and thought that my educational background makes me a potentially good fit.

The email from them is what prompted this whole thing, so I was just curious as to if I should even try and go for it. As many users have said, it's a long shot for sure.
posted by Junocular at 11:14 AM on August 9, 2016 [1 favorite]


Hmm, they reached out to you? Then you probably do have a decent chance! No one schedules interviews with someone they think has no shot. Technical management in some ways is more in demand than "plain" engineers, so I would go for it.
posted by wnissen at 11:31 AM on August 9, 2016


Companies like Amazon interview pretty much constantly. If they find people who might have the skills, they're happy to put you through the interview wringer just in case. Even as a self-taught generalist who has basically zero chance of getting hired, Google still emails me annually to see whether I'm looking. Don't be discouraged if they pass, there's a ton of companies out there who would be more than happy to give you a chance. Do brush up, though.
posted by rhizome at 12:19 PM on August 9, 2016


Just to confirm what rhizome just correctly indicated, Amazon recruiters will contact anyone who has a vaguely relevant experience to at least start out with online code evaluation.

For what it's worth, I am not a software engineer by trade, do not include software engineering on my resume, and still have been contacted a few times by Amazon requesting an software engineer interview.
posted by saeculorum at 12:36 PM on August 9, 2016


Oh, and by "give you a chance," I mean "hire you."
posted by rhizome at 12:42 PM on August 9, 2016


Should you go for it? Why not? If you want to become a software engineer, there's only experience to be gained in going through this process. Most top tier software companies have roughly the same interviewing format, so going through it at least once will give you a better idea of what to expect. By the way, this is the general format: An initial phone screen or two to find out if it would be a good idea to bring you on site. The initial phone screen will be some mix of discussion of your background and some simple coding questions. If you pass the initial screen, this will be followed by a full day of on site interviews . When you are on-site, you will have multiple interview sessions, each of which will be conducted by one or two interviewers. Most of the interviews will be technical, but there will be at least one that is about culture (i.e. do you prefer agile to waterfall, how do you deal with conflicts, etc) and most likely a lunch interview (you get to take a breath and meet potential colleagues). The technical interviews will focus on either coding or system design. Junior candidates like you will probably not get system design interviews, because they depend on real world experience. That said, they may not have read your resume closely, so make sure you're up front about the level of programming experience you actually have when you communicate with the recruiter handling your application. There's a whole industry around succeeding at whiteboard coding interviews; any of the two main books will be reasonably good preparation. Study them; make sure you know and understand the main data structures and algorithms that you will be tested on and then: practice, practice, practice. Make sure you're very good at explaining your solution and its tradeoffs (time, space, coding style), and also make sure you understand the problem before you start solving it.
posted by rhythm and booze at 1:02 PM on August 9, 2016


Having worked at Amazon, no it is not a long shot. They contacted you for a reason so don't sell yourself short. Message me.
posted by metajim at 3:41 PM on August 9, 2016


rhythm and booze gave a good summary of the interview process, except that you may not get a non-technical interview. I'm an interviewer at a top-tier company whose onsite process is purely technical interviews (plus whatever softball resume questions the interviewer decides to throw at you, which they won't care about the answer to unless you sound like an idiot).
posted by serelliya at 8:05 PM on August 9, 2016


I can tell you definitively that I know many elite LAC graduates with CS degrees that did not have any explicit engineering training who went on to be hired as SWEs at top tier tech firms.

Hi! This is me - I majored in CS at a liberal arts college that's top-tier overall, but not known for its CS department (I was one of four graduating CS majors). I went to work as a software engineer at Google immediately after graduation. Three things made a big difference in my application and interview process:

1. I recognized senior year that I was learning a ton of concepts, fundamentals, and mathematical background, but basically nothing practical. So I taught myself iOS development, put together a simple (but still useful) app, and submitted it to the app store and put it on github. That carried a lot more weight than basically anything else I did in undergrad (including building a compiler). Companies want to see that you can get shit done, so show them it.

2. I studied algorithms, data structures, and basic CS like hell. I honestly spent more time studying for my Google interview than for all of my finals senior year combined (though one of those finals was for an advanced algorithms class, so that one was a little two-birds-one-stone). That helped a lot.

3. Referrals are huge. If you know anyone at a big tech company - even if its only tangentially - reach out and ask if they'll put in a referral for you. 99% of time time they'll be thrilled, because there's no drawback if you don't get it but companies pay huge referral bonuses if you do. I reached out to someone I hadn't talked to in half a decade who I knew worked at Google, and he was thrilled to submit me.

So, yes, you have a shot at this Amazon interview. Just prep like hell. People recommend Cracking the Coding Interview a lot, and it's a good book, but for my money I preferred Programming Interviews Exposed, having studied from both books. But know that even if this particular Amazon thing falls through, you've got a solid shot at a similar gig at another top-tier company.
posted by Itaxpica at 9:42 PM on August 9, 2016 [2 favorites]


« Older Quick Way to Scan 100 In-Progress Web Pages   |   Driving my Mexican bought car into the USA as a US... Newer »
This thread is closed to new comments.