escalatedquickly

Hacker || Malware Enthusiast || Nerd

What I Learned From Writing My First Paper

2018-06-21
1183 words

Today I submitted my first scientific paper for review. I’ve now been a PhD student for about nine months, six of which I’ve spent on this project in particular. It’s been quite a long road with a lot of bumps and a lot of set backs, but I’ve learned a lot from it, and I suppose that’s what doing a PhD is all about. It doesn’t hurt that I’m very happy with how my paper turned out as well. Now I just have to hope that the reviewers are as happy with it as I am.

Anyway, what I wanted to talk about today is what I learned about doing science from writing this paper.

Don’t ever think

You read that correctly. Don’t ever think. I don’t mean that in the senes of not having thoughts, but in the sense of not believing. In Sweden we have an idiom that goes “Tro gör man i krykan, här vet man”, which translates to “Believe is something you do in church, here you know”. What it means it that you should be certain, and this is one of the biggest lessons I learned from running and rerunning my experiments countless times. Every time I had to rebuild the lab, every time I had to reanalyze data, this was always the culprit. I wasn’t certain about everything. I couln’t answer every question about the experiments, their expected outcomes, or the test environment with “I know that…”. I could answer some in that way, but there were way too many that I could only answer with “I think that…”, and this caused me a tremendous amount of trouble. I thought that the lab was rigged correctly, but it wasn’t. I thought that the real environment behaved a certain way, but it didn’t. I thought that my program was bug free, but it wasn’t. From now on I’ll make sure that I don’t have to answer any questions like that before I start running my experiments.

Get motivated

This kindof relates to the last point. Don’t make arbitrary choices, think things through and make decisions. If you can point to any part of your experiment design and not say “I did this because…” you’re doing it wrong. I did that with quite a few things, which got a bit awkward when my supervisors asked me “So why did you pick X” and I basically went ¯\_(ツ)_/¯. Not only was it a bit awkward in the meetings, but it got pretty bad when actually writing the article and I realized that I had to motivate things for it to not be, well, shit. Luckily for me, a lot of my arbitrary choices were based on gut feelings that were based on an internal model of reality that roughly correlated to the real world, so my choices weren’t that bad. But for my next paper I’m going to find the motivation first and use that as a basis for my choice.

Take care of the environment

For computer science, environment make a lot of difference. Maybe not the real environment, but the digital environment. One of the biggest mistakes I did when writing my first paper was that I didn’t build the test environment first and developed my program to work in that environment. It resulted in finding bugs later down the road that were caused by me making assumptions about the environment based on the very small scale development environment that I set up on my computer. The But It Works On My Machine-award goes to… me.

Don’t give up

This may seem obvious, but let me tell you that I wanted to just say “fuck it” and go home so many times during this process. Experiments that went wrong, new bugs that were discovered way too late, data that didn’t quite add up or make sense, etc. It’s frustrating. Very frustrating, and since being a PhD student means that you set your own deadlines, work when and where you want, just going home is actually an option. But don’t take it. Take a walk around campus, drink a cup of coffee or whatever you’re into, and then grit your teeth and get on with it. You’ll thank yourself for it later.

No stress, just productivity

I left a meeting with my supervisors swamped with things to do about two or three weeks before the deadline of the paper submission for the conferance I was aiming at. The reason for this amount of work being put on me so late was that we, after a good discussion, decided to not scrap part of the experiments that we did first say that we’d scrap. I needed to rig a new set of simulations, set up my experiments based on the outcome of the simulations, rewrite parts of my program to facilitate these changes, and rerun all my experiments in three weeks. Oh, and write a good paper (because we aimed at a good conference). In short, I was swamped. But leaving the meeting, one of my supervisors told me something that strongly resonated with me: No stress, just productivity.

I’m very happy that he said those words, because I think it helped me a lot. It’s very easy to get stressed in situations like this, it’s easy to feel overwhelmed. But the stress will only hinder you, and thus slow you down, making you more stressed, and so on. It’s a recipe for anxiety, and when facing a deadline in a few weeks you don’t want to run around being anxious. What does help is getting shit done, i.e. being productive. And let me tell you, I’ve been really productive the last couple of weeks. I’ve worked weekends and nights, I’ve started early and stayed up late, I’ve skipped lunch, etc. But somehow I haven’t been stressed. At all. Whenevery I started to feel stressed I took a few minutes to gather myself; grab a cup of cofffee, talk a short walk, look out the window. Basically, just relaxing for a bit to let the stress go. And guess what, I managed to finish a paper that I’m damn happy with, and that my supervisors are damn happy with, with 35 hours to go until the deadline. So keep that in mind: No stress, only productivity.

Closing thoughts

I think that’s about it. Obviously I learned a lot more than this, especially about socket programming in C (I’ve got a post coming up about that in a while), network scanning, and how to write the actual text of a paper. But these are the most important lessons I’ve learned about the process itself.

Anyway, I hope this can be useful to someone. If nothing else it’s something for me to look back on whenever I need to be reminded of these things, so ¯\_(ツ)_/¯. Now, I’m off to enjoy my vacation, and a gin& tonic. So, until next time,

Happy hacking!