This page may be out of date. Submit any pending changes before refreshing this page.
Hide this message.

How do top students study?

If you went to or are going to a top school like MIT, Harvard, Columbia, Berkeley, Stanford, Cornell, Caltech, Wharton, Princeton, Yale, Brown, what is your studying method?

Could you please give me advice on how to study the best possible way (especially for math classes)? How do you get good grades at the top universities? Please give me directions, like what you do before lecture, after, during weekends, how you study the book, how many books you read, how you take the tests, how much do you study, etc.

And I'm a computer science major.

100+ Answers
Hooman Katirai
Hooman Katirai, Co-Founder/CEO of the Achieve Group (PharmAchieve, MD Achieve, NurseAchieve)

MIT normally does not rank its students. So if you hear that someone graduated "magna cum laude" from MIT you can instantly know that this claim is a lie.

But MIT does occasionally rank students based on grades when it comes to scholarship applications. During one such ranking I discovered I was the top ranking student in terms of grades in my graduate class.

I maintained a 5.0/5.0 GPA in one of my MIT masters and 4.9/5.0 in my other MIT masters until my very last semester when I had to fly to job interviews and couldn't attend all my classes.

I achieved these grades while doing a double research load. That is I worked simultaneously for an MIT professor and two Harvard Medical School professors.

I consider myself a professional student/learner and believe that there are definitely techniques that I learned that can also be used by others to improve their grades.

I offer the following advice based on my experience:

1. Write your notes in a way where you can test your retention and understanding. Many people write notes that do a great job summarizing their materials but their notes are not designed to promote learning, retention or diagnosis of their weaknesses. But my notes can -- and so can yours.

Simply put my notes can be used like flashcards because I write them in a form where I separate a "stimulus" from a "response." The stimulus are cues or questions (think: front side of flashcard), while the response is the answer to the cue (think: back of flashcard). But the stimuli are to the left of a margin, while the responses are to the right. The key advantage of this is that just by putting a sheet of paper on top of your notes, you can hide the responses, while leaving the stimuli visible. You can have multiple margins and multiple levels of stimuli and response for greater information density. When you get good at this you can write notes in this form in real-time. To get some idea of what I'm talking about google for "Cornell Notetaking method". My notetaking method is a variant of this. I usually use completely blank paper to do this because regular lined paper has too small a margin.

To give you an idea of how powerful this notetaking method can be, I learned several courses just hours before the exam and still got an "A" in all of them during a difficult semester where I had too many competing priorities to spend long hours studying. Had it not been for this notetaking method I don't think that would be possible.

2. Develop the ability to become an active reader (this is the perhaps the most important advice I have to share). Don't just passively read material you are given. But pose questions, develop hypotheses and actively test them as you read through the material. I think the hypotheses are part of what another poster referred to when he advised that you should develop a "mental model" of whatever concept they are teaching you. But a mental model can be much more than simple hypotheses. Sometimes the model resembles a story. Other times it looks more like a diagram.

But what they all have in common is that the explain what is going on.

Having a mental model will give you the intuition and ability to answer a wider range of questions than would be otherwise possible if you lacked such a mental model.

Where do you get this model? You creatively develop one as you are reading to try to explain the facts as they are presented to you. It's like guessing how the plot of a movie, before it unfolds.

Sometimes you have to guess the model based on scarce evidence. Sometimes it is handed to you. If your model is a good one it should at least be able to explain what you are reading.

Having a model also allows you to make predictions which can then be used to identify if your model is wrong. This allows you to be hypersensitive to disconfirming evidence that can quickly identify if your model is wrong.

Oftentimes you may have two or more models that can explain the evidence, so your task will be to quickly formulate questions that can prove one model while disconfirming the others. To save yourself time, I suggest focusing on raising questions that could confirm/disprove the mostly likely model while disproving the others (think: differential diagnoses in medicine).

But once you have such a model that (i) explains the evidence and (ii) passes all the disconfirming tests you can throw at it then you have something you can interpolate and extrapolate from to answer far more than was initially explained to you.

