Skip to content

How To Make Progress Reading Computer Science Research Papers

Photo by Rams Asad

Learn to learn code faster, using techniques honed by years of study, neatly packaged into one book: How to Learn Code

In Computer Science there are a few fields whereby reading academic papers is a requirement for understanding the field enough to reach the tippity top of the cutting edge science. Granted, you can get really really skilled in these fields just implementing code, taking math courses and studying topics in fashionable order. But, to reach the very edge of these topics, you need to learn to read, digest & organize research papers online. This is unlike web development, where you do not really need academic research.

And no, you do not need a college degree to read or publish research papers, especially in Computer Science. Yes, peer reviewers are more discriminatory to non-academic authors, but that should spur you to create a higher quality paper and not give up entirely. Additionally, it is true many publishers will accept work just because you are in college. Just know you are equally deserving to publish and read research papers as anyone else. It is just the system we live in and have to deal with.

Point is, read, and, if you want, publish papers, even if you do not have a college degree. Anyway, I will show you a system for reading research papers. Although this blog is relevant to all Computer Science reading, the two most applicable fields for reading academic papers in general here, are machine learning & graphics programming.

Yes, graphics programming. Weird huh? Graphics programming is the cornerstone of game development, yet we need research papers? Yes, you do. You need the latest and greatest graphics programming techniques which are being published by mathematic Computer Science super geeks in graphics programming academic journals.

For an observer, it is easy to see why machine learning requires an academic’s touch. However, The mathy, hyper complex nature of graphics programming lends itself to this need in the same way as Machine Learning.

What is crazy, in both of these fields there are many many academic publishers who have no degrees. Okay, let us continue to the guide.

The Goals of Reading Research Papers

The focus of all things programming is always the projects and implementation. However, the general goal of reading research papers should be to deeply read papers and not stop reading, ideally on a schedule.

Start with picking a specialized topic, like these, for example

  • Visual lip reading
  • Generating NLP text
  • Summarizing text
  • Text classification
  • Efficient rasterization
  • Ray tracing techniques
  • Classical NLP

Next, find and read a literature review or a survey of all papers in the topic. There are hundreds, many times thousands of articles on various topics. So typically you should be able to find a literature review/survey.

Read these reviews every time you enter a new topic. If you can’t find one that is fine too, but ideally, read these first, latest to oldest until they are not relevant.

Next, line up the papers on a schedule and don’t worry about the publication date. Sometimes it is best to read older papers first, sometimes it is not. It is different per topic whether or not old papers will help you, so you have to learn this by trial and error.

As for the schedule, examples include 1 research paper per day, weekly or bi-monthly, depending on your goals and skill level or pages per day, ranging from 3–10 pages, which ever you prefer.

My recommendation is to do this until you stop improving in that topic or really want to try something new. I recommend sticking to one topic as long as you can stomach or need to. It is just good practice for general learning. The goal is to eventually shift topics, but when you go deep into one thing you can really garner a lot of the fundamentals. Much of it will transfer over.

As for the projects, maybe once every week or once every two weeks, redo a project from a paper you are reading relevant to your field. In fact, you can make all your reading require an implementation. Really see what they are saying (people do this in graphics programming). This seems like a hard task, but, it does wonders over the long term and really solidifies how you read papers.

You can get guidance on this weekly paper implementation or bi-monthly paper implementation with Papers With Code for machine learning or The Journal Of Computer Graphics Techniques for graphics programming. Both of these websites organize papers with a focus primarily on the implementation, so you can replicate the results.

Here is a quick summary of the steps for reading/implementing papers:

1. Pick a specific topic

2. Read literature reviews/surveys before anything, latest to oldest until its irrelevant or out of date

3. Schedule papers out, depending on skill and needs

— Don’t worry about the publication date too much. In the beginning of your journey, sometimes its better to read old papers.

4. Include papers that require implementation for you to replicate. You can also only do these type of papers on a schedule.

5. Don’t stop

General Tips for Becoming an Expert

Now, for these goals let me give some general tips. When reading a paper it is extremely helpful to focus on terminology and concepts while understanding the broad message of the paper and getting into as much detail as you can.

Take notes inside the paper itself in the software I will mention next, so you can revisit them. Also, keep a separate note system specifically for the terminology and important concepts, so you can also revisit these.

Aim to learn, not to understand everything

You should not be able to understand all of them fully right away. In addition there will be authors who make their paper overly complex just to pass the peer review. Such cases mean you can just safely skip those paragraphs or sections. It is common for this to happen and a key indicator will be a bunch of equations with seemingly no meaning.

