I'm a first year college student majoring in Computer Science. How to get a software engineering internship? What experiences or skills do I need to get an internship from a huge company like Google or Apple? #computer-science #computer #software #software-development #software-engineer #google #apple
For Google specifically, it helps if you have some coding experience, and some courses in algorithms / data structures. If you're a freshman or sophomore there's Eng Practicum, which has pretty low requirements (here's the one for 2016). For normal internships see here. After applying, recruiters look through applications, if your application looks good they send you on to phone interviews. Those will be technical interviews where you'll be asked to do some coding.
Generally getting into an internship is not as hard, though it is harder at the large companies. (My summer internships at local places consisted of showing up and having 0 technical questions asked - much easier :P) If you're set on a large company, definitely do some interview practice (look for example interview questions) so you know what to expect. Code more, be comfortable writing code. And, apply to many places.
In my opinion, the most important skills needed for getting a Software Engineering internship are knowledge of data structures and algorithms and having interesting projects you can talk about. Companies love to see that you've invested time into side projects, or have worked on technically interesting or cool projects in general. Hackathons are a great thing to do to help you get project experience under your belt. You can also take project-based courses. If you're still a first year and can't take as many courses as you'd like, you can study up on data structures and algorithms in a programming interview prep book.
I'd just like to also add that you shouldn't be discouraged if you can't get an internship at your dream company in your first year of college. It's pretty rare to do so, but also you can always gain valuable experience from a smaller company when you start out. It also allows you to get more exposure to different types of work environments, like startup vs. large company.
I believe that companies want to see that you are working on interesting projects and that you are getting outstanding grades in all classes, not just the CS specific ones. Being a freshman, it can seem hard to get the class experience that most jobs want like certain coding languages. You will have to fill this void with other items that will make you stand out as a better candidate than the other students applying for internships. This can be leadership experience in an organization, research projects in the CS department, attendance at networking events, standing out at career fairs, etc. Be seen and stand out against the rest. Having a great online resume is also very helpful, many employers do their research and they want to make sure that interns will fit into their brand. I'm also a huge fan of emailing strangers for advice and then using that opening to talk about yourself and your interests in an internship. They may ignore you or they may become intrigued at your boldness and find a position for you. With platforms like LinkedIn and Facebook, there are many ways to reach employees who work for companies you're interesting in. Just be sure to be open to career advice and ensure that you are not being over aggressive.
It is also worth knowing that sometimes you don't get the job with your dream company the first time, for me it wasn't the dream company for my first 3 jobs. There are plenty of great companies that can give you the experience you'll need to get the jobs at Google or Apple, but don't get discouraged if you shoot for the stars and only reach the moon. You're still pretty amazing! Keep pushing yourself and companies like Google or Apple will be fighting over to bring you onto their teams.
Applying to as many places is going to be key, and having some coding experience will be helpful. Companies may also consider someone based on their GPA as well. When I started college, my first year I struggled a little, so I really had to work hard to bring my GPA up the next years.
Since you are majoring in Computer Science, algorithm, data structures & coding skills are going to be most important skills in interviews which you would give for internship. Since you are in first year, you can try Engineering Practicum at Google which is meant for 1st & 2nd year students with CS degree. Try doing lot of software projects either within school or outside which will make your resume look good. Also participate in coding contests like ACM.