Such models also make retention easier because you only need to remember the model as opposed to the endless array of facts it explains. But perhaps more importantly, such models give you intuition.

Of course, your model could be wrong, but that is why you actively test it as you are reading, and adjust as necessary. Think of this process as the scientific method being applied by you, to try to discover the truth as best you can.

Sometimes you will still be left with contradictions that even your best models cannot explain. I often found speaking to the professor after class to be a time efficient of resolving these contradictions.

I discovered mental modelling as a survival mechanism to pass my studies at the University of Waterloo -- where their teaching philosophy is misnomer because their teaching philosophy is to not teach as well as they could.

You can see this from their grading philosophy. Although they don't use a bell curve or other statistical grade adjustment, they make their exams so hard that the class average is usually between 68 (C+) and 72 (B-) in spite of the fact that their minimum admission grades are among the highest in Canada (you need more than A+ to get into several of their engineering programs).

The only way they can achieve such low test averages from otherwise high performing students is by holding back some of what they know, and then testing what they didn't explain well in lecture on their exams; or by not teaching to the best of their ability.

This forces students to develop the ability to teach themselves, often from materials that do not explain things well, or lack the introductory background knowledge needed to understand the material.

I realized I could defend against such tactics by reverse engineering the results into theories that would produce those same results; i.e. mental model induced from scarce facts.

Then when I got to MIT I found myself in a place with the opposite teaching philosophy. Unlike Waterloo, if the whole class got an "A" the MIT professors would be happy and proud (whereas at Waterloo an "A" class average would be the cause for a professor's reprimand).

The mental modelling skills I developed at Waterloo definitely came in handy at graduate school because they enabled me to learn rapidly with scarce information.

3. Be of service to your fellow classmates. I've personally observed and heard anecdotal stories that many students in highly competitive programs are reluctant to share what they know with their peers; a good example being the vast number of students in a top ranked science programs competing for the very few coveted spots in med school. I've seen people in such situations be afraid to share what they know because the fear it could lead to the other students "getting ahead" while leaving them behind. I would actually recommend doing the opposite: share liberally. You can't expect help from others if you are unwilling to help others yourself.

I spent hours tutoring people in subjects I was strong in. But, conversely those same people were usually happy to help me with my weaknesses when I needed it. I also found it easier to get good teammates -- which is essential to getting good grades in team-based classes. I found I learned a LOT from other people. And their questions helped me to prepare for questions I may not have thought of -- some of which would appear on the exams.

4. Understand how the professor grades. Like the real world, the academic world is not always fair. You need to understand who is grading you and what they are looking for. Oddly, if you actually answer questions as written, you won't get full marks from some teachers. Some professors expected more than the answer. Some only accepted the answers taught in class as opposed to other factually correct answers -- which coincidentally can easily happen if you rely heavily on mental models. Some expected you to not even evaluate whether the answers to their multiple choice answers were true or not; only to notice which answer choices aligned or did not align with the theories taught in class. Some highly value participation in which case you ought to have a mental model of what they are teaching based on their assigned readings. The sooner you know who you are dealing with, the sooner you can adjust to their way of grading. Thankfully I considered the vast majority of my professors to have graded in a fair manner.

5. Get involved in research while still in undergrad. Academics is a means to an end. To me that end was "solving problems" and "building stuff" specifically systems and organizations. Depending on the school you apply for, your research may be just as important, if not more important, than your grades. In fact if all you have are good grades your chances of getting into a top ranked CS program with a research component (e.g. MIT, CMU) are slim to nil; though you might still be able to get into a top-ranked courseware-based Masters (such as Stanford where there is no masters thesis).

I did an Artificial Intelligence research project in undergrad and posted it on the internet. Not long after it was cited in three patents from IBM, AOL and another inventor. Then 40 other people cited my work. I feel this helped me get into MIT because they saw that I could come up with theories with practical applications. It also led to internships with top research teams whose work I am still in awe of. This research also helped my graduate application. None of this would have been possible if I didn't do research in undergrad.

6. Attend classes. I do not understand the students who claim they did well without attending class. Many professors will only say certain things in class. Many classes only present some of the material in class. If you don't attend class you simply won't get that material. You also won't be able to ask immediate follow-up questions. I also found speaking to the professor after class was an efficient way to resolve contradictions I had found with my mental model.

7. Time management is key -- especially in undergrad. In my competitive undergrad program I once learned that a friend who achieved top 5% status actually timed how long he ate.

While I do not suggest going to such extremes I offer this modest advice. I suggest spending no more than 30 minutes trying to solve a problem you can't solve by yourself before appealing to office hours or another knowledgeable student. I also suggest you ask questions of your professor during or after class as opposed to leaving the class confused. This reduces wasted time in an environment when time is a very precious commodity.

8. Going out and having fun is conducive to good grades. In my early undergrad years I studied as hard as I could. And I thought this meant putting in as many studying hours as possible. But I later realized that going out and having fun refreshed the mind and increased grades. Unfortunately it took at least 2 years for me to understand this lesson.

9. Learn how to do advanced Google searches. This is an essential skill that enables you to answer your own questions, quickly. At a minimum I suggest you learn how to use the following Google search operators ~, -,*, AND,OR, and numeric ranges via the double dot ("..") operator. The "site:" operator is also often helpful. I also found adding the word "tutorial" to a Google search often yields great introductory materials.

10. Turn weaknesses into strengths. While studying for standardized exams I learned the importance of addressing one's weaknesses as opposed to ignoring them. If you make a mistake on a question, it is because of a weakness within you. If you do not address that weakness it will follow you to the exam.

I learned this lesson when studying for standardized exams. I was able to legally buy 30 old exams and thought the best approach to studying for the exam was to do as many old problems as possible. But as I completed each exam I kept getting the same score (+/- 5%) over and over. I had plateaued!

But then I made a tiny tweak and my scores kept going up. Specifically, after each old exam, I would identify my weaknesses that led to each wrong answer, prioritize the weaknesses according to the degree to which they affected my score, and would address them in that order. When I did that, my scores increased steadily all the way to the highest possible percentile (99%).

I later realized that such standardized tests are designed to provide consistent scores (if the student does not study in between the subsequent exams to address their weaknesses). In fact that is one of the statistical measures used to measure the quality of a standardized exam and it's called "Reliability" (Google for "psychometric reliability" to see what I'm talking about).

