Module 3: Skills: Part 1
Many “softer” skills beyond just domain expertise come in handy when doing research. While most mentors articulate and share their expertise in their domains with their students, very few convey these other softer skills. And when starting off, it’s worth appreciating and practicing these skills to help you get the most out of your research experience.
We list out common skills that most advisors and professors will expect of you, like being resourceful and owning your work, managing your time smartly, expressing your ideas cogently, managing coursework, and more.
While on this topic, we strongly recommend the following two pieces of advice:
- “How to do research with a professor as an undergrad”, by Prof. Jason Eisner. He talks through the mechanics of doing your first research project as an undergraduate, which covers many of the points described below. We strongly encourage to read this whole document before getting started with any research project.
- “You and your research”, by Richard Hamming [Youtube video of the same talk]. This is a big-picture perspective on doing research.
Hamming critically examines the role of factors like luck, raw intelligence, a good working environment, productive peers, etc. which people often associate with successful research.
Taking initiative, being resourceful
A distinct quality differentiating a student engaging in research from one who’s only involved in undergraduate courses is their appetite for taking initiative. The execution of your project is wholly your responsibility, and the quality of the outcomes likewise will depend on your sense of ownership you will exhibit.
While it is fine to be spoon-fed a little in the first few weeks, if you find your mentor is constantly telling you exactly what to do at each step, and you constantly just implement your mentor’s ideas, then there’s scope to exercise initiative.
On the other hand, taking initiative does not mean you need to always disregard your mentor’s suggestions and do things your way. Rather, it means to go that extra mile which will contribute to the larger established goal of the project. In your intial stint as a research intern, it is unlikely you will be tasked with identifying a problem to work on–rather, your mentor would have identified a broad problem for you, and that is fine. However, that broad problem will require a lot more fleshing out, and will require a lot more detail to be added–that’s your role, and where you will get to exercise your initiative.
This sense for initiative will likely stem from a strong curiosity and motivation for the topic of your research, which you would have perhaps “felt” initially (see subsection Is research for me).
Read Prof. Steven Shaw’s advice on taking initiative for more details. His advice is contextualized to Ph.D. students, but the same spirit applies to an undergraduate research intern as well.
Why is taking initiative important? What are we achieving?
It is important to question where this need to be resourceful and iniative-driven stems from.
The following letter by Feynman to one of his students, who complained of not being able to work on and solve “grand problems”, lends a few hints.
A career in research will be satisfying if you end up identifying a problem you can solve using the tools and tricks you’ve learned in your domain.
While it takes patience and years to develop those domain-specific skills (tools and tricks) to solve a problem, having a thirst to identify problems which you think you can solve should be something deeply personal to you.
This is where initative, resourcefulness come into the picture.
Suggesting (very) modest tweaks to any experiment setup, or to a problem that someone else may have already solved, is a great way to start off your research journey. To make that happen, you have to constantly be on the lookout for situations where you actually can offer such insights–which takes a good deal of resourcefulness and initiative.
This ability to identify problems, no matter how humble they are, is the concrete skill you stand to gain and train yourself in by being resourceful and initiative-driven in your undergraduate research stints.
This will set you up to ask questions that you are bothered by, and which you can tackle.
This is what will be expected of you in a Ph.D. program or a research-heavy job.
Feynman’s letter to one of his students
Dear Koichi,
I was very happy to hear from you, and that you have such a position in the Research Laboratories.
Unfortunately your letter made me unhappy for you seem to be truly sad. It seems that the influence of your teacher has been to give you a false idea of what are worthwhile problems. The worthwhile problems are the ones you can really solve or help solve, the ones you can really contribute something to. A problem is grand in science if it lies before us unsolved and we see some way for us to make some headway into it. I would advise you to take even simpler, or as you say, humbler, problems until you find some you can really solve easily, no matter how trivial. You will get the pleasure of success, and of helping your fellow man, even if it is only to answer a question in the mind of a colleague less able than you. You must not take away from yourself these pleasures because you have some erroneous idea of what is worthwhile.
You met me at the peak of my career when I seemed to you to be concerned with problems close to the gods. But at the same time I had another Ph.D. Student (Albert Hibbs) whose thesis was on how it is that the winds build up waves blowing over water in the sea. I accepted him as a student because he came to me with the problem he wanted to solve. With you I made a mistake, I gave you the problem instead of letting you find your own; and left you with a wrong idea of what is interesting or pleasant or important to work on (namely those problems you see you may do something about). I am sorry, excuse me. I hope by this letter to correct it a little.
I have worked on innumerable problems that you would call humble, but which I enjoyed and felt very good about because I sometimes could partially succeed. For example, experiments on the coefficient of friction on highly polished surfaces, to try to learn something about how friction worked (failure). Or, how elastic properties of crystals depends on the forces between the atoms in them, or how to make electroplated metal stick to plastic objects (like radio knobs). Or, how neutrons diffuse out of Uranium. Or, the reflection of electromagnetic waves from films coating glass. The development of shock waves in explosions. The design of a neutron counter. Why some elements capture electrons from the L-orbits, but not the K-orbits. General theory of how to fold paper to make a certain type of child’s toy (called flexagons). The energy levels in the light nuclei. The theory of turbulence (I have spent several years on it without success). Plus all the “grander” problems of quantum theory.
No problem is too small or too trivial if we can really do something about it.
You say you are a nameless man. You are not to your wife and to your child. You will not long remain so to your immediate colleagues if you can answer their simple questions when they come into your office. You are not nameless to me. Do not remain nameless to yourself – it is too sad a way to be. Know your place in the world and evaluate yourself fairly, not in terms of your naïve ideals of your own youth, nor in terms of what you erroneously imagine your teacher’s ideals are.
Best of luck and happiness.Sincerely,
Richard P. Feynman =====================================
Managing undergrad courses vs. research
Managing research and courses can be quite challenging. But the reality of doing research is–it takes a lot more time than courses. While courses generally have well defined objectives and are time-bound, research can be fairly ill defined. And that just means you will need more time to grapple with a topic and make progress.
It is often the case that students with absolutely no inclination, and knowing well that they would not consider academia as a possible next step, end up falling in love with research.
Communicating your work
Consider the following situation: you are looking for a carpenter to build you an intricate cabinet. How would you go about finding one? Two common approaches are: ask a trusted friend if they worked with any `good’ carpenters, or evaluate a potential carpenter based on their portfolio of work. Acadedmics looking for research assistants operate in a similar way. They want someone motivated and (partially) skilled to join their team to work on a problem that they (or their grad students) find exciting. They either talk to their colleagues who may recommend a good candidate they worked with, or more commonly, put out an ad on their webpage inviting students to write to them.
Despite its simplicity, a steady stream of such documentation is evidence for your interest and motivation to explore and understand a topic–something your research mentor wants to see at the time of hiring you.
Some examples
These are student blogs documenting everyday learnings. Such webpages are a great way to demonstrate interest in a topic.
- Vallari Agrawal blogs about concepts in programming and software engineering that she finds interesting.
- Gavin Leech, a PhD student in AI at the university of Bristol, writes about topics he finds interesting in psychology.
- Shakul Pathak and his friend blog about math problems that they find interesting, hash out solutions, and discuss them.
- Sayak Paul has documented his extensive contributions to different machine learning platforms.
- Raja Srinivasan’s blog on systems projects spanning a wide variety of topics like computer networks and secure package managers
Pre-requisite: Have a webpage
While a portfolio can manifest itself in different forms–blogs, youtube videos, etc.–it is a good idea to have a webpage to show off your work. Use it as your repository to showcase any academic activity you indulge in.
You don’t necessarily have to buy a domain–start simple with a webpage hosted on Github or its likes, and focus on the content uploaded to the site to begin with.
To add some perspective, every profession in the creative arts space like art, music, animation, writing, etc. heavily rely on evaluating portfolios. This trend will catch up with computer science soon, where even entry-level interviews held in colleges will hopefully be replaced by evidence-based portfolio evaluations.
Here’s a Youtube video of an animator walking through her portfolio, which helped her land a job she wanted to.
Overcoming impostor syndrome and loneliness
Working alone with likely little direct mentorship, and looking to your peers to gauge your own progress, is quite the recipe to induce an existential threat :-)
You will likely have that one peer who would have gotten that opportunity that you perhaps had always dreamt of.
You will then compare yourself with this peer and deem yourself unworthy of even applying to your dream opportunities because “they are so much better than you”.
Even if you did land a good opportunity, you may again compare yourself with how good another team member is in the lab you join, arriving at the same conclusion–that perhaps you don’t belong, and others are just so much better than you.
Unfortunately, this threatens to worsen your sense of isolation and loneliness—you will hesitate to reach out to folks for help because you feel they will likely look down upon you as being unskilled and inadequate.
Worry not - this is a well documented effect known as the impostor syndrome–of feeling like an impostor in a situation where you are not.
Resources like Dealing with social isolation to minimize doctoral attrition – A four stage framework and others describe how you can concretely address such a situation.
But acknowledging the existence of this effect, and knowing that even the “best and the brightest” experience it commonly, is a great start.
Other skills
A bunch of other skills will come in handy as you go through a research-heavy role.
You will likely be expected to know about them or learn these on the go.
We don’t dwell into details here as there exist multiple resources on the web you can learn them from.
The last point which describes reading papers–let it not intimidate you. You have a lot other things to figure out first; don’t worry about it just yet :-)
Linux-like environments: Most CS research is developed and implemented on linux-based environments, since it is easier to package and replicate software. Working in a Linux-like environment, familiarity with the command line (shell prompts), familiarity with command-line based text editors like Vim, emacs (in the event of having to work on remote servers) are all so common that it is expected of all undergraduates.
See the course titled `missing semester of your CS education’, which lists out all those little things which will help you comfortably work in Linux-based environments.
Git, version control: An integral part of any software development project is a tool like Git for version control. Remember the last time you made copies of your file on your harddisk with names like
x.txt
,x_backup_date.txt
,x_back_date1.txt
—Git helps version your changes nicely without you having to make multiple copies of your file.Searching for literature: Reading existing literature, to ensure you understand what the state of the art is and ensuring you’re building off of it, is a crucial and integral part of doing research.
Get familiar with working with websites like arXiv, DBLP, Google scholar, semantic scholar.
It takes some art and skill to find those right keywords which will help you find that one paper which perhaps has done exactly what you’re setting out to do–a useful and important skill to master!
Using latex: LaTex is a formatting and publishing language, similar to HTML. Most academics use this to format their documents–it nicely separates the content from formatting, which a software like MS Word does not offer. Install Tex libraries, or write out a report on Overleaf and get started with your first report.
Graphics software: Illustrating your work with figures, flow-diagrams, diagrams of architectures, is again quite routine in CS research. Learn and expand your expertise in graphics softwares like Inkscape, Adobe Photoshop, or even the more pedestrian GIMP, MS Paint, and MS Powerpoint etc.
Taking notes, use them in your meetings: Make sure that at the end of (or soon after) each meeting with your advisor, you note down what was discussed, and clearly list out deliverables for your next meeting.
During your next meeting, ensure you start with revisiting these notes, and discuss progress on each of the deliverables mentioned in the previous meeting.Store these notes electronically so that your mentor can access them any time as well.
Using a calendar effectively: Learn how to use a calendar to book-keep reminders for yourself. Comes in extremely handy when the number of projects you’re involved in increases.
Reading papers: In the course of your research stint, you will likely read at least one paper.
While you may search for multiple papers when reviewing existing literature, you don’t really have to read all of them with great rigor—you will likely just need to understand the big picture idea being conveyed. Discerning what is important without going through all the details is a skill that you will develop on reading multiple papers.However, there will end up being that one paper which you will want to intimiately understand.
See Prof. S. Keshav’s advice on how to read such papers.
The key idea he conveys is having to understand the paper well enough that you’re able to reconstruct most of the system/proof/idea being described in the paper all by yourself.Don’t worry about this just yet—you will get to hone this skill well with time and as you progress in your research journey.