Advice for getting a CS internship

<p>I just completed my freshmen year in CS, and want to get an internship next summer, so I was wondering what I should do to make myself more competitive. What do these companies look for?</p>

<p>Also, I'm at a top 20 school, and my GPA is currently about 3.33, but it was really killed by me overloading on credits second semester. I'm hoping to have it near 3.5 after the first semester of next year. Is this good enough?
I really want to work at a company in the bay area where I'll make enough via a stipend or getting paid that I can support myself for the summer. How competitive would a position like this be? What kind of stats do I need? Thanks</p>

<p>If next summer is anything like this summer, I don’t think this will be too difficult. Things have really started to heat up. </p>

<ol>
<li><p>Build things and put them on Github. This generally refers to web and mobile applications. A good place to do this would be at a hackathon. Companies really don’t care about your GPA as much as they care about what you’ve built.</p></li>
<li><p>Practice the hell out of your tech interviews. Know your data structures and algorithms cold. For example, if I asked you what the average- and worst- case runtimes of binary search tree insertion were, I’d expect an answer as quickly as you could answer two plus two. Same for something like the running time of breadth-first search. Know why those are the case, not just that they are the case. Practice your interview questions, too. Cracking the Coding Interview is a great resource to start with.</p></li>
<li><p>Just be relaxed and have a good conversation. Even for a software engineering internship, employers want to hire someone that they’re going to enjoy hanging out with for twelve weeks.</p></li>
</ol>