I've used some similar techniques to do well on standardized exams (99%ile on the GRE) though doing so involved me developing some custom software to take advantage of some of these ideas. And after graduation I ended up founding three companies: PharmAchieve, NurseAchieve and MD Achieve — a trio of companies for preparing healthcare professionals for their medical licensing exams. The first of the three, PharmAchieve emerged as the largest pharmacy licensing test prep company in Canada (we train 800 pharmacists a year) in just 5 years based on some of the ideas presented here and has pass rates far exceeding multi-month programs at Canadian universities. The other two companies were founded this year with the aim of doing for doctors and nurses what we did for pharmacists.

Arturo Deza
Arturo Deza, Robot Opthalmologist
I'll speak on behalf of a close friend of mine, who attended an unknown university from where I am from (Lima, Peru), and got accepted for a fully funded PhD to work with the world-leaders (including Nobel Laureates) at Systems Biology and Computational Biology at Harvard, UC San Francisco and Rockefeller.

I'd like to add, that he beat his competitors at interviewing for Grad School from MIT, Harvard, Caltech, Stanford, Yale, and other top institutions. It's one thing to go to get a PhD at MIT because you did your undergrad at Caltech, but its a completely different story if a kid from a developing country who went to a no-mans-land university beats you at grad school and got to work with a Nobel Laureate. This guy was the deal, and he went from zero to hero.

His success story:

