This material is a lot more useful when paired with additional readings. What follows is an uncurated list of things that we consulted when writing and revising it, and are both accessible and illuminating. The point is not to read all of them in one go. The point is not to provide a complete reference bibliography either. In a classroom context, a lot of these articles would be on the syllabus. In a self-learning environment, it’s useful to know where to look for things to read, and we encourage you to have a look at a few of these entries.
One interesting essay to get you motivated to read more about computational approaches is “All biology is computational biology”:
10.1371/journal.pbio.2002050
The first step is often to start with “good enough” practices:
10.1371/journal.pcbi.1005510
If you want a more in-depth treatment of best practices, there is a must-read:
10.1371/journal.pbio.1001745
But when facing a lot of possible action items, knowing what is barely sufficient is immensely helpful:
10.1016/j.patter.2021.100206
These practices are important, because clean code facilitates communication among researchers:
10.1111/2041-210X.13961
If you want to release some code, there are articles about the type of additional checks to perform:
10.4033/iee.2015.8.8.f
If you question the importance of releasing your code, this article should definitely convince you:
10.1016/j.tree.2015.11.006
There is also a vast amount of “ten simple rules” papers about various sides of computational science.
Not sure how to make your research more reproductible?
10.1371/journal.pcbi.1003285
Want to take explore different ways to store your digital data for analysis and archival?
10.1371/journal.pcbi.1005097
Interesting in feeding your data to make them grow?
10.1371/journal.pcbi.1003542
Ready to move into fully open software development?
10.1371/journal.pcbi.1002802
Want to make your software more robust?
10.1371/journal.pcbi.1005412
More usable, maybe?
10.1371/journal.pcbi.1005265
How about making your computational research more effective?
10.1371/journal.pcbi.1003506
Some of these papers also offer good baselines about your expectation when learning programming from a non-CS background:
10.1371/journal.pcbi.1005871
Learning on your own? There are guidelines for this!
10.1371/journal.pcbi.1010372
Looking to assemble a group of friends to build a community? You guessed it, guidelines!
10.1371/journal.pbio.2005561
More into books? “The pragmatic programmer” is a masterpiece. I have also heard great things about “Clean code”. The online book “How to think like a computer scientist” is based on Julia, and very thorough. Finally, “Hands-on design patterns and best practices with Julia” is a wonderfully accessible book that will make you a better programmer, even if Julia is not your main language.