Help a completely inexperienced CS grad find his first job!
February 10, 2011 8:24 AM   Subscribe

I'm a fairly recent and very inexperienced computer science graduate from a great public university, and I need some job advice. At the moment, I'd like to get into game development (specifically on the iPhone side of things), but I'm also interested in music and composition, mathematical art, animation, photography, and cinema, as well as archiving to some extent. What's a good job for me, and how do I get it?

Unfortunately, all the interests I've listed above are just that -- interests -- and I have no significant experience with any of them, except for a second major in music. On the CS side, things don't look too rosy either: I never met with any of my professors when I was still in school, and I don't have any job experience or interesting projects under my belt. This is particularly discouraging when so many job listings demand knowledge of a ton of different languages and paradigms, in addition to n+ years of experience with some field-specific thing. All I can really say for myself is "knows how to program, willing to quickly learn the details."

Another thing: CS geek culture terrifies me, it really does. I'm not an xkcd-style nerd; when I program, I enjoy the craftsmanship and discovery, but I don't spend my days learning about obscure algorithms or messing around with the Linux kernel. (I do, however, often read programming blogs and peruse Stack Overflow, even though many of the topics are beyond my experience.) Math and logic puzzles generally bore and confuse me, and I viscerally hate Google's (purported) interview questions. Unfortunately, most of the CS people I know are exactly my opposite, and if the industry is full of them, I’m afraid I might not be a serious or knowledgeable enough candidate.

In other words, I'm as green as they get, and I'm not quite sure how to get hired. I suppose I could spend a few months working on personal or open-source projects (already started developing my own iOS game, but finishing it will take a long while) and reading a few good CS books (currently starting on Code Complete and Programming Pearls), but I'd like to begin earning my own money in the industry as soon as possible -- especially since I've been basically sitting on my butt for the past year. (I graduated last spring.)

(I should specify: I haven't applied to very many jobs over the past year [maybe 20-30], but I've gotten technical phone screens for a good handful of them, so I suppose my resume and cover letter aren't too shabby. Unfortunately, I've only gotten one in-person interview so far, which I guess means that I lack the specific technical skills that these companies require.)

I'd definitely like to make money as a game developer at some point, but I'm thinking perhaps it would be more fun on my own, as an indie developer. (In the future, not immediately.) As I mentioned above, I'm also very interested in the arts, and I'd love to hear any and all suggestions for other creative tech jobs I could pursue. One thing I definitely don’t want to be doing is IT.

To summarize: how do I get hired with my very limited CS experience, and more generally, what sorts of jobs could I be looking for? Here’s a throwaway e-mail, just in case:

If it matters, this is in or around the Bay Area.

Thank you!
posted by anonymous to Work & Money (15 answers total) 8 users marked this as a favorite
If you're at all interested in academic computer music, check out the Supercollider community.
posted by phrontist at 8:36 AM on February 10, 2011

(Not that they regularly advertise academic openings, but a great many academic composers who are heavily computer oriented seem to hang out on the mailing list)
posted by phrontist at 8:40 AM on February 10, 2011

The Game Developer's Conference takes place at the Moscone Center in 2 weeks. Maybe look at buying an Expo pass (~150 bucks, not cheap) and have a look around, and talk to people.
posted by hellojed at 8:54 AM on February 10, 2011

, I'm as green as they get, and I'm not quite sure how to get hired.

Talk with your career office from your alma mater, even though you no longer go there.

I'd definitely like to make money as a game developer at some point,

Hah. Game development is a very popular field full of people who are very good at advanced math willing to work long hours for poor pay.

To summarize: how do I get hired with my very limited CS experience, and more generally, what sorts of jobs could I be looking for?

