A brief guide to Tech Internships for CS students
alexeymk.com
alexeymk.com
I worked 20 hours a week in college (and my summers) mostly for free, and I don't regret a second of it. Learned more through those opportunities than anything that would have paid me.
If you're going to work at a tiny little startup of 2-3 people, maybe they can't pay you. Of course, maybe they shouldn't be hiring interns at that stage of the game. I worked as an intern for a startup that size, though, and they still paid me $15/hour.
If you're working somewhere larger, it only makes sense that they should pay you if you're doing work of value. Telling you it's all about the experience is like that oft-told story where clients want web designers to work for free, because it's "good exposure" and will "expand your portfolio".
As an intern, I've laid out, soldered, and debugged PCBs, designed and assembled test equipment setups, made fiber optic cables, tested cameras for surveillance drones, re-written UIs to use WPF, done significant kernel hacking, and published several papers, among other things. All of these tasks generated value for my employers, and it only makes sense that they should pay me for it.
That's just my 2 cents, though.
It's a common dodge in Australia to put people on as "trainees". I think it can be illegal if they aren't really being trained, and there's lots of other rules (like it must be an educational course requirement).
My understanding is that it's actually rare for tech companies to violate this law. But I have heard that it is common in the publishing industry. See: http://news.ycombinator.com/item?id=2412255
Ranking in terms of priority:
1) Paid + Learning = Jackpot.
2) Learning Only, Unpaid = Not as great, but at least you're building skills that will increase your value out of school.
3) Paid Only, Less Learning = Worst option. When it comes to full time hiring, people won't care that your internship paid you 15-30/hr. They'll care about what you've learned, what quantifiable skills you bring to the table, and proof that you're a mover and shaker.
The one shop I've seen who didn't pay for interns was in upstate NY and only recruited from a small college nearby. It was hard to take them seriously with just that but when they said they didn't pay, the top students with options just walked away.
Not only are interns doing work but they're being trained and inducted into a company that they have a very high likelihood of returning to. It is a big win for the company if they can try you out at a discounted rate before hiring you full time.
But as a student, it's important to build valuable experience that you can quantify. If you can get that experience AND get paid at Amazon,Google, etc, then so be it! That's awesome.
But if you have an amazing opportunity to learn more, and have a greater impact at a smaller org, that pays less or nothing, then that could still be the best opportunity as an intern. (Not to mention, it could also prove to be more rewarding).
Don't get me wrong - if you're going to learn more AND get paid big bucks at one of the big companies, then that's the best opportunity in the world and you should never pass that up.
All the internships I've done and folks I knew in CS/CE/EE, I don't recall anyone having an unpaid internship.
Being offered an unpaid internship should be a red flag. While it's possible for a tech company to have an intern around who does no useful work for the company, I find it unlikely. And, given that, any company that would willfully break labor law is probably going to be a bad place to work.
I don't see any excuse whatsoever to take on an intern without paying them.
I think the closest I ever saw was when we brought a guy in for 3 days unpaid for him to learn on the system. He did no work in those 3 days, our company paid all his travel and food expenses, and he was pretty much guaranteed a job once the funding paperwork was filed. Personally, I would have preferred to pay him for the 3 days he was up, but then going somewhere to get free food is better than sitting at home paying for your own food ;-)
At least in the UK, there are plenty of opportunities to get funding for graduates. Call up your local universities and they will pay you to take people on.
My own internship was paid, with 2/3rds of my wage covered by my university. I'm now employed full-time here.
In summary, if you're looking for an internship, get one that pays. If nothing else, it shows other potential employers that you value your time appropriately.
1. Instead of doing menial grunt work you'll be doing real work for real users, which is a _way_ better learning experience. Finding out what people want isn't something that can be taught. You have to make things, put them in front of large numbers of people, and see how they react. You can get this experience by building a startup and going on the long march of getting traction. Or you can work for a startup that already has traction and observe their users. The latter is obviously way easier.
2. If you're good you'll probably get a job offer right away instead of an option to take a job after you graduate. If you're the sort of person that needs a piece of paper in order to feel like you're worth something this might not matter. But if you're in it for the work itself, you can save yourself two years of salary plus tuition.
In a related note to point 1, work for a consumer-facing startup if you can. The way consumers behave and the way business customers behave are completely different, and consumers are a lot more fun to work for.
But what you'll be doing as an intern is not consistent across companies or even across teams. You might be QA, which is nothing like writing production code. You also might be assigned a project instead of working on the code base with the rest of the group. You might even be a sys admin or something similar.
If you're getting an internship, make sure you know what you're getting.
I don't mean this as a criticism – Bloomberg tries very hard to make sure interns have a great experience and usually succeeds. But there is a difference and I, personally, preferred the other experience.
* Quigo (acquired by AOL) twice, before and after freshman year
* AMD, after sophomore year
* Goldman Sachs (as a developer), after junior year
* Microsoft, between the two years of my MS
* NASA, while doing my MS
I'm not trying to name drop, but to point out that I optimized for diversity and to emphasize how valuable this was. I worked for a startup (at two different sizes), an EE company, a bank, a big software company, and as an researcher at a government agency. Ultimately this helped me figure out what I wanted to do after school (work on my startup, then go to Google). I could easily have ended up doing something miserable (like going to Goldman - which would be miserable for me, at least) if I hadn't sampled so widely.
My experiences between working for a tech company and a physical product company were vastly different. Likewise, working for a new web dev startup (no SVN, no bug tracking, solo projects) and a mature company (yes SVN and error tracking, group projects) were vastly different.
When I graduate, I'll have a good idea the size and style of company I want to work for, plus I'll know the questions to ask to make sure it fits the dream job I have imagined.
To get back to your question, the answer is "it depends". Is the team you're going to be working on essentially looking for a new employee they'd like to hire post-graduation and have around in the meantime, or are you going to be applying for an internship at a larger company where they might not be focused on coding prowess so much as "smart" and trainable? Either will figure out during the interview process whether or not you're a good fit, and find a place for you to use the skills you have and learn new ones.
Now, I work at a government lab--but I like to give back by serving as a mentor for internships. If anyone is interested (it may be a bit late), here is a link: http://nist.gov/surfgaithersburg/
I have taken on students from CS, physics, math, EE, etc. One student is applying for grad. schools in robotics, another is looking to join a startup in Alaska (if anyone has any pointers for him, let me know--he was a math/CS major and really good--we did some work on using comet to do web-based data analysis and to display live data from instruments)--others have gone on to physics grad. school, and one is working in industry. So, some of my interns have also learned what they don't want to do ;> My projects often involve a combination of science and programming--but there are other groups that have been working on android apps, cryptography, etc.
Generally, my goal (and for my colleagues) isn't to crank work out of students, but rather to give them exposure to research. I try to think of projects that my interns can own--I usually have several possibilities and try to match the students with the project. For our particular program, we pay for housing and a stipend of $5500 for the summer (11 weeks).
For high school students in the area, we also have a summer internship program (which doesn't pay--sorry), but again, I try to provide the students with projects that they can own.
One final thing--we are limited to US citizens...
Definitely start looking for an internship during your freshman year. Chances are almost nobody will call you back, you won't get many interviews, and the ones you do get you won't be able to answer anything, but all you need is just to get one person to agree and it'll make your resume look infinitely better for the following years.
Startups are definitely a good option for an internship. What I see a lot of the time, especially here at Cal, is that nobody wants to work anywhere besides Google, Apple, Microsoft or Facebook. People don't bother with any company that doesn't have a huge name and since many of these students don't have any prior work experience before applying to these tech giants, they get rejected. I think that's a huge mistake. I learned more from my summer working at a startup than a years worth of schooling (and it's not bad learning while being paid).
One last note, GPA doesn't seem to matter as much as work experience. While it can never hurt to have a good GPA, I've been on dozens of interviews and not once have I been asked for my GPA.
Quick plug: Mozilla is another place which cares more about what you can do rather than what stage of schooling you are at. They're hiring and they have an excellent program.
Personally, when looking at junior hires, personal projects can have a lot more weight than minor job experience. The vast majority of candidates with very little job experience also do not have a lot, if any, personal projects. Anyone who has built anything stands out.
By the way, awesome handle! I'd refer you for an interview based on that alone.
When I was at FB, several of the interns had just finished high school, so it's certainly doable to get a top company offer - same goes for start-ups. It's just a question of emailing them and having the experience - past projects, etc - to be interesting. Same advice as I'd give to a college student.
The "Who's Hiring" monthly threads are a good place to start looking.
It was one of my favorite work experiences, having been an Apple fan since childhood. But it also taught me that I wasn't super interested in working my way up in a huge company as a longterm career, at least at this point in my life.
My biggest piece of advice with summer internships: go somewhere else! Moving to Albuquerque for the summer was awesome and gave me a great experience of what it's like to live on my own.
I tell every engineering student I meet not to get an internship, which is why I always have a hard time hiring internships. Instead, I recommend creating projects of your own, if it's not in IT, it might be in the community, the student body or some other organization. Try to improve or create something on your own. As a CS student it's likely you'll find a job after college and you'll quickly learn all the things mentioned in the article and comments (including discovering what you don't like).
During your college breaks you're free to be completely self-directed. Depending on your career choice it'll take a long time (if ever) until you get that opportunity again!
I think I might b
I think if you've done extraordinary things outside classes (great internships, awesome research, major open source contributions or own projects), you don't need a great GPA to stand out. But for most students graduating today, that's not the case.
I don't go to a extremely highly ranked school either.
Just reread the article, and I'm going to call nonsense on the GPA part again. From my exp, if you have a >3.0 you're good to go, as long as you know your technical stuff. The only co I have ever had a problem with is NVIDIA, which explicitly required >3.5.