1) Discipline: He had no Facebook during his undergraduate years, and probably only went online for doing homework, assignments or coordinating projects. This reduced his distraction span to zero.

2) Emotional Intelligence: He could control his emotional and sexual impulses. He was very socially intelligent around diverse groups, but he had in mind that having a girlfriend during his undergraduate years would be a major distraction. Both he and I when we were freshman knew that we wanted to go to USA for a PhD, so we were lifelong buddies who always noticed the good and bad things about each other. While I would sometime complain that he didn't go out on weekends (because he never did), he would always complain that I cared too much about appearance, partying and personal marketing. He was not socially handicapped as some people might think a 'nerd' would be, he was actually a very mature person who could talk about anything.

3) Sacrifice: We came from a place where dogs literally walked inside our classroom, and cockroaches would on occasion crawl in our backpack in class. He didn't let any of this get to him. He actually used the poor infrastructure of our engineering building as a motivation, something like "one day I'm going to get out of this hell hole, and do something great for science". He also had a great sense of patriotism.

4) Stellar passion and motivation: The first semester, I found out that he had the highest GPA of the whole class, and I immediately called him by the phone. I didn't understand a thing of what he said because the signal was low. However, the next day he seemed very depressed and told me that his grandfather had passed away. His grandfather was like his father to him and he never got the chance to tell him that he achieved first place in his engineering class. Little did we know, after a couple of weeks we realized not only was he the first in class, he was first in the entire campus achieving the highest GPA (grades in Peru are from 0 to 20, and with no curve). He graduated Summa Cum Laude 2 years ago, and got the highest GPA at our university over the last 30 years. The other person previous to him was Barton Zwiebach, a renowned Peruvian string theorist and Professor at MIT.

5) No pain, no gain: He went overkill sometimes to achieve his goal. I'm talking things like not having lunch to study an extra hour, sleep 4-5 hours a day at least 5 days a week, sleeping on the bus to get extra sleep time, and most dazzling thing of all was that most of the time he didn't go to class. He just stayed studying in the library and was at least 2 or 3 weeks ahead of the professor. Even if he did go to class, he rarely paid attention, he would go over his books to see what methods other authors would teach. He would buy and download at least 5 different books per subject and read them all to learn and to study for the test. He would go over all the proofs and learn them, study them, do them, sometimes reinvent the proofs or see if he could grasp the concept in anticipation of what the book would reveal.

6) Selecting friends: His paradigm for selecting friends (or colleagues) was impressive. He didn't care if it was me (a spoiled rich kid), or the son of a blue-collar family that was a national math Olympiad. He valued people for their ideas and it didn't matter to him where they were from, but where they were going.

7) Becoming a preacher: He was never reluctant on teaching. Whenever anyone would ask him something he would go over the concepts and explain it to him. This was really beneficial for our closed group of friends, as we each learned different concepts and he checked with us or we discussed any doubts we had.

8) Be ambitious: All of his life, he was the best at everything he did. Before enrolling at our engineering school, he was making around $3000 a month by only winning Magic The Gathering Card competitions, and he was Peru's #1 player and Ranked in the top 10 world wide. *Not bad for a 16 year old, at that time.

9) He majored in Robotics Engineering: So yes, he did learn Optimal and Digital Control, Fourier Analysis, Triple integrals, differential equations, etc.. We didn't have computers for our programming tests, they were all done on pen and paper.

10) He was incredibly humble.

At his young age (22), he has already surpassed the post-docs at the Ivy League university (name concealed) Lab he is interning at, to the degree that the seminal paper he wrote is on yield because if published now, invalidates the work of the post-docs at his lab.
Ben Leong
Ben Leong, Associate Professor of Computer Science
I was a decent student back when I was an MIT undergrad and now that I'm a prof, and I really want my students to do well. Every semester, I email them a link to the following article by Cal Newport: http://calnewport.com/blog/2007/..., which pretty much summarizes everything in about a thousand words.

