How to write papers fast and efficiently?
I'm not sure if it helps, but here are two ideas that work for me (sometimes).
Don't try to write the paper in its order. Instead, start from the technical parts. This is simple - it is just writing your algorithm. Now, once you try to write the algorithm (and abstract it from code into pseudo-code), you will get stuck because something is missing (notations? a neat observation? a cool idea that makes things clearer?); note these down. Then, expand on the things you wrote down. Another way to begin is with the "cold" facts: the numbers, the experiments - just write the details down in the most dry way... (After the technical parts are written, move to writing the introduction and conclusion; by that time, you will have already broken your "writer's block", and the writing will flow much easier).
tl;dr start with the most simple (and technical) parts just to make the writing start.
Writing a paper is telling a story. You can't write it down? Try this - tell "the story of you paper" to someone else, say, a colleague or a family member. Do this twice or thrice, until you have a complete "story" in your head, and you gained some practice in telling it. Now, writing it down (just following the conversation you had with real people) may be way more simple.
Addendum: This is not a competition. Writing a paper well, takes about a month. Writing a good draft takes at least 2 weeks (of intense work!). Of course, some people can pull an all-nighter and come up with a paper. Don't pay attention to those, they are at the tail of the distribution.
Based on my experience it helps to have the introduction and prior works at least somewhat taken care of. Then you can focus on writing up your algorithm. I do this by:
- Reading at least one article every 2 days and write about its strengths and weaknesses. Save this abstract somewhere - like Zotero or Mendeley notes.
- When you start to write your paper, chose the most relevant from the prior works that you have already read.
- Get the abstracts you wrote, paste in, edit.
If you use this method you will know the relevant prior works, and have a lot of the introduction already written. After that you can focus on the fun main contents. The only hard part is writing the abstract every two days.
I got around a similar problem by using a top-down approach:
- Leave your desk, go outside, and take a walk. Return when you have decided on the overall story the paper is going to tell.
- Write down placeholders for section headings. You can change them later. They just describe the high-level structure of the paper for you.
- Write down subsection headings. You're probably not going to use subsections in the final paper, but the headings help laying down the second-level structure of the paper.
- Describe the contents of each subsection with a few bullet points.
- Write a little bit every day. Finish one subsection in the morning and another in the afternoon. Spend the rest of the day doing something else. Remember that the other subsections don't exist, and writing them up is not your problem.
- After a couple of weeks, you have the first draft of the paper. You probably didn't spend more than a couple of days on it.
The natural order of writing a paper is often different from the natural order of reading it. My typical writing order is something like definitions and notation -> technical background -> results -> experiments -> conclusions -> introduction -> abstract.