A Software Engineer's Guide to Reading Research Papers
My personal framework for reading research papers.
This article was originally paywalled, and many readers found it valuable. Since we’ve had a big wave of new subscribers, I’m making it available to everyone for a short time. Normally, content like this remains exclusive to paid subscribers—so if you enjoy it, consider upgrading!
Reading research papers is becoming an essential part of a software engineer's job. You need to constantly look out for new developments in your area - for instance, in my past job, I used to track and apply new developments in time series analysis. As you grow in your career, you'll find that papers become the most efficient source not only for learning new things but also for filling gaps in your existing knowledge. Often you'll find pieces of wisdom and insights hidden in these papers that aren't discussed elsewhere.
Yet, many find these dense technical documents intimidating. Not having a research background can be an impediment when you first start to read papers. I've spent years reading and understanding research papers, and in this article, I'll share the approach that works for me.
Managing Initial Frustration
It is easy to get frustrated when reading highly technical writing such as research papers. Each sentence is filled with technical terms with precise definitions, and references to prior research work that you may not be familiar with.
Instead of letting the frustration get to you, accept the fact that you need to revisit certain parts of the paper several times. Opt for a multi pass approach where each pass has a distinct objective.
First Pass: Getting the Big Picture
When reading a paper for the first time, focus on some key sections such as the Abstract, Introduction, Results, and Conclusion.
Understanding the Abstract
Start from the Abstract to understand what is the problem statement and approach to solving that problem. Often you can decide whether it is worth your time to read a paper based on the abstract itself. If the techniques they have used, or the problem statement does not align with your current interests, you can stop right there.
If the Abstract sounds interesting enough that you decide to look deeper, then the next sections of interest are the Introduction, Results and the final Conclusion or Summary sections.
Extracting Key Points from Introduction
The Introduction section usually provides a bit more background about the problem statement, why it is important to solve it, and some of the prominent previous research in that area. It will also highlight the overall approach taken by the current paper. Reading this section should give you the lay of the land as far as that paper is concerned.
Next, you can skim through the remaining sections without trying to understand those parts, or directly jump towards the end where the Results and the Conclusion sections are present.
Evaluating Results and Conclusions
The results section will tell you the kind of experiments they did, and whether it was groundbreaking enough for you to pay attention. The Conclusion section will give you the overall summary of the paper; combined with the Introduction section, it should give you a fuller picture of the paper.
At this point you should know what to expect in the rest of the paper and you can go for the second pass through it.
Second Pass: Deep Dive
The second pass is to focus on the remaining inner sections of the paper, which is where the real details are present. You may have skimmed through it in the first pass or you are going to read it for the first time. Either way, you should not try to understand everything. Read through it, try to make sense of the things, make notes, and highlight important parts.
Most importantly, list down the terms that you are not deeply familiar with. These can be things you may have studied long back but don’t remember anymore, or these can be entirely new terms for you—list them down somewhere to look up later.
Similarly, list down the cited references that you need to check out. Research work is done by building on top of prior research and that prior work is referred to in the form of citations in the papers. To get the background context based on which the current paper has been written it becomes important that you are familiar with that context. So list down the references which seem crucial to understanding the current paper for looking them up.
Background Research: Building Context
Next, pass is to look up the terms and references that you found challenging to understand in the 2nd pass.
Understanding Technical Terms
You can start by looking up the technical terms and definitions and try to put them in the context of the paper. This becomes especially important in mathematically dense papers, even if you look up the definition of a term, you may need to come up with several examples to understand how it is being used by the paper.
This process is normal even for experienced engineers. While researching Groq's LPU hardware architecture, I had to pause and look up numerous networking-related terms that were unfamiliar to me as a software engineer. Similarly, when studying Unix spell's implementation, I needed to understand Golomb's coding paper to grasp the compression algorithm used in Unix spell implementation.
Following Key References
Next, follow up the referenced papers that you listed down. You may not need to read the complete paper—perhaps, the Abstract, Intro and Summary is enough. I often look for explanations written by others in simplified terms, whatever works for you to get an intuitive understanding of this work.
The goal of looking up the references varies. Sometimes the current paper might have extended the approach taken by a prior research paper and in that case you need to understand what exactly was the design or solution that the cited paper came up with. For instance, in deep learning, it is very common to take make extensions or modifications to existing model architectures to get better results. In that case, you may need to look up the original papers which came up with the architecture itself to understand its design.
But often, these papers cite prior work to discuss the approaches taken by others, and it may not be that crucial to understand that line of enquiry for understanding the current paper. For example, they might need to discuss the flaws in the approach taken by others in the past to justify why the approach taken in the current paper fixes those issues.
As you can see, the importance of references varies by context. When studying "Language Modelling is Compression", I found that while the paper had state-of-the-art results, understanding why their technique worked required reading their cited papers which contained the clearer theoretical explanation. This is a common pattern - newer papers often focus on improvements while the foundational concepts are better explained in earlier work.
Third Pass: Connecting the Dots
After having finished your background research, you can come back to do a third pass through the paper. With a more informed mental model you can revisit the difficult parts of the paper and try to connect the dots. The objective is to interpret the meaning of the parts where you were missing the context previously.
Apply the definitions that you have learned
Try to make sense of what the authors are trying to convey
Connect the dots with the rest of the paper
See if a meaning starts to emerge
Depending on the nature of the domain, you may have to think through the difficult parts. If there is math involved, you may have to write it down yourself, and solve it. If there is an algorithm described, you may need to write some examples to see how it works, or perhaps code it yourself.
The third pass may not be the final pass, but after finishing it you will know where you stand and the areas you need to work out. It can take time, but you need to be patient with the process—it is not easy work.
Final Stage: Solidifying the Understanding
At this point you may believe that you understand the paper quite well. For many purposes - like implementing the described technique or using it as foundation for your own work - your understanding at this stage might be sufficient.
However, if you want to achieve an even deeper mastery of the material, there's an optional but powerful final step: teaching it to others. Whether through writing a blog post or giving a talk, explaining the paper's concepts forces you to organize your thoughts and identify any remaining gaps in your understanding.
When explaining to others, you need to:
Distill the key ideas
Provide appropriate background context
Translate complex concepts into simpler language
Work through concrete examples
The process of simplifying and explaining often leads to deeper insights that you might have missed even after careful reading. Additionally, questions from your audience might highlight new perspectives or applications you hadn't considered.
My Approach to Using AI for Paper Reading
This discussion is not complete without talking about the use of AI assistants for reading papers. These AI models have become powerful enough that they can help you with cutting edge research papers. However, you need to use them carefully.
In my experience, asking these models to give a summary is not very useful. They usually skip some crucial insights that you may need if you truly want to use that work. But, if you only want a superficial understanding of the paper then the AI generated summary may be all that you need.
Another thing that people do is to feed the paper to the AI assistant and ask questions to it as they run into difficult parts. This approach is fine but be cautious of the AI hallucinating the explanations it gives you. You should still verify that whatever the model has told you is indeed the correct.
For instance, if you are asking it to explain how a certain equation has been derived, the AI model might give the broad steps, but you still should do the math yourself to see if it leads to the correct results. Or, if you are trying to understand why a certain step in an algorithm is present, work through examples to ensure it holds true.
My personal approach of using AI when reading papers is to use it as a colleague with whom I am trying to figure things out. I prompt the AI assistant to have a piercing eye on my reasoning and point out any flaws that it might have.
I usually write my understanding down and discuss with it the parts which are difficult to decode. Just the act of writing down my own half-cooked mental model of the paper leads me to identify the gaps that I still have and the AI assistant helps me figure those out.
It takes several rounds of going back and forth with the AI assistant until I’m confident that I have nailed the insights from the paper, but it is a useful aid.
Conclusion
Reading research papers is a skill that improves with practice. The multi-pass approach described here - from initial skimming to deep understanding - provides a structured way to tackle complex technical papers without getting overwhelmed.
The key is to be patient with the process and systematic in your approach. Whether you're reading papers to implement systems, to stay current with technology, or to build upon existing research, having a structured approach makes the task less daunting and more productive.
With time, you'll develop your own variations of this process that work best for you. The most important thing is to keep reading - each paper you tackle makes the next one easier to understand.