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.

Programming

Language specific resources

Clojure

Python

R

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).

Shell

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.

Examples

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:

Software

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

Git

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

Tmux

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

Vim

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.