If you don't have time to read the article, the hypothesis is that your brain absorbs information best in small chunks, so the key simply is CONSISTENCY.

Learn topics that you are taught as soon as they are introduced in class and learn them well in small chunks. Do your problem sets diligently and put effort into understanding the material. Math requires practice if you want to solve questions consistently under exam conditions. How much practice you need will depend on your level of maturity (in Math).

Do not count on last minute cramming right before exams to do well. Cramming might work (i.e. get you decent grades in the exams) during the first two years when the material is relatively simple, but if you don't learn the basics well, you might end up having trouble with the more advanced material that will build on the basics. It might be hard to catch up once you have a gap in your understanding in the early years.

The 7 most important things that enable learning and top grades are:

  1. Listening carefully in class - no just furiously taking notes, notes can be borrowed from friends, or you can refer to reference materials later. Listen in class!
  2. Ask questions in class - don't be afraid to ask questions. Genuinely engage the professor and participate in class. if you can't follow, others probably can't either.
  3. Go to office hours - and engage the TA / Professor
  4. Sleep on time
  5. Exercise
  6. Find a good study group - ideally people who know things complementary to you, or with whom you work extremely well.
  7. Stay calm before exams - don't cram, and definitely try not to stress out during exams. The best way to do well during an exam is to stay calm before and during the exam. For more on this see: Higher Education: What test taking strategies do top students use?
David Koh
David Koh
I did pretty well at MIT, and there's a few things that I did there that haven't been mentioned yet.

The most important thing is to keep track of how good your understanding is of the material.  I saw a lot of people thought that they understood what was going on in a class, but could easily get tripped up by the basics even after the class had moved onto more advanced topics.  Having a thorough understanding of the basics is particularly key, because most advanced material is really just an extension of the basics.

For most mathy, computer science topics, there's really two parts to understanding.  The first is intuition, which for me always meant being able to build a mental model of whatever I was studying in my head.  Usually, working out examples helps with the intuition.  The second is knowing how to formally reason about the topic, which usually involves being able to work through examples step by step using logic and/or algebra, and is especially key for proofs in math and algorithms.  Most good students learn the rules for formal manipulation fairly well, but without a good intuition it becomes harder to deal with more complex problems, where the correct path is not immediately clear.

Another important thing, especially at top schools, is time management.  If one class just clicks for you and you get it easily, and another class is really hard, you should be able to spend less time on the first in order to spend more on the second.  Good students study smart, not hard (great students usually do both).

Here's some tips broken down by part of the class:

Lecture
  • I find that in lecture, one of three things happens for me: (1) Everything goes too fast and I get lost. (2) I can follow what the professor is doing and I understand what they're talking about.  (3) The professor is going kind of slow, and I can usually get a good idea of where they're going before they say it.
  • In case (1), it usually means that I'm going to need to do extra work beforehand and afterwards in order to get anything out of lecture.  This usually means doing the readings beforehand, and going over the lecture notes afterwards until I feel confident I know what the professor was talking about.  Office hours and recitation are also great places to ask to have something explained again, and hopefully this time in a way you can understand.
  • In case (2), I usually don't worry too much about doing readings beforehand, but I will go over the lecture notes, since usually there are some things I didn't realize I missed.  The key thing to know here is that I never really feel like I understand the material yet at this stage, since I usually know the 'how' but not the 'why'.  The 'why' typically comes with problem sets.
  • In case (3), I may skim the lecture notes, but otherwise I'm usually good.  Case (3) usually only happens when I've seen some of the material before anyway, so I usually have a pretty good idea of how well I know it.
  • One last tip that I think is really key for lecture is to try to understand how the professor thinks and where they're coming from.  For instance, my math professor for Real Analysis always thought of the concepts he was teaching in terms of metaphors and visuals, and he would always start with that, and then tie it into the rigorous math.  From that, I knew what the structure of the lecture would be and also that I would get good intuition from the professor (but he might leave out some of the rigor).  In contrast, I had another professor in Probability who did everything through equations, which meant I got most of my intuition about topics from the book.

