Thomas Ward's website
Thoughts on AI, surgery, programming, and more.

Learning resources

Posted on

Table of Contents

Last updated: 2020-07-30

Below is a list of resources I have found useful across a variety of topics. I try and keep this updated somewhat regularly.


Language specific resources




My go-to language for statistics, data analysis, and visualization creation. I work almost entirely with the tidyverse packages which significantly (p < 0.05) improve base R.

R Markdown

Nice extension on top of normal markdown, allowing for a single document to perform code analyses and produce reports to share (anywhere from pdfs to websites).


Try to avoid for anything requiring more than simple if statements. Shell escaping and decades of gotchas will almost always lead to you shooting yourself in the foot. Once you're over 10 lines, probably time to switch to perl/python/ruby/babashka.

Style guides

Useful, particularly when learning a language, to see how at least some major subset of programmers who use it day-in-and-day-out format and organize their code.


Automate your formating

When in doubt, just defer to a code formatter, especially when learning, to make your code conform to the usual style. A few examples for different languages below:


A list of software I use and references I used to become (or at least try to) proficient.


A great introductory book is Pro Git which is available online free or to purchase for a hard copy. More specific tips:


A "window-manager" for your terminal, with the perk that you can detach sessions (for example when ssh'd into another computer) and pick up right where you left off. Best documentation is the tmux(1) manual


After the standard text editor, vim is my go-to. I now prefer Neovim to Vim due to Vim being slow for a while to improve and things like this github issue.