Well… You might’ve already asked yourself, why I’m doing this blog and the accompanying repository Raspository, which compiles a lot of code to solve sometimes completely unrelated scientific problems.
To make it short, it’s something like a toolbox and in this blog post I wanna convince you, that it is something you need as well, if you’re studying Bioinformatics, Computer Science or basically anything related.
First let me clarify that the Raspository is not my only toolbox. I also have one programmed in Java, which was my preferred programming language a few years ago. And than there’s another one in Python, which more or less the first programming language, I taught myself. There not public and I’m not here to convince, that you need a public code toolbox. There are reasons for and against a public one. Today I just want to convince you, that it’s important to have one.
I got this hint from a PhD student during my fourth Bachelor’s semester and I’m quite lucky, that I almost immediately started to realize it. But even if you’re in your Master’s already… It’s never too late. You’ve probably become much more proficient in coding as well meanwhile.
Reasons For Having a Code Toolbox
There are generally a lot of reasons, why you would need one and I will try to compile those, that seem most important to me, not in a top ten form, but in beautiful prosaic form!
The most important one probably is, that there are many problems, that you will have to solve more than once. For this case it is nice to have something like that ready to go. And there are many other benefits that come with this. Like you could say, that such a code toolbox improves your market value as a Computer Scientist.
But that reason is quite trivial… Now let’s get to one, that you probably haven’t thought of. Let’s say you finished your Master’s degree and now work on your PhD. You have to take care of a tutorial for your professor and of course you need some exercises for your students. You should probably know beforehand, if the problem you come up with is solvable and how hard it is. For this reason it’s advantageous, if you have some problems you solved yourself in your time as a student.
And probably you could even use your code for validation purposes. So it will be a big time saver for you. Which is nice, when you’re a PhD and you actually wanna focus on your research. And also in teaching time can be better spent helping students instead of coming up with new problems.
And then last, but not least it is a way to show, that you can write code. And more specifically you can do it on your own. And as not every Computer Science program requires you to code, it’s definitely something with which you can set yourself apart a bit.
What to Put Inside
As a rule of thumb I would say you can put everything inside your code toolbox that is reusable. So code, that is very specific or has hard coded file paths in it, has no place inside the toolbox.
Sometimes you will have to change your code a little bit to make it fit your toolbox and probably adding some documentation is also good.
Besides that there I can’t think of any sensible restrictions right now on what to put inside.
Probably if your toolbox becomes to complex at some point in time it could be wise to divide it into several independent packages.
But yea… What are you still waiting for? 😛 Start your own code toolbox!