Thesis process
Some general guidelines to a successful research project.
(Note that all advise is personal, and your own supervisor may disagree)
Intended for: BSc, MSc, PhD
Management
1. Take responsibility
Change your mindset: In a course, you are told what you need to do, and when it needs to be done. A thesis is different: you are no longer told what needs to be done, and when it should be done. Adopt this new mindset.
Self-management: Therefore, you have to take full responsibility for the project. This is your bachelor/master/PhD thesis, and it is up to you to show you are qualified for the degree. This applies to everything: organizing university logistics, scheduling meetings with your supervisor, preparing for those meetings to make them useful, getting out of the meetings what you need, monitoring your own progress, figuring out how the compute cluster works, searching for related papers, etc. You should of course ask your supervisor for advise, but take self-management as your new mindset. See Work Approach as well.
2. Meet your supervisor when you think you need input.
A specific aspect of the above is that you reflect on when you need input/advice/steer from you supervisors, and that you ensure you then make an appointment with them. See Supervision Meetings as well.
Writing
3. Start writing early
One of the biggest mistakes during a thesis/research project is that you think writing should come at the end.
Writing is a way to structure your thoughts: The first problem is that our working memory is simply too small. We can't oversee many things at once, unless they are written down. Therefore, consider your thesis document an external memory: once you write out your story, you usually start seeing the gaps.
Writing is a way to store your thoughts: The second problem is that our long-term memory is too unreliable. Therefore, when you read a piece of related work, make a few notes in your thesis document. You can always throw them away later on. Or when you think of an important discussion point, directly write it down directly. Don't think you will still remember it next week, next month or even in four months, because you simply won't.
Therefore, at the start of your thesis, always initialize the following documents (which you share with your supervisor):
A thesis document (in Overleaf): here you will build your final thesis.
A progress document (in Google Docs): here you keep the high-level storyline, and your meeting notes.
4. Your first writing does not need to be perfect.
Students often get a writer's block because they think all text needs to be perfect in the first try. However, the opposite is true.
Initially, just write down your thoughts, maybe even in bullet points.
Then, start combining bullet points into a bigger story, simply writing through.
Only the content has settled, you polish your sentences into a neat story.
Experimenting
5. Start with a toy problem.
Always try to debug your approach as quickly as possible.
Find or design an environment that has the relevant characteristics, but in which can quickly get results (see Computational feasibility).
Ideally, you get results within a minute. At least aim that you can get new results within a night of computation (~8-12 hours).
Then, try to debug (or break) your approach as quickly as possible. If it does not work in the toy problem, it will never work on a larger task.
See Experimenting as well.
6. Make sure you have all third-party dependencies ready before the start.
This especially applies to thesis projects in collaboration with an external partner, such as a company.
Make sure that everything you need to finish the thesis is actually present at the start of the thesis: datasets, previous code, access to computational resources, etc. You do not want to wait half of your thesis to actually get the dataset you should be working on (this is also the responsibility of your supervisor).
Thinking
7. Reflect, reflect, reflect.
Research is an iterative process. Therefore, one of the most important things during a project is your ability to reflect on your choices and generated results.
Observe: After every step or experiment, identify all observations which you deem relevant.
Hypothesize: Then, try to come up with possible explanations for these observations. Why could the algorithm fail, where you think it should be working? Did you miss a certain problem factor? Could your idea be off? Are your hyperparameters not tuned? Is there a bug in your code? etc.
Validate: Third, try to find out which explanation is true. This may require additional visualization. If you can't figure it out, at least decide which explanation is most likely.
Solution: Finally, if your observation involved a problem, try to come up with possible solutions. Decide which one is worth trying, implement it, and go back to 'Observe'.
8. Pretend you're the reviewer.
A reviewer is someone who critically judges your work (as a BSc/MSc student, this is your thesis committee, while for a PhD student, these are the conference/journal reviewers).
Reviewing the work of someone else can actually be a very useful experience, because it forces you to take the other role. You then realize how others read your work.
Therefore, during experimentation and writing, sometimes take the role of your own reviewer. If this wasn't your own work, what type of criticism would you give. Would you agree? Can you solve that issue? Or could you explain why you can not not solve it? (requires too much computation, would hurt another aspect of your approach, etc.)
9. Kill your darlings.
A classic problem in research is that you get stuck in your own research idea. You have been working on an idea for a long time, and you are sure it should work. It already partially works, but now you are continuously tweaking your algorithm a little bit, which each time only results in unstable and marginal improvements.
The problem might be that you keep pushing on an idea which may not have remaining potential. You need to kill your darlings. Try to take a step back, and figure out which fundamental limitations may hinder performance. If you have been pushing for a while, then you may need to think of a totally different solution to overcome your performance barrier.