The Ultimate Internship Guide

Hola!

As a student each one of us has a dream. Dream of doing a great internship and landing a job in a company that you really love and want to work for! There are jazillion websites, articles, blog posts and videos available on how to land an internship. Chances are, you've already read or know 98 percent of this advice: edit and proofread your resume and cover letters, dress appropriately for an interview, be on time or 15 minutes early to an interview, send thank you notes etc. You won't get any such advice in this blog post. This post will take you from zero to one. Get a notebook and pen, this is going to be a long post. Grab some snacks and start making a note of points that you think would be helpful for you in the future.

I'm assuming you are currently in second year and you'll be applying for your dream internship in third year. You already know C/C++ or any object oriented programming knowledge and basics data structures like Linked List, Stack, Queues etc.

Let's divide the blog into three sections.

Things you need to do before applying for an internship.

Most of the US based companies start their summer internship interview process very early, in december. After your fourth semester that is completion of second year, you'll have 1.5-2 months of vacation (depends on your college) and that's the perfect time to improve your basics of computer science and coding skills.

I interviewed with 5-6 companies and from my experience here is the list of topics you should know (if you haven't decided your field).

Data Structure Algorithms Networking Operating System Database
Linked List Complexity Analysis Network Layer Process and Threads SQL Query
Doubly Linked List Searching (Linear and Binary) HTTP Protocol Memory Organization Indexing
Queue Sorting Algorithms TCP & UDP Protocol Booting Process Normalization
Stack Basics of Graphs Subnetting Paging ACID Property
Hash Table BFS and DFS Masking Deadlock SQL Injection and Prevention
Binary Tree KMP Algorithm STMP and POP3 Starvation
Binary Search Tree Robin-Karp Algorithm Working of PING Critical Section
Priority Queue Dijkstra's Algorithm TCP Handshake IPC
Trie Prim's Algorithm Inode
Suffix Tree Divide & Conqure and DP

But Vicky, I would be applying for position specific internship. Where is my list?

Here you go!

Frontend Devs Backend Stuff Android Devs iOS Devs (I don't know much)
HTML5 HTML Java Objective C
CSS3 CSS Android Versions and changes Swift
JavaScript Server configs Working with Android Studio App Store Guidelines
JQuery Working with APIs Android UI and UX Common App Rejections
Saas Chrome Dev Tools Best Practices
React Python, PHP or Ruby
Angular
Chrome Dev Tools

I'm not listing here very basic stuffs like Working with Ubuntu, Curl and telnet command etc.

Note: You don't need to do know everything mentioned in the table above. Algorithm and Data structure are very important to crack any interview so you should spent most of the time learning and practicing problems.

Vicky, That's huge list! Are there any good resources available?

Yes! All the useful websites, PDFs and article links are mentioned at the end of the post.


Getting shortlisted for the interviews is the toughest part and for that your resume should be very strong and of very high quality. So what are the different factors that the recruiter would love to see on your resume?

  • College

  • Projects

    Yes, before applying for an internship make sure that you have some good quality projects to mention in your resume. Upload your code on Github, make it open source and add links to code in your resume. If you're searching for project ideas, I have a list of more than 500 projects.

  • Open Source Contributions

    Search for good projects to contribute on Github improve documentation and fix bugs and do some enhancements. Companies really love it! If you don't have a good GPA then projects and open source contributions really add value to your resume.

  • Past internships (If any)

    Before applying to top companies in US or India, you should do at least one internship in any startup. Startup internships are really a great place to learn a lot of things in a very short time. Don't think of stipend, if you really love their idea just mail and ask them about internship positions. There are many websites available for startup internships list of websites can be found at the bottom of the post.

  • Leadership Qualities

    Volunteer in a non profit organization and be a part of college committees.

  • Programming Skills

  • GPA (rare)

Things you need to do while applying

Ok, now you have some good quality projects, you know basics of CS fundamentals and you have a good knowledge of data structure and algorithms. This is time to write a good resume!

Your resume should have following sections.

  1. Education

    Degree and stream, College Name, Current year and graduation year. Don't include your GPA if it's less than 7/10.

  2. Skills

    Be honest here and mention languages and framework only if you really know. Once you get shortlisted for the interviews, recruiter may ask any questions on that and you'll be messed up badly.

  3. Technical Experience (If you have any)

    Write sentences in past tense. Use words like 'created', 'implemented', 'designed', 'fixed'. Implemented X using Y or Implemented X using Y to fix Z. Where X = any new feature, Y = language or framework and Z = issue.

  4. Projects

    Same points apply to project as well. Don't forget to add links of code or websites if you have any.

  5. Open Source Contributions (If you have any)

    Mention what projects you have contributed to, what your contribution was and provide links to your commits so that recruiters can easily verify your contributions and have a look at your code.

  6. Leadership Experience

    Add your volunteering or committee work in this section.

  7. Extra-Curricular

    All your competitive programming rankings, awards and hackathon related stuff goes here.

  8. Work Authorization

    You'll be applying to US based companies so don't forget to add this line.

I haven't updated my resume since last two month but have a look at it once. Ignore objective section it's just a waste of space.

Once you created your resume, proofread it 2-3 times. Ask your friends and employees to go through your resume and finally post your resume here. This subreddit is awesome and people are very helpful. It'll be brutal but they'll critique your resume brilliantly.


Now you have a very good resume and you know all basics of CS. The time has come to apply for best of the best internships!

This is the right time!

Yes! This is december 2016 and Internship process for Summer 2017 has just started. I have already created a sheet for you! Open this sheet and make a copy for yourself. Edit companies as per your preferences.

Apply everywhere! Don't think that you don't have a perfect resume, just visit their career website or LinkedIn internship posts and fill the form. I applied to more than 20 companies this year.

Once you get shortlisted for the interviews search everywhere about past internship interview process, questions on Glassdoor, Geeksforgeeks and reddit. When I got shortlisted for the internship at Slack, I searched everywhere about interview process and questions asked. I couldn't find any except a post on reddit. If you don't find anything and just goto this sub and post questions or search for past interns on LinkedIn add them in your profile and message them directly. Three out of ten people will give you perfect reply and this is enough for you!

Some tips from my side:

  • Read emails properly and search for keywords.
  • Be prepared for technical questions which don't require programming knowledge.
  • Be polite while responding to emails. (Search how to send emails to recruiters :p)
  • Before interviews read the email properly and make a list of all the questions that can be asked.
  • Make a list of all the behavioral questions and their answers.

I have collected some interview experiences of top companies from different resources. I hope you find this useful.

Resources

Intern Supply

For startup internships

Algorithms and Data Structure

Networking

Operating System

Web Stuff

Interview preparation

Other

  • Awesome (This contains everything you need!)

Last thing:

Keep talking and asking to people who have more knowledge than you, networking is really important.

Disclaimer: I am not a recruiter or a brilliant coder who works in your dream company. I am a student just like you and I have spent last two months searching for the internship blogs, articles and interview experiences. I applied to more than twenty companies for summer internship and interviewed with some top companies and I'd be interning at Slack this summer. Read and follow things mentioned in this post at your own risk!

right?

Run..Run fast!!