This summer, I volunteered to be a mentor for a data science intern. It reminds me of my own internship 2 years ago, when I learned so much from my mentor (see my previous posts). Being a mentor not only allows me to view a summer internship from the other side of the table, but also presents new challenges and learning opportunities for myself. In this post, I will share some tips for first-time mentors from my experience as a first-time mentor.
Provide a big picture and context
Given the limited time for an internship (10 weeks), most intern projects tend to be very specific, such as implementing a new feature, refactoring one part of a complex pipeline, or evaluating new algorithms. While it is important to stay focused, it is equally essential to present a big picture and context for the interns: what is our industry? Who are our clients and competitors? How do we make money as a company and how do we sell our product? What is the motivation of this project? How does this project fit in the current work? How will it affect other parts of the pipeline? How will it impact the company’s business? What is the next step after this project is completed? What are some limitations, caveats, and risks of this project, such as run time, cost, and regulation?
These questions and topics provide a high-level overview of the project, and help interns get started with the whole picture in mind. To accomplish this, it is helpful to give a 101 introduction during intern on-boarding, and as the internship progresses, discuss some of these topics as they emerge.
Define scope and priority
It is very common for interns to propose exciting new directions to explore and investigate during internship. Indeed, it is actually preferable as it shows initiative and creativity. As much as I would like to encourage interns to keep exploring their ideas, it is necessary to define a boundary and set priority to make sure the project stays on track. For example, when my intern proposed to experiment with different feature engineering approaches, we would meet and discuss the next step together. We would review how different feature engineering approaches would affect our end goal and how to better allocate time to this new direction. I suggested to my intern to get some rough and quick evaluation of different feature engineering approaches in order to have a general idea of their performance, but not to spend too much time (no more than 2 days) on this part. We would revisit this direction after we reached our final target. It is always better to reach the target as soon as possible and then iterate to improve the target, than to optimize individual steps prematurely.
Discuss milestones and clarify expectations
Before the internship started, all mentors and recruiters worked together to discuss potential projects for the interns. We made sure the intern projects were not some side “exploratory” assignment that no one in the company cared about. Our goal was that interns could experience real R&D environment, create their own JIRA ticket, participate in daily stand-ups, work on the same Github code repos as the team (which means frequent git push, git merge, git rebase, resolve merge conflict, as well as rounds of code review), and keep good documentations.
Two interns worked on data science projects to improve the machine learning pipeline we are currently running: the data scientist intern whom I mentored focused on model evaluation, and the engineer intern whom I worked closely with focused on the framework implementation. While their projects were different in scope and end goals, I realize it is critical to set clear milestones for both. The whole internship lasted 10 weeks, so the engineer mentor and I collaborated and defined distinct phases for each project, and identified milestones for each phase. We also defined stretched goals in case interns completed the plans ahead of schedule.
During the internship, we frequently met up with interns, discussed their progress and obstacles. We encouraged interns to give feedback on how they felt about the workload, progress, and the project itself.
Connect interns to the rest of the company
Interns spend most of their time on their mentors’ team, focusing on very technical and specific projects. In the meantime, in an open office space, especially when a company makes an effort to highlight summer internship, most coworkers are aware interns are around the office.
I would like to create opportunities for interns to get more exposure to the rest of the company and other teams. For example, invite them to play Ping-Pong with coworkers, ask them to join group lunch in the dining room, and of course, encourage them to present their work at group meetings whenever possible, and guide them to speak directly with other engineers to solve their specific problems. I hope by doing this, interns develop a strong sense of ownership of their project, and my role as a mentor is merely to direct them to relevant resources and keep them on track.
Expect/Respect that every intern is different
We have a diverse cohort of interns this year, from different educational background, specialities, interests, and personalities. When communicating with different interns, I find it helps me to better understand them when I encourage them to talk. In the first few meetings, I asked their background, research interests, and their expectations, and after I introduced the project, I asked them to think about how they wanted to proceed and then we discussed a plan together. Although I already made a plan for the project, I find it more interesting for interns if they also played a role in designing their own plan. If the intern needs more hands-on guidance, I would be more specific in the plan; if they are very initiative and independent, I would only jump in when I see the project is going off track.
Of course, there is miscommunication sometimes and mistakes are inevitable. This is when patience becomes critical. Each intern has passed the challenges in job interview and is capable of completing their tasks. If they seem to have some difficulty, I would listen to what they think and help them overcome obstacles.
Be hearty in your approbation and lavish in your praise.
… as Dale Carnegie wisely noted. I remember during my own internship, my mentor always said “good job/nice/great” whenever I showed him some results or shared my ideas. I simply assumed that I was really an awesome intern and did not think too much of his compliments. Now thinking back what I have done during my internship was not something extraordinary: my tasks were more or less the everyday task of a full-time data scientist: resolve a merge conflict, create a virtual conda environment and export the configs, write SQL to aggregate data, install a Python library that has layers of dependencies. It is all routine tasks of a full-time data scientist. However, from my perspective as an intern, everything was new, and every new thing presented a challenge.
When I became a mentor, I tried to recall my own internship experience and how happy I was when I was praised by my mentor. Whenever interns show the smallest progress and improvement, I would SINCERELY praise them on their good job and effort; if they fail to achieve a certain goal, I would first find where they did RIGHT and praise them on that, and then help them identify obstacles to move the project along.
Being a mentor is a great learning experience, and I certainly would love to be a mentor again in the future!