14 Resources

Here’s a list of resources, cheat sheets, reference materials, and stuff we really like and recommend.

14.1 Learn to Program Specific Languages

  • For practical, research-focused language-specific training (R, Python, SQL, Bash, etc.), we recommend The Carpentries lessons.
    • You can also use these for reminders of how certain functions are called.
    • Pro Tip: be sure to leave enough time for the lessons. R & Python will each take about 8 hours, Bash & Git will take about 4 hours each. But, you will be about at an intermediate level when you finish these lessons.

14.2 Cheat Sheets

14.3 Help troubleshooting code

  • Check language/platform-specific message boards to see if someone else has encountered a similar problem.
  • Search StackOverflow
    • Programming community forum. Specify what language/platform in your search term (ex: “R plotting change axes”)
    • Pro tip: use your favorite search engine, and prioritize StackOverflow.
  • Use your favorite search engine and search the error code + name of software or the name of the software and the function or operator.
    • Example: “R error default.density need at least 2 points to select a bandwidth automatically”
      • This will often surface relevant StackOverflow posts
    • “R %>%” will tell you about this operator common to the tidyverse.
  • Check documentation for specific function/package/program
    • User guides/docs for “official” add-on packages to software
    • Example: error/problem implementing “bmacoefsample” in Stata? → Find documentation for bmacoefsample - Posterior samples of regression coefficients - read syntax description

14.4 Did you like this style of learning?

Do you want to learn the ins and outs of computer programming, including memory allocation, logic gates, and more?

  • Introduction to Programming Logic (Lynne O’Hanlon 2000)
    • This is a very accessible and readable programming logic book. This was written by one of Kat’s computer science instructors, to whom Kat is eternally grateful for a logical and structured approach to learning how to program.