Internships are essential for gaining practical experience in the field you are studying. There are two main types of internships:
- Academic Internship
- Industrial internship
Academic internships are ideal for students who are interested in pursuing further studies or research. These internships provide the opportunity to work on research projects, which allows students to apply their academic knowledge to real-world problems and specialize in a particular topic. For example, a computer science student could specialize in databases by working in a research lab that specializes in database development. Similarly, a student interested in machine learning or artificial intelligence could work in a research lab that specializes in AI research.
Academic internships can help students specialize in a particular research area and can also help them decide on future research directions if they are pursuing higher education. Additionally, academic internships provide exposure to the latest state-of-the-art techniques in a particular research area. In some cases, students may even have the opportunity to co-author research publications, which can further improve their chances of being accepted into higher education programs.
In addition to providing valuable research experience, academic internships can also help students develop important skills such as:
- Critical thinking
- Time management
If you are interested in pursuing a career in research, an academic internship is a great way to gain the experience and skills you need to succeed.
Industrial internships are vastly different from academic internships. In an industrial internship, you will work in a company on a specific project with a team. These projects typically involve developing software or hardware to solve real-world problems. You will be assigned to a single module to develop and will have the opportunity to receive guidance from senior team members in solving problems.
Most internships involve the intern learning about the problem and making a small contribution to the project. This internship period helps you gain an understanding of the basics of how industry works and can also lead to a full-time job offer from the company if you perform well. In fact, most companies hire interns with the intention of converting them to full-time employees.
By making the most of your internship, you can demonstrate that you are a quick learner who can work effectively in a team and are adaptable enough to be involved in a variety of projects. Reaching out to senior members of the team when you need help can help you learn more and improve your practical experience.
In addition to providing valuable practical experience, industrial internships can also help you develop important skills such as:
- Time management
- Project management
These skills are essential for success in any industry, and they can make you more competitive in the job market.
If you are interested in pursuing a career in industry, an industrial internship is a great way to gain the experience and skills you need to succeed.
Academic internship: If you are planning to pursue an MS or PhD, it is very important to do an academic internship and publish some research papers.
Industrial internship: If you have no intention of pursuing a PhD and want to get a job right after graduation, this is the best option.
Prior to applying for internships, it is crucial to develop a strong profile. Demonstrating relevant prior experience can significantly enhance your application. As a student, you can gain valuable experience by working on smaller projects under the guidance of a university professor or independently. Make the outputs of these projects publicly accessible.
For example, if you have completed a project that involved coding, upload the code to your GitHub profile. Ensure that the code is readable, clean, and follows coding best practices. If you have conducted research and produced a report, upload the report to ResearchGate or arXiv.
Creating accounts on GitHub, ResearchGate, and/or arXiv will allow you to maintain your project code and research reports. This will make it easy for you to share them with prospective professors or companies.
By taking these steps, you can build a strong profile that will make you a more competitive applicant for internships.
- Sign up for https://linkedin.com and create your professional profile.
- Sign up for https://github.com to maintain your project code, which you can later share with prospective professors or companies.
- Sign up for https://www.researchgate.net/ or arxiv.com and upload your research report or technical report to share with prospective professors or companies.
- If you are a design student, share your designs using https://figma.com.
As an engineering or science student, you can always learn to code and build smaller projects that involve solving a particular problem using a computer. For example, you could write your own note-taking software, image organization software, or any other type of software that addresses a specific need. Once you have completed a project, upload the code to your GitHub profile. This will demonstrate your coding skills and problem-solving abilities to prospective employers.
Your CV/resume should be clean, professional, and free of grammatical errors. Consider using a tool like Overleaf to create a visually appealing and well-formatted CV.
Your CV should only contain authentic information. Do not include personal information such as your KYC details or full address. However, you should include your mobile number.
Tips for creating a strong CV
- Tailor your CV to each specific internship you are applying for.
- Highlight your most relevant skills and experience.
- Use keywords that are likely to be used by applicant tracking systems (ATS).
- Be specific about your accomplishments.
- Use strong action verbs.
- Proofread carefully for any errors in grammar or spelling.
By following these tips, you can create a strong CV that will make you a more competitive applicant for internships.
The best way to apply for an academic internship is through email. First, you should identify the research area that interests you the most. After completing one or two years of academic study, you should have a good understanding of your interests. If you are not sure, you can identify a few research areas, then read about the types of work that researchers are doing in those areas. This will help you choose one that aligns with your interests.
For example, if you are an engineering student, you might consider the following research areas:
- Artificial intelligence (AI) research
- Distributed computing
- Computer networks
- Database design
- Computer vision and image processing
First, read about each of these areas and the types of work that researchers are doing in them. Then, learn about the state of the art in each area. Finally, choose the area that aligns with your interests.
After choosing the research area, decide on the country in which you want to apply for an internship (e.g., India, the US, the UK, Europe, etc.). Then, for the country of interest, go through the websites of top universities in that country. For example, in India, visit the websites of the IITs, IISc, IIITs, NITs, etc., and search for research labs that do research in your area of interest.
You can browse through departments or do specialized Google searches like “IIT Bombay: AI Research labs,” etc. This way, you will get the websites of the research labs doing AI research. After that, using the website, you can get the list of professors associated with the lab. Select one professor to contact. Do not contact more than one professor of a particular lab at the same time. If the first professor does not reply, contact another professor after 2/3 weeks.
Writing an email with your research interest is very important. You should properly format the email to include the following sections:
- About yourself: Introduce yourself and provide information about your academic background. For example, you could say, “I am a [year] undergraduate student pursuing a BTech in Computer Science at [college name].”
- Purpose of writing: State the purpose of your email. For example, you could say, “I am writing to express my interest in an internship opportunity at your esteemed research lab.”
- Expertise: Explain why you are a good fit for the internship. Highlight any relevant coursework, projects, or publications. For example, you could say, “I have taken courses in [relevant courses] and have completed a project on [relevant project].”
- Attachments: Attach your CV and any other relevant materials. For example, you could attach links to your GitHub page or online portfolio.
- Conclusion: Briefly reiterate your interest in the internship and express your gratitude for the opportunity to be considered. For example, you could say, “I would be grateful for the opportunity to work under your guidance. Thank you for your time and consideration.”
Here is an example of a well-formatted email expressing interest in a research internship:
Dear Dr. [Professor’s name],
I am writing to express my interest in an internship opportunity at your esteemed research lab. I am a [year] undergraduate student pursuing a BTech in Computer Science at [college name].
I have been following your research on [topic] for some time now and find it to be both fascinating and relevant to my own interests. I have particularly enjoyed your work on [specific publication or project].
I have taken courses in [relevant courses] and have completed a project on [relevant project]. In my project, I [briefly describe project]. I am also a contributor to the [open source project name] project on GitHub.
I am a hard worker and I am confident that I can make a positive contribution to your lab. I am eager to learn more about your research and to gain experience in the field of [research area].
I have attached my CV for your reference. I would be happy to answer any questions you may have about my qualifications.
Thank you for your time and consideration. I look forward to hearing from you soon.
Sincerely, [Your name]
Attach your recent CV to the email.
Keep the email to the point and do not deviate from the topic. Be concise, as people tend to ignore long emails.
If you do not receive any reply for one week, feel free to send a reminder email with the title “RE: [Your title].” Do not send more than two reminders.
Contact a few labs from different universities to maximize your potential to land an internship.
Also, You can also choose to intern under your university professor.
The best way to apply for an industrial internship is through your own university campus placement route. Most universities invite companies for internships, who visit university campuses and recruit interns. This is available to students in their third or fourth years of study.
For off-campus internships, you can use the same research and contact methods used for academic internships, with minor variations. For industrial internships, there are many internship portals available. You can create accounts on these portals, upload your CV, and start applying to relevant roles.
You should also create a professional profile on LinkedIn. Update your details and connect with professionals. You can also apply for internships through LinkedIn. Connect with professionals from various companies and directly send them a message stating your interests and expertise. You can browse through various internship openings and send your application. The best way is to contact individuals from various companies and state your interests.
To land an industrial internship easily, one must maintain a good LinkedIn profile, GitHub profile, etc. Since most of these internships involve coding, you must prepare and learn coding beforehand. Upload sample projects to your GitHub profile and share them with prospective persons seeking interns.
Learning coding is very important, as most IT/software companies expect you to code during internships. Not knowing how to code will not land you an internship.
Having a very good GitHub profile can help you significantly. You can improve your GitHub profile by uploading solutions to problems, uploading hobby projects code, and most importantly, contributing to open source projects.
You can contribute to open-source projects by fixing bugs, enhancing documentation, adding new features, etc.
How to find open source projects:
The best way to find open source projects is to focus on your area of interest. For example, if you want to work in AI companies or on AI-related projects, you can research the most used AI libraries. Then, go through their source code and documentation to see how you can contribute.
For example, you could browse through the Langchain code and documentation to see if you can add a new feature or improve the documentation. You could also browse through the Pandas library code to see how you can improve it.
If you are interested in distributed computing, you could look at the Ray Project code or the Colossal AI code to see how you can contribute.
The list of open source projects is endless. By focusing on your area of interest, you can find projects that are a good fit for your skills and interests.
Here are some additional tips for finding open source projects:
- Look for projects that are actively maintained. This means that the project has recent commits and that the developers are responsive to issues and pull requests.
- Choose projects that are well-documented. This will make it easier for you to understand the code and contribute to the project.
- Start with small contributions. This will help you get familiar with the project’s codebase and development process.
- Don’t be afraid to ask for help. If you get stuck, don’t be afraid to ask the project’s developers for help. They are usually happy to help new contributors.
By following these tips, you can find open-source projects that are a good fit for you and make valuable contributions to the open source community.
Being curious is the way to explore and learn.
Some well-known AI projects
Well-known database projects
- GitHub - redis/redis: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.
- GitHub - apache/cassandra: Mirror of Apache Cassandra
- PostgreSQL · GitHub
- GitHub - mongodb/mongo: The MongoDB Database