Category Archives: Meta-research

Learning curves

I recently summarized the related work for two research projects in two fields. As both fields were new to me, this experience allowed me to practice and to think about self education.

When learning about a new field, we hope to gain maximal knowledge in minimal time. Visualize this process with a learning curve. The key is to do the right things at the right time, depending on the field, our goals, and our current stage. Continue reading

Explain how facts are connected logically

It’s fun to read about novel information. Although “information” often reminds us of concrete facts like numbers or events, we actually expect to see other information when reading. One such information is the logical connection between the concrete facts.

One type of logical connections that many people expect to read is causality. Humans are attracted by causes and effects: scientists ask about the causes of observations; engineers use the effects of techniques to build systems; besides adults, even young children are attracted by causal information — remember how often kids ask “Why?”* Continue reading

Learning to learn

It might sound a bit stupid, but I just realized that a better reading strategy could help me learn faster, almost three times as fast as before.

To enter a research field, we sometimes have to read tens of research papers. We could alternatively read summaries like textbooks and survey papers, which are generally more comprehensive and more friendly for non-experts. But some fields don’t have good summaries out there, for reasons like the fields being too new, too narrow, or too broad. Continue reading


How to proceed when being stuck
(Reflection on my programming experience)


我想实现某个功能A,却又对它有畏惧之心。这程序整体都有点费脑子,几乎每个功能都需要递归操作树、图等数据结构。而想加的这个功能A呀,尤其复杂。要实现它,就要一口气设计那么多算法、数据结构和函数接口,那么多的新代码交错在一起,想想调试的场面就头疼:那么多东西不知对错,出了问题该改哪里好呢?恐怕要重写一遍吧。 Continue reading

Why junior PhD students are miserable

I hope that elaborating on why we sometimes felt bad can help us feel better in the future.

People tell me that PhD students are miserable for a large portion of the time. They are the happiest when they first arrive at the graduate school. Then they become miserable. They boost their moods every now and then, such as when they pass their qualifications, their papers get accepted, etc., until they become numb. Continue reading

Controlled experiments for a language design project

Last fall, I conducted my first user study to evaluate my first programming language. Looking back, the study was more adventurous than I had thought. I am grateful that it ended with interesting results.

The language design involved a new language construct. I wanted evidence on how this construct affects developers. As a young student entering the field, I was more excited about how people directly use this language than indirect descriptions of code shape. Why don’t we try controlled experiments with human developers, like how people evaluate tools? I did not think much at first. Continue reading