Read papers, Not too much, Mostly foundational ones

Here is my advice to people who want to develop competence and expertise in their fields.


Read papers

By papers, I mean technical research papers, not white papers or blog posts. 

By read, I mean read rigorously and critically


Not too much

If you read rigorously and critically, you cannot read too many papers. 

Moreover, learning by doing is the only way to internalize and grok a concept. If you read papers all day, you don't have time to try things yourself. 

If you are a PhD student, maybe read two or three papers a week (but, remember, rigorously and actively).

If you are not in academia, maybe read one paper a week or two.   


Mostly foundational ones

While there are exceptions, it is better to prioritize:

  • seminal work over incremental work,
  • general principled work over point-solutions,
  • work introducing techniques/tools over work applying techniques

A big exception is good expository papers. Unfortunately, the academia treats them as something the cat dragged in, because they are not "novel".


Closing

It is best if you can write a summary and review about the paper. This will help you improve your understanding of the concepts and hone your thinking, and will also help others studying on the topic. 

I have written a lot of summaries/reviews of distributed systems papers. But I haven't provided a list of foundational papers. I will work on that. 

It is useful to discuss the papers you read with a group to learn about diverse opinions and perspectives on the topic. 

Here is a link to Papers We Love forum where you can read and discuss papers with a group.

Finally, here is a link to our Zoom paper discussion group which meets every Wednesday at 3:30pm EST. 

Comments

Popular posts from this blog

Foundational distributed systems papers

Your attitude determines your success

My Distributed Systems Seminar's reading list for Fall 2020

Cores that don't count

Silent data corruptions at scale

Learning about distributed systems: where to start?

I have seen things

Sundial: Fault-tolerant Clock Synchronization for Datacenters

PigPaxos: Devouring the communication bottlenecks in distributed consensus