There are lot of companies that are willing to basically "train" intelligent people with a background in CS, if only because the technologies they use shift so quickly from project to project that it is pointless to hire someone for his specific expertise. What you might want to do is apply for IT solutions consulting companies (I know you said you don't want to do this, but hear me out) like Accenture where you'll do a lot of back-end integration systems programming. These environments don't have a lot of "CS geek culture" surrounding them and don't demand that their applicants be the sort of people who were contributing to the linux kernel at the age of 15. You could try to parlay these jobs into something where you focused on visualization and human interfaces, and from there you could transition to game development. But by that point, you'd probably be making a good enough salary that sacrificing it all for the "privilege" of game development would no longer seem appealing.

But your best bet is to get a programming job now (honestly, what you should have been doing with your summers while you were in school), and spend your free time going to conferences and talks on computational art and music at your local universities and museums and talk with the presenters and researchers to see how you can get involved.
posted by deanc at 8:54 AM on February 10, 2011 [1 favorite]

I'd definitely like to make money as a game developer at some point...One thing I definitely don’t want to be doing is IT

Have you read about what it's like to actually work in the game industry? It's a lot of long insanely long hours for not much pay compared to other programming jobs. And since there are a lot more IT positions available than game programming positions, game companies can be very selective about who they hire, so people with great math skills (games tend to use more advanced math than other kinds of programming) and great general programming skills end up working in them. If you want to write web apps you may not make it into Google, but you could get at one of the other thousands of companies that need web app developers, whereas if you don't get a job at EA or one of the other big game companies there are not a lot of other jobs out there.

This is particularly discouraging when so many job listings demand knowledge of a ton of different languages and paradigms, in addition to n+ years of experience with some field-specific thing.

Are you looking at entry level positions that you are actually qualified for, or just jobs that sound like something you would like? Most companies that hire entry level CS grads expect to have to not have a lot of experience (hence the general problem solving puzzles that you don't like in interviews). In addition to continuing to try to learn more technical stuff and work on personal projects to get more relevant experience, try going to a temp agency to try to get some kind of job even if it's not in the industry that you eventually want to work in.
posted by burnmp3s at 8:56 AM on February 10, 2011

If this weren't anonymous, I'd mefimail you; if you're curious why, you can mefimail me (a resume could help too).
posted by doteatop at 9:06 AM on February 10, 2011

I interview 3-5 people like you every week. The number one reason I reject candidates is weak fundamentals (data structures, OOP design, algorithms, problem solving). We rarely get to the actual job-specific skills, and those are teachable anyway if you have strong fundamentals.

My advice: write code, a lot. Practice solving different problems, learning different strategies, know your basics inside-out. With a strong foundation and good adaptability you can be taught what's needed by any company that hires you. But if your fundamentals are weak that will scare away any good employer.

Academic coding is exactly that - academic. We understand what we're getting when we interview college grads, but make sure that you really do know what you've been taught. That data structures class that covered hash tables and graph theory? Review it. That design class that covered "is a/has a"? Review it too. Etc.

Your interests are all good (and common), but it's hard to go straight into a development role for those interests w/o a good background in development or a proven track record doing similar work.

Sometimes you have to suck it up and just take any development role, then as you gain experience you can move into what really interests you. Sometimes you'll surprise yourself by learning a new interest. Maybe distributed systems or machine learning or banking systems becomes appealing? I love photography, but I'm totally uninterested in image processing.

Maybe you're better suited in a less technical role if you don't feel you identify with the "real" CS guys. But we're not all kernel hackers and language geeks either. Personally, I'm all about user experience, and software is a tool to improve that. And sometimes the user is other developers.

So...strengthen your fundamentals. Decide whether you're truly interested in development or just a technical role doing non-development. And apply for some jobs that are outside your known interests.
posted by jpeacock at 9:26 AM on February 10, 2011 [7 favorites]

Wow, this a bit uncanny - at first I thought this post was by my little brother, as you sound exactly like him! But if you're in the Bay Area, I suppose not.
Anyway, my little brother is about to finish his degree in CS from a great public university and also has a second major in music. He recently got hired by an electronic medical records (EMR) company as a technical service person. Essentially, he will be helping hospitals, clinics, doctors and other medical staff understand how to interface with the EMR software. So I second jpeacock's suggestion of doing technical roles that are non-development work. Companies always need people who have a thorough understanding of the software, but can also communicate with people.
posted by msk1985 at 9:50 AM on February 10, 2011

Maybe you should start writing your own iOS software and putting it up in the app store. You'll earn some money, maybe, but you'll have experience, something you can point to in interviews.

You can try to make apps that support your other interests. If you make a half way decent (and half way unique) synthesizer for iphone/ipad people WILL download/purchase it.
posted by tremspeed at 10:08 AM on February 10, 2011

Sometimes you have to suck it up and just take any development role, then as you gain experience you can move into what really interests you.

jpeacock's answer is wise. By all means, use your spare time to develop iOS games and follow your bliss. But for the time being, you need to get experience, and the way to do that is to spam your resume to many employers, go to interviews, pick your favorite offer, and spend the next few years working hard. Look for every opportunity to go above and beyond the bare minimum. Why? Because this first job is a stepping stone, and you want a stellar letter of recommendation from your first manager.
posted by qxntpqbbbqxl at 11:33 AM on February 10, 2011 [1 favorite]

Alternately, there are lots of game development trade schools and professional masters programs. Some of them boast high industry placement rates. Maybe someone in the game industry can comment on how well regarded those programs are?
posted by qxntpqbbbqxl at 11:36 AM on February 10, 2011

This is a little out of left field, but once you have a solid body of work that you can present (a prototype, wireframes, design docs, etc.), you might want to approach training companies. Many already create game-based learning, and the more forward-thinking ones create multimedia-enhanced content for delivery on platforms besides a PC and browser.
posted by evoque at 12:00 PM on February 10, 2011

So... I don't mean to be one of those CS peeps about this either, but how do I rate your skills without any projects, theory, or interview questions :) Where you fit on the programmer competency matrix. How can you prove that you "know how to program".

To sum up some advice from the general startup world: ideas are cheap, execution is not. To echo jpeacock, fundamentals is the core thing I look for when hiring. Algorithms matter! The people I work with have plenty of interests outside of computing, but we all know* computing too.

Maybe I am over-reading some bitterness, but I am not sure what sort of job you actually want. If you want to code, start coding.

* for some values of know
posted by gregglind at 3:18 PM on February 10, 2011

You are in a golden window that is rapidly closing. Many companies will hire recent college grads out of CS on the basis of little more than "potential" and basic textbook knowledge. Programming is at the heart of it a skill that really requires some level of apprenticeship to become truly proficient. Very very few people have the chops to teach themselves the skills that a company would want from any kind of "experienced" developer.

You are also trying to get a job in the middle of a giant tech bubble, and living at the physical heart of the bubble. The fact that you do not have a job yet leads me to wonder how hard you are really trying.

So this is my tough love for you: kid, get your head out of your ass and find a job where you can really learn to code (or learn that you hate coding but like project management, or learn that you hate technology entirely and want to work on an organic farm in Vermont). As the tiger mother says, nothing is fun until you are good at it, and you aren't gonna get good at it without practice (and in this case, I think you really need guided practice). If you get a job and stick with it and become a proficient coder, the world really opens up for you. I'm not going to tell you to settle for a job you hate but seriously, if you want to learn how to make iPhone apps you can find someone to pay you to learn that.
posted by ch1x0r at 4:46 PM on February 10, 2011

You're not in as bad a position as you seem to think. I'm a producer in the game industry, and several of my best folk might have described themselves as you do, fresh out of a degree. ch1x0r is right that there are a lot of companies out there that might hire you despite your inexperience if you have what they need. Though parts of the industry are very well-established, and parts are very difficult or treat their staff very poorly, there is still a lot of room to get in on the ground floor and establish yourself despite initial inexperience if you work really hard toward a goal.

I entered the game industry as a QA tester, and I recommend it to people despite the many horror stories. It can be a good way to start - dedicated QA staff, especially leads or in small companies, get to work with most of the other disciplines, so it would give you a chance to find out what you really want to do. I've seen QA folk go into programming, production, management/business, art, and audio once they know what they want. That is so common that at GDC (which, yes, you should absolutely attend, check the CA program), a common complaint in the QA panels is how QA is treated as a starter position rather than a real field. However, it's getting harder and harder to find a meaty QA job as more and more "public beta" crowdsourcing and a ton of interest glut entry-level positions.

The breadth of your interest is working for you, if you want to do game design or take a role that uses game design. Good game designers are polymaths with enough programming knowledge to translate their understanding of what the game is about (music, or history, or composition, etc.) into game mechanics that can be programmed well. It's different for programmers, but if you end up in game design, that will help you. It will also help you on a small and/or indie team where the second project may bear little resemblance to the first.

Several answers suggest that you get out there and code, and they cannot be more right for several reasons. For one, you may find out that you don't want to do it-- that was me, fresh out of college. For another, you will build a portfolio. When I'm hiring the formal experience matters less than a portfolio that gives me insight into the applicant. The formal experience in the resume, though I will ask for it in the job posting, tells me that they know enough to not be fired in previous jobs. The portfolio and the interview tell me whether they can think and take initiative with what they've worked on.

I think a larger challenge for you is knowing what you want to do and going for it, whole-heartedly. From your question, you're open to many things, but a well-run game team doesn't need someone who is open to many things, they need people who are doing them. Practice, and use whatever you're doing to find out what you want to do. jpeacock nailed that.
posted by peripatetron errant at 8:31 PM on February 10, 2011 [1 favorite]

« Older Help me build up a Jack Vance book collection.   |   Please help our SMB finally go paperless! Newer »
This thread is closed to new comments.