How to be a great intern?

Tips and suggestions to make the most of an internship in tech.

I’ve worked with many talented interns at throughtout my career and I wanted to share some general suggestions that might help you to improve your internship. Note: My experience is with research internships where the final outcome could be a paper submission.


Expectations

The first key aspect to understand are the expectations of your internship (both for you and your supervisor). An internship is not like a mini Ph.D. and it is not like a final project in a CS course.

I’ve seen internships where the supervisor has clearly delineated a project with a problem and possible solutions, then your work it’s probably going to be following your supervisor’s ideas. On the other hand, it could be a very open-ended internship where you are given the freedom to work on whatever you like. Which one is better? Depends on you and your goals. If you get an internship after 3 years on Ph.D. you probably have a good idea of how to do research and areas of interest. However, for a more junior intern, having more concrete steps and ideas would be more beneficial.

My suggestion is to understand the expectations of your internship and talk with your supervisor on what style/approach you are going to use on the project. Setting clear expectations from the beginning could help you to plan and have a better experience in your internship.

Duration

A second highly important aspect that you need to understand is that internships are very short, 4-6 months are usually not enough to:

  1. Understand a new topic/problem
  2. Propose a solution
  3. Implement it
  4. Run experiments
  5. Write a paper

Usually, your supervisor needs to drive and define the first two tasks (your supervisor will also help you with the paper). In contrast, you will be the main driver of the implementation and experimental evaluation (this means that your supervisor won’t be checking your code).

Documentation

Another key element to understand is that supervisors usually have other projects as their main responsibility and doing context switching is tiring and difficult. You as an intern can help your supervisor by keeping a structured documentation of the research/experiments/ideas that you have performed (I’ve seen people use Google docs and markdown editors, like hackMD.io). You don’t want to spend too much time on the document but it needs to have a logical structure that makes it easier to find something. A simple approach is to sort chronologically (most recent ideas/experiments at the beginning), this would also be helpful later if you need to write a report of your internship.

Communication

Documentation will be a starting point to have conversations and hopefully fruitful discussions. But, for this to happen you’ll need to develop good communication with your supervisor and/or peers. Unfortunately, this will not happen on the first day. You haven’t worked together and you don’t know how to communicate efficiently, probably it will take some time for you to adjust and improve that. My suggestion is to build a relationship with your peers/supervisors. How to do it? well… try to not always talk about your project or work, spend some time chitchatting. I believe it should really be the supervisor’s work to make the effort and build a relationship but supervisors are far from perfect and they might not know how to do it, so, you can try leading this part.

Quality of Feedback

A last suggestion is trying to maximize the quality of the feedback you get in your meetings. As I mentioned, your supervisor might not be checking every day on you, so use your time efficiently. If you have followed the suggestion above about keeping good documentation, you can share it with your supervisor before the meeting, they can take a look if they have time and they will already have a context to start with during the meeting. You can also be prepared for the meeting with a list of questions/ideas/experiments that you want to discuss further.

Conclusions

In my opinion internships have a lot of randomness involved and usually are a hit or miss situation. I think that if you applied and got an internship position you will have amazing expectations of proposing a new algorithm, submitting a new a paper and possibly getting an offer of a job after the internship… that’s a good attitude, but you also need to accept that internships sometimes don’t work out and that is also fine. I usually tell interns that the goal that I have for the internship is that:

  • They should have learned something new: in a technical way, for example by reading and discussing a couple of papers, and at least implementing/testing one in more depth.
  • They should have improved a few soft skills: at the end of the internship you should have given a couple of presentations, prepared a report (or paper) and you had to interact and exchange ideas with other peers. These skills are valuable no matter which company or job, so practice and keep improving.

If we also get a paper submission that’s extra.

A last piece of advice is that internships are a good way to get a tiny look into a company but don’t be fooled to think that you will understand every aspect of it. Enjoy your internship and try to learn as much as possible.