Learn as much as you can from each paper, that is the goal. Months later you can revisit them and see where you learned wrongly, rightly and missed a lot of things due to missing necessary knowledge.

Stack the above with attending MeetUps and you have a recipe for becoming an expert. The instructions above are the ideal actions to take, and its not just for college graduates or academics. This is for every expert “computer scientist”.

Required Software: Mendeley

Photo by Team Mendeley

There is a required piece of software for reading academic papers. Well, it is not really a requirement. But, it makes the entire reading process much easier, especially for the general goals I mentioned in the previous sections.

What software allows you to organize future papers to read, take notes, and keep a collection of past papers? Drum roll please…. Mendeley. In the past, most readers kept an excel sheet of all their read papers. To keep their notes, I have no idea, it was before my time. Many just printed the articles out and wrote on it.

With Mendeley you essentially have the Amazon Kindle App but for research papers and PDFs. You can take notes like Amazon Kindle on each paper, highlight text, you can create categories, mark as read, organize in a specific order, keep individualized collections, share these collections and it is all saved on a cloud. You can even take collections and export them as a list of references in any citation format for a future research paper 😉 .

Recommended Software: Codex

In addition, I highly recommend Codex for putting down terminology. The basic idea is to do all of your conceptual notes in Mendeley and your pure terminology in Codex. And, trust me, there will be a LOT of terminology. Many, many words you do not know in all these academic papers.

The general idea is to review lists of terms later on, or look them up as you read further research papers.

Additional Quality of Life Software: Mendeley Extension

So, Chromium-based browsers and, I believe the one made by Mozilla, lets just call it Mozilla-based browsers, have an extension which allows you to immediately add a research paper you are viewing to a collection on Mendeley. It synchronizes with your cloud save and quickly helps you build lists for reading. This, is much simpler and faster than using Excel by a landslide.

What Should I Do With All This Software?

Start by picking a specialized field and topic. At first, make it basic. As an example lets start with machine learning, Natural Language Processing (NLP). If you don’t know what that is, think Chat-GPT, or using a machine to interpret text.

Now, for NLP, I am going to use Google Scholar to find my articles, which is acceptable, but for graphics programming it is recommended to use something like SIGGRAPH, which specializes in graphics programming. To find other graphics programming outlets you can Google “where can I find graphics programming journals” and find them. There are a few out there which I won’t list.

Now, for this example let us look at google scholar:

Screenshot: Google Scholar

Right off the bat there are some good ones. I took the liberty of skimming through the paper labelled as an introduction. Now, as a general hint, it is always a good sign for a research paper or journal to have a lot of citations. Think of it like it having a lot of Amazon reviews for a book.

Now add it with your extension or do it manually in the app:

Screenshot: Google Scholar
Screenshot of Mendeley

There are two ways to do this manually, either by entering all the information or by uploading the pdf of the journal.

Now, after adding your paper you can see it in your library like this:

Screenshot of Mendeley

Click it, start reading, and scribble notes, terminologies and try to understand each paper. Think of it like intellectual exercise.

Screenshot of Mendeley

Try to learn the interface and use it according to your own intellectual tendencies. The software is very flexible, there is no right or wrong way to do this. The key is to be consistent and learn from each paper.

Keep Terminology in Codex

In the past I used Data Spell to do this. I kept a bunch of Jupyter Notebooks with terminology and markdown like this:

Screenshot of DataSpell

I have dozens of notebooks explaining specific languages and terminology for machine learning & graphics programming. The problem was, the notebook was a bit Python-centric and there was no markdown GUI. I had not yet discovered Codex.

Take a look:

Screenshot of Codex

I can literally put ALL my notes in one place, it is language agnostic, it saves on any cloud you set it up for, you keep the file yourself too! And, it has a visual markup editor at the top which is superior to Data Spell and every other editor I have ever tried.

Anywho, I hope you learned something…

Happy coding!

Resources

Mendelay app: https://www.mendeley.com/

Google Scholar: https://scholar.google.com/

Graphics programming papers #1: https://jcgt.org/

Graphics programming papers #2: https://www.siggraph.org/

Papers with code: https://paperswithcode.com/

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Search this blog

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Newsletter

Subscribe now to get my library of freebies + weekly emails with coding, tips for learning, and resource tips.

Learn to learn code faster, using techniques honed by years of study, neatly packaged into one book: How to Learn Code

Top content