Skills

Here are a list of skills I recommend for animal breeders.

Linux / Bash scripting

Most ‘real’ work in animal breeding is done on the command line. I highly recommend starting with a book such as the Linux Command Line.

Why learn bash?

Bash stands for ‘bourne again shell’ as a clone of the Bourne shell, but released by the GNU foundation that allowed for open sourced software development. Originally, all software was protected as proprietary by companies. Linus Torvalds and Richard Stallman were pivotal figures in the creation of Linux (clone of UNIX systems) and free software in general.

Bash I would consider the ‘glue’ for most or all of your pipelines. Often as animal breeders we get data and need to transform it, process it, run statistics, and report back. Often this can’t be done with one language besides small data projects you can handle in R.


Languages

R

R has become a standard for data science in many quantitative fields. It is very good and getting better in statistical modeling for frequentist and Bayesians alike. Most animal breeders will know R unless they are quite old. Most students trained since the mid 2000’s will know R. I highly recommend starting with a simple book such as R in Action.

Python

Python is currently #1 in the top languages in TIOBE Rankings, therefore, I highly recommend learning it due to the possibility you could leave animal breeding someday and need this language.

Python is exceptional at data science and machine learning among many other disciplines, emphasis on the machine learning.

Julia

The main two issues with both R and Python is (1) when they were built, multi-core CPUs and GPUs didn’t exist or were not mainstream and (2) they are interpreted languages. Without a compiler, languages tend to be very slow if their code is not carefully designed and executed (typically called vectorization).

Julia removes both limitations by utilizing multiple cores natively and handling GPUs fairly easily with multiple dispatch (the process of utilizing types and arguments to determine which code to execute). If you convert a matrix to a CuArray from CUDA.jl, you can easily perform a GPU operation with little to no effort on your part.

Compiled Languages

There are many compiled languages that may be useful including but not limited to C, C++, and Fortran. Specifically I would include and isolate Fortran for animal breeders. This was historically the ‘go-to’ language for animal breeders. Most young computer scientists think this language is awful (I will hold judgement as I’m not a Fortran programmer). Most anyone my age thinks it’s a waste of time as it’s a dying language and only kept alive for a few fields including animal breeding and physics.


Reporting

Quarto

Quarto is the newest reporting software from RStudio (now Posit). This allows you to write text and embed R code and results. It is highly recommended as you can easily reproduce results you presented or submitted to a journal.

Jupiter Notebooks

Jupiter will work with Julia, R, and Python and will compile HTML notebooks for reporting.

LaTeX

LaTeX is a document writing program used for mathematical typesetting. I used it to do my CV for instance so I only have to worry about the content and LaTeX handles the formatting. It can still be used with Sweave I believe but Quarto has mostly replaced Sweave.