“You Need To Be The Captain Of Your Own Ship”

Nybles News
Nybles
Published in
6 min readFeb 20, 2018

Jessica Su as interviewed by Faheem Zunjani

Jessica Su is a Computer Science PhD at Stanford University. She did her BS in Computer Science from California Institute of Technology. She was the instructor for CS 161: Design and Analysis of Algorithms course(Summer, 2016) at Stanford. She has also written numerous papers on Social Networks and Online Privacy. She has been a research intern at Twitter, Microsoft and is currently a Software Engineering Intern at Facebook. She has been a Top Writer on Quora for 5 years straight and has 64.9k followers.

Faheem Zunjani(FZ): You’ve been a Teaching Assistant for the Algorithms course at Stanford. For most of the students here, the Algorithms course is one of the most difficult courses. Where do you think the students usually go wrong while studying Algorithms?

Jessica Su(JS): ​It is pretty easy to predict who will do well in an algorithms class, and who will do poorly. People who enter with a strong math background generally do well, and people who don’t tend to do poorly.

So I think the biggest mistake people make is not paying attention in the prerequisite classes, particularly discrete math, or having discrete math be their only exposure to proof-based math. I would recommend taking as much proof-based math as possible before tackling algorithms. If you do well in a real analysis or abstract algebra course, you are probably more than ready.

Note that it is very possible to be bad at proving theorems, but awesome at programming interviews, or vice versa. Performance in a proof-based algorithms class is not very predictive of how well people do at interviews or in software engineering.

FZ: When given a new problem, how do you suggest a student approach the problem algorithmically?

JS: ​After seeing the concepts enough times, you start to develop a muscle memory. You start looking at problems and immediately thinking “I can solve this with breadth-first search.” To get to that point, you have to solve a lot of algorithms problems and see a lot of examples.

A good algorithm for problem sets is

for each concept you have learned that week:

if concept applies to problem:

solve problem

else:

go to office hours

FZ: What are your suggestions for an Algorithms student to improve their learning experience? How can the students get the maximum out of an Algorithms class?

JS: ​Start your problem sets as soon as they come out. This will boost your morale and motivation, since you will be ahead of the rest of the class.

Try to solve the problems independently before asking for help. I recommend struggling with a problem for at least two hours before going to office hours about it or asking your friends. Avoid going to office hours unless you are really stuck, since more often than not you will hear a lot of spoilers and be deprived of the chance to solve the problem independently.

(The right time to ask for help is after you have finished everything you can. Then, if your school allows you to, you can compare answers with a friend and converge on the correct solution.)

Solve the problems with pen and paper, preferably in a place with no internet access, and don’t incorporate a computer or a smartphone until it comes time to write up your solutions. (This will help you avoid being distracted on the internet.) However, if your class requires you to write pseudocode, actually implementing your solution in Python (or your programming language of choice) will help you avoid bugs, and put you in the top 5% of the class.

If at all possible, go to class, and read the textbook and lecture notes before starting on the problem set. Ideally you start reading the textbook over break, a couple weeks before school starts. Then you will always be ahead of the reading, at least for the first few weeks of class.

FZ: What do you think students normally fail to realize while they are still studying in university?

JS: ​I think a lot of students are not used to being the captain of their own ship, and have a reactive, rather than a proactive, mindset. They do things because they feel like they have to, and it takes them a while to realize that they are the one in charge, and they can do whatever they want to do. A lot of them spend their time running away from bad options rather than running towards good options.

That might have just been me, though.

FZ: What propelled you towards research? What would be your suggestions for a student looking to explore research opportunities at an undergraduate level?

JS: ​My parents are both professors, and they encouraged me to do research in high school. My high school project was very successful, so it became easier and easier to get other research gigs. Eventually I had enough research experience to apply to Stanford and get in.

One good lifehack is to do research over the summer. If you do research during the school year, it will usually take a backseat to coursework, and your performance will not be impressive. Professors will compare your performance during the school year to other students who gave up their summer to work with them, and the summer students will usually come out ahead.

FZ: Could you share with us an interesting experience you’ve had with a particular research that you did? What interesting results did you find?

JS: ​When I was at Twitter, I worked on the Who To Follow team, and we published a paper called “The Effect of Recommendations on Network Structure.” Basically, we looked at the state of the Twitter network right before Who To Follow was launched, and compared it to right after Who To Follow was launched, and tried to figure out what happened in between.

It turns out everyone got slightly more popular, but especially the people who were popular to begin with.

FZ: What are you working on these days? You are a Software Engineering Intern at Facebook right now. Can you tell us a bit about the work that you’re doing there?

JS: ​I train machine learning models to help connect people with businesses they might be interested in. It’s part of Facebook’s mission to make the world more open and connected.

This internship has been a very valuable experience for me, and I have relished the chance to deliver impact to billions of Facebook users.

FZ: How would you contrast experiences in academia (Stanford) and industry (Facebook) (work culture, lifestyle, etc.)?

JS: ​In academia you are the main person propelling yourself forward. You are the one who cares most about your project, and much of your job is getting other people to care about your project too.

In industry other people have a stake in your work, so they will help you and give you more resources. They will take time out of their day to review your code and explain things to you. But you still have a huge advantage if you are the kind of person who propels yourself forward.

Either way, you need to be the captain of your own ship. But in industry, there are likely to be more people on your boat.

FZ: According to you, how will the Social Media as we know it, change in the near future? What is something that you find missing in the current social networking websites?

JS: ​I honestly think the current social networking websites are fine, and I don’t see why people keep moving to new ones. I think they should all stay on Facebook, because that’s where everyone is, and the best part of a social network is the people.

FZ: What are some of the latest technologies that interest you? How do you think they are going to impact the daily life of normal people in the future?

JS: ​I’m very excited about the Amazon Go store, the one where you can just walk out without paying, and Amazon automatically computes how much you owe. Too bad it’s not open to the public yet.

I think it will make shopping more efficient for everyone, but kill a lot of jobs.

FZ: If you had to choose one latest technology/technological advancement that you would like to work on, what would it be and why?

JS: ​I honestly don’t have an opinion on this (this isn’t how I choose jobs).

FZ: Since most of the students reading this interview are CS/IT undergraduates, is there something you want to share with them? Any advice or suggestions in general?

JS: ​The most powerful thing you can earn is your trust — trust that you can solve any problem life throws your way. The way to earn trust is by solving problems. The way to lose it is by giving up on things.

So don’t be a pu.. coward. Get out there and change the world.

--

--