Problem Sets
  • Problem sets are usually the best place to find out how well you actually understand the material.  Always start them alone, because if someone else gives you the key intuition for a problem right at the beginning, they've just prevented you from finding a hole in your own understanding you didn't know was there.
  • Here's how I typically do problem sets.  First, read the whole thing, and then start on the easiest looking question.  Work on it until you've either solved it, or you're stuck and not sure what to do next.  Then move to the next easiest question, and so on, until you've tried all of them.  Which questions you can do and can't do right off the bat are good indicators of how well you understand a certain topic.
  • Once you've done a first pass of the problem set, take a short break, and then double down again on the problems, one at a time.  If you get really stuck on a problem, skip it again, but I'll usually only do this if I spend more than half an hour without getting anywhere.  You may try lots of things and hit lots of dead ends while working on problems this way, but that is good, because you are learning what doesn't work, which is something you can't usually learn in lecture (and is very important on tests). 
  • Finally, once you've given all the problems a good, honest try, go and find help.  Friends and classmates, TAs and professors are all good options.  Hopefully, they can help you get unstuck on the problems you're still stuck on.  At this point, you should be able to understand the solution they gave you, and if not, keep bugging them until you can.

Studying for Tests
  • First thing I always did to get ready for a test: Find a practice exam, and do it cold, before you study at all, no notes or helpers.  This will give you a very good idea of how well you know the material, and is likely to be an hour or two well spent.  Make sure you skip things that haven't been covered yet, if the test is from an older version of the class.  If you can't solve a problem, note that down and move on.
  • Review the test and see what you didn't know.  These are the things that are most important to study.  The other key thing to do is see what topics weren't covered on the test, and make sure you study those as well.  If you can find another test that did have a problem on that topic, I suggest doing that problem as well, to test your understanding.
  • Another good technique is to make a list of all the topics on the test, and see how much the class has covered those topics.  This gives you a good idea of how hard the problems on those topics will be.  If you've had a lot of problems or lectures on a topic, the test will probably have more advanced problems about it, but probably fewer.  Conversely, if you've only covered a topic a couple times, the test will probably give you easier problems, but there might be more of them.  This is just a rule of thumb and is sometimes completely off, but it is often helpful to guide studying.
  • Non-trivial problems - I consider test problems that require an extra insight which was not necessarily taught in class to be a special class of problems.  There's not one good way to prepare for them, since you don't really know what's coming, but having a really solid intuition of the basics is usually really helpful.  Also, a good understanding of general related topics can be invaluable, which means just being a good all around student will probably help you on the hardest tests.
  • Help other people study!  Explaining concepts you think you understand is a great way to find out where the gaps in your knowledge are.  If you don't know anyone who needs help with the class, find someone who already knows the material and "teach" it to them.  They will be able to tell you what you didn't talk about, or things that you got wrong, and they may be able to ask questions you don't know the answers to (and then answer them for you)

Taking Tests
  • You can probably find tons of test taking tips elsewhere, so I'll stick to the basics here.  Read the whole test beforehand, start with the easiest problems first, followed by the ones that are worth the most points (if you know how much they're worth).
  • If you get stuck on a problem, make sure you show work up to where you are, and go to a different one.  Partial credit on everything is good.
  • If you get stuck on a non-trivial problem which is really hard (and you're done with everything else), trying something that you're not sure if it works usually doesn't hurt, and sometimes the professor might give you partial credit if you were kind of close.  If it feels good to your intuition but you can't justify it formally, you're probably not far off.

Finally, one last note: If you feel like you're starting to get overwhelmed by a class, don't lose hope!  Go back to the basics, and learn them again.  If the class is moving too fast for you, you have to go back, put in the time to learn it at your own speed, and build up your understanding piece by piece.  Often, advanced concepts are built up one simple step at a time from the basic concepts, and if you missed some of the steps in the middle, it's easy to feel like nothing makes any sense anymore.
View More Answers