Welcome! The Journey Awaits

How to use this resource?
This does not contain any guides on how to use git
. There are tonnes of fantastic resources made by people who know git
like the back of their hand. So, this is to signpost you to these resources.
Instead of giving you a laundry list of all of the resources under the sun, I have selected one or two resources which I think is the best for learning or achieving something. However, best is very subjective. Therefore, I will also include the other resources I have found in a list below the featured ones.
Help!! I've been bitten by the coding bug! What do I do??
Firstly, stay calm. Don't panic. It happens to even the best of us. Each path to and from this point unfurls in countless, unknowable directions, with the grace of a cat knocking a potted plant off a tall shelf - chaotic yet inexplicably elegant.
I want to ... | Link | Description |
---|---|---|
Learn more skills to help with my research | CodeRefinery workshops | Code refinery "teaches all the essential tools which are usually skipped in academic education so everyone can make full use of software, computing, and data with focus on reusability, reproducibility, and openness." |
Basics about unix and programming in Python or R | Software Carpentry lessons | "Software Carpentry is a lesson program within The Carpentries teaching basic lab skills for research computing" |
Read a book that's both philosophical and introduces computer science concepts | Gödel, Escher, Bach | This is the first computer science book I ever read. It explains computer science concepts in a very approachable manner and has an underlying philosophical question about how cognition emerges |
Read a book about creating good software | The Pragmatic Programmer | This book "examines the core of modern software development—understanding what is wanted and producing working, maintainable code that delights its users" |
I don't believe your "good coding practice" conspiracy theory. Are you just making this up?
Yes, I am. 😉 Check out these resources,
- Blog post: The Hitchhiker’s Guide to Research Software Engineering: From PhD to RSE
- The section "What I wish I knew in my PhD" is a great read for people just starting their PhD or in the throes of it.
- Chapter on Version Control in The Turing Way
- The Turing Way is a fantastic handbook for learning more about how to make your research can be reproducible, how to plan and manage your project and how to communicate your research
- The Turing Way is massive and can feel daunting to read. However, they have pathways, e.g. Early Career Researchers, which are a curated list of chapter targeted for the pathway's audience.
GRRR a link is broken...
I apologise in advance. But, things move around on the internet. Please open an issue and I'll do my best to fix it!
Come across a life-changing resource you would like to share?
Please open a pull request!
Starting with Git

Suggested Resources
I'm looking for a ... | Link | Description |
---|---|---|
Detailed guide to walk me through the set-up of git and GitHub | Software Carpentry Guide to Version Control with Git | The summary and set up page provides information about how to install git and creating a GitHub Account. Episodes 2 and 3 within the guide are about how to set up git and create the repository. The subsequent episodes provide practical advice on how to use git |
Cheat sheet of git commands | GitHub git cheat sheet | Cheat sheet of git commands with explanation about what each of the commands do. A pdf version is also available |
Simple English explanation of these fixes I copy and paste when I mess up | Oh Shit, Git?! | My go-to guide for when I inevitably mess up. It helped to demystify fixes which I (dangerously) blindly copied from StackOverflow |
Simple English explanation of what version control is and why it is important for reproducible research | The Turing Way book's chapter on Version Control | An approximate 5-minute read which is perfect for sharing with others or PIs to bring them on board with using git |
Book that can tell me everything I can know about git | Pro git book | I do NOT recommend this for beginners. But, if you're the kind of person that needs to really understand something to use it. This is the perfect resource. |
Guide that is linked to a course at Imperial College London | Imperial Grad School course - Introduction to git and GitHub | |
Way to find out about upcoming Software Carpentry workshops | Software Carpentry website about upcoming workshops | This shows upcoming workshops around the world |
Using Git and GitHub for project management | Git and GitHub for efficient project management and collaboration: a mini-tutorial | Blog post on how git can be used for more than just version control |
None of these work for me... Do you have any others?
Overviews
- Overview of
git
commands - Git for Beginners: The Definitive Practical Guide - Visual Git cheat sheet
Detailed Guides
- Pro Git book
- The Git Basics chapter covers the most common
git
commands and operations - If you'd like to use branches, I highly recommend the chapter on Git Branching
- The Git Tools chapter explores "a number of very powerful things that Git can do that you may not necessarily use on a day-to-day basis but that you may need at some point"
- The Git Basics chapter covers the most common
- Git documentation
- GitHub training manual
- Less detailed than the book and documentation
- Very useful information on getting started with
git
- Written for teaching developers how to use
git
making it very useful for getting to grips withgit
and is very practical
More Imperial Grad School Courses
These have been created by the Imperial College Research Computing Service
- Introduction to Git and GitHub for Software Development
- Further Git and GitHub for Effective Collaboration
Another useful course that's not related to git
is Essential Software Engineering for Researchers