General advice about internships and industry jobs from our alumni

Below is general advice from some of our illustrious alumni regarding internships. Names have been removed and advice has been anonymized and combined.

First of all, why do an internship? Even if a student wants to stay in academia, the skills one gains during a short stint in industry are only going to help that person succeed in statistics departments as a young academic. Every year, more data science and applied statistics courses are being added to curricula, so it would help to know how datasets are analyzed in the private sector. Furthermore, collaborating on projects requires familiarity with increasingly complex datasets, and writing grants gets much easier when you actually understand the data. Doing an internship has a steep learning curve on these and other topics, so you’re forced to pick up a lot of valuable skills in a short period of time.

One gap between the typical STOR grad student and the successful student is professionalism. Professionalism shows through when a student researches companies they are interested in, figures out what connections they may have at these companies, and reaches out to these people. It’s disappointing and looks bad when a student applies to a job, is interviewed by someone who likes UNC (or even went there), and the student has no idea of who is talking to them or what the company does. The most successful students take this into account and prepare so they’ll be ready when they get to the interview. These are soft skills but things that students should recognize as another skill to pick up during grad school.

A successful candidate would need to be comfortable programming in python and R (“proficiency in python is probably good enough, but only working with R is definitely not”) and would need to have at least some exposure to the basic CS 101 topics of algorithms and data structures. It’s recommended that those who do not meet these criteria take a coursera class (or UNC CS department undergrad class, though that might be more of a commitment than necessary) on algorithms and data structures. The goal is to be comfortable with whiteboard coding questions like the ‘easy’ and some of the ‘medium’ marked questions on leetcode.

Many interviews are similar, and many companies look for “a programmer first then a statistician.” The questions are typically:

  • Stat/Probability (nothing too fancy, but a bit tricky. Think advanced undergrad or 1st year of grad school)
  • Coding (at the level of an undergrad intro programing course)
  • Algorithms (at an undergrad level, e.g. what’s the complexity of algo A? Can you design a better version?)
  • How would you implement this ML algorithm? (not as common, but does happen

Another thing that may not be tested immediately in interviews but is really helpful is “computer systems,” which covers CPU, memory, compilers,  and various other topics. This is almost like like the Calculus 101 for computer science, the fundamentals to understanding the concepts that all engineers are using.

It’s also important to sell yourself the right way to these companies. While you may find your research topics exciting, many companies are looking to fill a role and want to ensure you can provide the skills they need.  In practice, this means a comfort with data as well as the ability to discuss work you’ve done in an accessible way, and explain how your projects can translate into a business setting. An easy way to demonstrate your aptitude is to work on data science projects and post them on your Github. You can also make your own website, or get projects from Kaggle.

Communication skills are an underrated bottleneck, though. It’s crucial to not just speak English, but also being able to speak coherently and clearly, especially to a non-technical audience. Many data scientists spend a lot (if not most) of their time helping the rest of the company experiment rigorously. Companies expect everyone to be able to work with other teams seamlessly, and that means statisticians often have to speak with salespeople or customers who haven’t even taken intro stats.  Many PhDs simply aren’t prepared in this regard. PhDs can really help themselves by taking their teaching duties seriously and viewing them as not just a “thing that need to be done so I can have money” but as an opportunity to develop a skill which otherwise wouldn’t get developed in other aspects of their grad school experience. It’s the perfect time and place to help round that out so that they can succeed in any role, not just a sitting-heads-down-at-the-computer-all-day-working-by-yourself type role.

Another way to practice some of these ideas is by going to meetups. It’s astounding how many jobs are found through networking, so just showing up is a step in the right direction. You’ll get to mingle with people who are already doing the jobs you want, so they can give you great advice about ways to improve your chances of getting noticed by recruiters. The simplest thing a grad student can do on this front is to polish up their Linkedin profile, as that is how the world can find you.

 

Resources to prepare for interviews

Problem Solving with Algorithms and Data Structures using Python

leetcode

Resource for programming interview questions

Especially for data science roles

Glassdoor also has very vivid examples from interviews

Here’s another good resource in general

Instead of just reading and working through these questions on your own, it’s recommended that you find a buddy to work with so you can interview each other. There are a few benefits to this process.

  • First, you will better simulate the interview process, where you will have to speak and interact with another person, who is not only judging your knowledge, but also whether they want to work with you.
  • Second, your buddy can give you feedback about where you can do better in the interviews. We might solve problems in idiosyncratic ways, but if we can’t explain our methods or results to others, our answers won’t be worth much. Your buddy can give you tips and tell you some areas you can work on.
  • Third, having a buddy means you may prepare more, as you’ll feel obligated to also help your buddy. Accountability helps, and teaches you about teamwork, which will help you on the job.
  • Fourth, by giving an interview, you realize that an interviewer is often trying to subtly push you in the right direction and give you hints, as it’s not just about whether you get the answer right, but they want to see how you think, how you communicate, and how you respond to uncertainty or difficult probing. They also may just want to see that you’ve prepared, as that is a valuable trait on its own. By knowing how the questions work, you can more easily see the difference between an interview setting, where things have to end in 30 minutes or 1 hour,  as opposed a research setting, where answers often beget deeper questions.

 

Gain employable skills

Most job postings list the skills they want to see. These may be sentences like “Experience using technology to work with datasets such as Scripting, Python, statistical software (R, SAS or similar).” Some of these you will have learned in class, however, some will be new to you. If you know what kind of jobs you want, you can search for these job postings and see what skills keep coming up over and over again. Once you find some valuable skills you’re missing, do some searching! Find resources that you can read or watch online, or see if there’s a coursera course or coding intro about it, a book or class available at UNC. Ask a friend if they know anything about that topic. Whatever you do, though, make sure you don’t just read. Find a small project to implement using this new school. That forces you to actually roll up your sleeves and figure out how the thing works. In addition to boosting your resume and employability, this new skill might actually make a lot of your existing problem solving processes simpler.

Write a resume

Career services has a good page with resources for writing a resume. Use this as a guideline, then go talk to career services to get it reviewed. You can also ask students who have previously had jobs and internships for advice on resume writing.

 

Apply for internships/jobs

The first thing is to find out what you want to do. There are different options for those with technical skills, but not all may satisfy what you want from a job. It’s worthwhile to carefully read a few different job postings and descriptions and think about how you’d like to spend your time. Once there, you should read about different companies and why you might want to work at each one. Just like schools, these companies are not interchangeable. Spend time doing your research and understanding what their goals are, and what their actual business is. If you’re a pacifist, you may not feel happy working for a military contractor. Once you have a sense of the companies and roles you want, find a few job postings and really think about what they want in a candidate. If you have contacts within those companies, you can reach out to them for help (referrals are extremely helpful). Depending on the role, you may want to emphasize different aspects of your accomplishments. If you think it would help to tailor your resume and cover letter to each specific role, then you should do that. It will help you prepare for interviews anyway.  Keep in mind that for most companies, you are nowhere near their first priority, so don’t expect to get a response within a few days. They will get back to you on their timeline, but you can keep building skills and applying to other roles. This is a continuous process.

Print Friendly, PDF & Email