Software Carpentry
https://software-carpentry.org/lessons/
Code Academy
https://www.codecademy.com/
edX Computer Science Courses
https://www.edx.org/course/subject/computer-science
Primers on RStudio Cloud
https://rstudio.cloud/learn/primers
These are short interactive lessons that let you write R code in your web browser. They use the "tidyverse" style of R coding, which we recommend for all new users. The first 4 lessons: "Basics", "Work with Data", "Visualize Data", and "Tidy your Data" give a strong foundation for writing R code to explore your data.
Primers on data analysis/visualization in R
https://wilkelab.org/classes/SDS348_spring_2020.html (first half of lectures)
R for Data Science
https://r4ds.had.co.nz/index.html
Free online textbook that covers how to process data in R with tidyverse.
Python Installation
There are many different ways to run Python, but one of the easiest choices to get started is Google Colabroratory. This is essentially an online Jupyter Notebook, which has many popular packages pre-installed, and removes much of the hassle that can come from a local intallation of python. Jupyter Notebooks are a great tool for keeping track of what the user has tried, and also seamlessly integrating spaces where the user can describe their thought process or add other notes. It is conceptually similar to a lab notebook that one might use in a wet lab.
If a local installation of Python is preferred, use a flavor of Conda such as miniconda to manage your install. Install the Mamba package to speed things up. In addition to Python, Conda/Mamba is exceptionally useful for installing many other command-line bioinformatics programs and their dependencies. Learn about environments and use them!
Anaconda may be a good choice if you want a graphical interface for controlling package installation, but be aware that installing it may cause some future clashes if you want to switch to the flexibility of Conda/Mamba later. Anaconda is a data science platform that installs many useful tools, including Jupyter Notebook, and allows for easier package management. Packages contain libraries of useful code that other people have written making Python easier to use. Biopython is one such such library, and contains indispensable tools such as FASTA/GBK parsers/writers, and tools for manipulating DNA/protein sequences.
Classes/resources
Codecademy offers short lessons that teach the basics of Python syntax. Professor Claus Wilke of The University of Texas at Austin has a great class posted online (second half of lectures) that introduces how to use Python in a biological context. TutorialsPoint offers a nicely laid-out reference to the basics of Python syntax and common operations.
Interactive Git lesson
https://github.com/jlord/git-it-electron
Setup Git for Barrick Lab
Common Workflows
Ten recommendations for creating usable bioinformatics command line software
https://doi.org/10.1186/2047-217X-2-15
Practical Computing for Biologists by Steven Haddock and Casey Dunn
Buy on Amazon
This book provides an exceptionally clean and well written introduction for biologists to begin working with computational data. The beginning focus on regular expressions and working with text files will help anyone starting out with coding.
Bioinformatics Data Skills: Reproducible and Robust Research with Open Source Tools by Vince Buffalo
Buy on Amazon
This book is one of the few available "intermediate" level bioinformatic texts. Once you have mastered some basics in UNIX or Python/R programming, this books introduces more advanced concepts like workflow management and dealing with specific biological data.
Barrick Lab > ComputationList > ProtocolsLearnBiocomputing