This post will cover some basic pointers and tips in maximizing your internship period.
I have had 3 technical internships.
- TIF Labs (1 month) - Web dev work using AngularJS, and some Python.
- Microsoft (2 months) - Deep learning project with Python, React as front end. All built on the Azure tech stack.
- Hevo Data (5 months) - Data platform built on Java, on which I work.
So over the course of these internships, I have developed an idea on how best to learn during an internship and will share some common tips based on them.
Asking questions is an important part of learning, but there is an optimal way to do it. When you first join the internship, it’s recommended to ask questions to setup your system and get yourself acclimated to the environment. If you have a question about the codebase or something about the company then you can ask your manager or any employee since this information would only be available to them but if you have a technical question or if you are stuck at something, I would highly recommend you first research the problem thoroughly and spend some time googling. After this research combine this information and construct alternative solutions with pros and cons and only then go to your manager or any employee and ask. The reason you should do it this way is two-fold:
- Employees are very busy people with a lot of work, and you shouldn’t make them do your research for you.
- This teaches you how to be independent, and teaches you how to google effectively.
Who to ask?
There might be employees who have recently graduated, who might have come across the same problem as you. Try asking them. If that doesn’t work try asking any employee or your manager.
It is very important to be proactive and engage in software dev activities with the team. E.g, do a code review even if it is not a part of your responsibilities, If a bug comes across, look into why it happened, and try to suggest a solution or even better, try to solve it after asking for permission.
Try to treat yourself as a full-time employee
Hold yourself to the same standards as a full-time employee, whether it’s the code quality, or the ideas or the work. This shows your ability to actually work as a full-time employee and increases your chances of getting your internship converted. Set some high goals and try to be a full contributing member of the team, rather than just an intern.
Invest time to learn things
The tech stack or codebase might be complex and beyond you, when you first start at the company. Spend some time outside your work and read about code quality(Clean Code by Bob Martin is a good resource for this) or find ways to make yourself more productive by learning the shortcuts of your IDE, etc.
Try to learn new things
The chance to work on a tech stack of a company doesn’t come often, try to learn new things. Maybe take a look at the DevOps work or maybe the tech another team is dealing with.
A company is filled with many different employees from many different backgrounds, who can teach you new things (technical and non-technical). Try to sit with different people during lunch time and engage in conversation. But make sure you don’t interact when they are busy or working. Maybe ask your mentor to introduce you to people in other teams.
Ask for feedback
Throughout your internship, ask for feedback from your mentors and colleagues. This feedback is very valuable and once you ask for it, make sure you act on it.