It’s spring career fair season. At most schools, the fall career fairs are dominated by graduating seniors and masters students looking for full-time work. During the spring the balance shifts, and the majority of candidates are freshmen and sophomores who just got started in their majors, don’t have prior work experience, and are looking to get their toes in the door. Unfortunately, it can be hard for underclassmen to get interviews in the first place, no matter how exceptional they are. Think of it from the company’s perspective – though there are great candidates out there, on average, underclassmen will underperform on all of the following measures:
- The interview
No one likes to waste time, and because the candidates have less experience, it’s less likely they’ll be able to pass the technical interview and get an offer in the first place. Interviewing can take a huge amount of time, so companies will usually focus on the candidates most likely to succeed.
- On-the-job performance
Most companies expect their interns to complete worthwhile tasks, but less experience generally translates to less effectiveness (though I’ve seen amazing interns at all grade levels, including some who hadn’t started college yet).
- Full-time conversion
This is the brass ring – all companies are looking for great fulltime hires, and the internship can be thought of as an extended interview. So it’s disappointing to have a great summer intern, only to see her snapped up by another company the following year. A company’s best shot at having an intern join is to have her leave with a fulltime offer – which is why it makes more sense to target rising seniors.
And so, underclassmen end up in the classic bind. They need experience to get a job, but they can’t get experience because they can’t get a job.
There are, however, a number of things you can do to keep the ball moving down the field, even if you don’t get an internship. I explored this a little as part of another post, but wanted to revisit it in a little more detail. The strategy basically boils down to two key things: 1) you need to build something, and 2) that something needs to be highly visible, easily accessible, and publicly available. It isn’t enough to say that you “worked on” something – anyone who sees your resume needs to be able to click over and see it for themselves. This also means that it isn’t enough to build “anything” – the world doesn’t need another timezone conversion app, 90’s-style website, or github account filled with forked projects that haven’t otherwise been touched. This is actually worse than nothing – I’ve seen resumes that say the candidate’s been working on an unnamed iPhone app for a year and a half. A YEAR AND A HALF??? This is a huge red flag – if this is you, please understand that all it says is that you can’t finish what you’ve started. Take it off your resume. Better yet, finish the damn thing. So, with that in mind, let’s think through some of your summer options.
I love seeing contributions to open source projects on a resume. Contributing to an important open source project has a lot of important benefits:
- it teaches you the ins and outs of a widely used piece of software
- it proves that your code was good enough to be accepted by the project maintainer
- it gives you access to a significant code base that you can learn from
- it introduces you to a community of coders who will be grateful for your help
- it makes you part of a world that serious software engineers respect
- you’re doing some good in the world
Of course, “contributing” can mean many different things. Don’t set out with the goal of fixing a major architectural flaw in the Linux kernel your first week – just have the goal of being useful. In his classic essay How to Become a Hacker, Eric Raymond listed the following ways to help, and thereby become part of, the hacker community:
- Write open-source software
- Help test and debug open-source software
- Publish useful information
- Help keep the infrastructure working
- Serve the hacker culture itself
These aren’t necessarily exciting, sexy tasks. Someone has to pick up the trash, and it usually falls to the pleb (i.e., you). Building street cred is part of the process – don’t give up just because your first attempts weren’t exciting or successful. Also, until you’ve worked on an existing project, I would recommend against focusing your efforts on your personal open source project. It’s harder to get other people interested in something you’re doing, than to be helpful to them in what they’re doing. And being the maintainer of an open source project no one else uses isn’t particularly impressive. Your goal is to end the summer with something tangible and meaningful on your resume. Stay focused.
Write an App
The nice thing about smartphone apps is that they’re generally self-contained, atomic units of yummy programming goodness. You can have an idea, bang out an MVP (minimum viable product) in a day or three, then iterate quickly until you’re happy with it. Coming up to speed on native mobile development is also fairly straightforward – there are plenty of online tutorials, plus a number of good books that walk you through the process one line of code at a time. As I’ve mentioned before, I’ve had good luck with Beginning iOS 6 Development, and Android Programming: The Big Nerd Ranch Guide. Your apps need to look polished. Don’t worry about v1 – just get started on something. But before it gets on your resume, it needs to look nice and do something interesting. Apps that look slapped together, with boring functionality, will serve as negative indicators. If you end up with something that people will pay for, great! If not, remember that your true goal is resume link-bait, and make them free.
Found a Company
Get some of your friends together and start something interesting. Doing something entrepreneurial demonstrates initiative, and will teach you a lot about what it takes to run a company. Do it for real – incorporate, decide how to divide the equity, get a corporate bank account, get the hostname and trademark it. Print business cards. Go to local entrepreneur meetups and ask for advice. Apply to YCombinator, TechStars, or BetaSpring. Work out an MVP, and finish it. It probably won’t go anywhere, but taking it seriously will give you a much more valuable experience than just playing at it for a summer.
Start a Blog
There are many reasons to write, but in this case the point is to document your progress for yourself. Make a rule that you’ll publish every week – you don’t have to write 10 page essays, but having the discipline to report regularly on your progress will serve you well. You may not choose to share your blog on your resume, but you should assume that – barring a complete collapse of our civilization – anything you write will be trivially searchable by anyone for the rest of human history. An employer might not search for you when starting the interview process, but you’ll feel really stupid when that off-color comment pops up in their Google results during the reference checking / due diligence phase.
The other main purpose of a blog is to keep yourself honest. Give yourself public goals, and deadlines. Keep them. Feel embarrassed if you don’t, and pull allnighters if necessary to get things done. Pretend you’re working for a startup – your own startup – and do what you have to do to get your product out on time.
Build a Cool Prototype
When I was looking to get into the video game industry, I wrote my own 3D render engine, including a rasterizer in assembly language. Instead of doing the (at the time) standard first-person shooter-style models and camera, I instead built a Bezier curve-based Descent-like tubular maze, with textures featuring cats taken from one of my Mac’s repeating wallpaper gifs. Because the tunnels were made up of auto-generated polygons stitched together along Bezier curves, I could give their radii a sine wave oscillation, creating a cool visual effect. And thus was born the “pulsating cave of cats.” It was a great demo, because it was extremely geeky, demonstrated a skillset (and mindset) relevant to the companies I was applying to, and was memorable. What’s cool in the industry you’re looking at? Is there something interesting you can do with an open source tool?
I started taking Japanese language classes when I was a freshman in college. I was bright, the valedictorian of my high school class, at a top university, and ended up earning the worst grades of my life. When I handed in my final exam at the end of the year, my Japanese professor turned to me and said, “Daniel-san, you made it!” with genuine surprise in her voice. Ouch. I then spent the summer on a cultural exchange in Japan, and had the opportunity to get two months of immersive Japanese language practice. When I went back to school in the fall, I did much, much better.
Now’s the time to take a hard look at the skills you need to succeed. The best way to build skills is to use them, of course, but there are also some fundamentals that you need to make sure are solid. I’ve written a number of posts on interviewing, which I’ll boil down to a couple of points: know your fundamental data structures and algorithms, and don’t make rookie mistakes.
Pianists don’t just practice their performance pieces, they also do hours and hours (and hours) of finger exercises. You need to be expert in the basic tools of your craft, and now is a great time to work on them.
If you live in a major city, you should be able to find various meetups, user group meetings, morning coffee networking events, and possibly “geek dinners”. Go to as many of these as possible. Become a regular. Don’t go thinking that you’re going to get a job, or that anything specific is going to come of it – networking is most effective when you don’t have a specific agenda, for a couple of reasons:
- You should be listening more than speaking. When you have an agenda, you try to drive conversations toward your goal.
- People hate being used. When you have an agenda, people sense that they’re being viewed as a means to an end.
- Networking is about taking the long view. When you have an agenda, you’re trying to get something specific, NOW. When you’re genuinely interested in other people, and take the time to get to know them and build relationships, opportunities you never would have imagined have the potential to appear. They might appear 1, 5, or 10 years later, or not at all – but even in the latter case, you’ve already won, because you’ve made friends with similar interests.
It isn’t easy to find yourself staring down a summer without plans beyond waiting tables, lifeguarding at the local pool, or playing prison guard camp counselor to a bunch of middle schoolers. But now’s your chance to do your future self a favor – you can still do something meaningful, and doubly so since it will be self-driven.