Scientific Python distribution

We will be using the Anaconda Python distribution, which can be downloaded here. We will use Python 3.8, so make sure you download and install that version.

Online instruction

Free instructional materials abound. Below are some resources to help you learn programming principles using Python.

  • Think Python, by Allen Downey. While we do not have a formal textbook, much of our philosophy in the bootcamp is based on this book. It is available for free as a PDF, or you can buy a hard copy from Amazon.

  • A Whirlwind Tour of Python (see also the git repo), by Jake Vanderplas. This is a great overview of the Python language and covers much of what we do in the first day and a half of bootcamp. You will be hard pressed to find someone who can explain programming and analysis basics better then Jake Vanderplas.

  • Codecademy Offers browser-based interactive coding courses in a variety of languages, including Python. Their courses on learning the command line, learning git, and of course learning Python are probably most useful for you for the bootcamp.

  • Learn Python the Hard Way, by Zed Shaw. Zed has written several books in his tutorials Learn Code the Hard Way. As he explains, “the hard way,” in which you hand-type everything you are learning, is actually easy. Zed is quite opinionated (but backs up his opinions), and some things he suggests might be different from what we do in class (using Python 3 in particular; he uses Python 2). Specifically, his crash course on the command line will be useful to you.

  • Software Carpentry is a great organization that teaches coding practices to beginners with many lessons. Of particular value to you in the context of our bootcamp are their lessons on the Unix shell, version control with Git, and of course Python.

  • Exploratory computing with Python, by Mark Bakker. This is a nice set of Jupyter notebooks that help you learn some of the basics of scientific computing with Python.

Books

Below are books we have found useful in learning Python and preparing for the bootcamp.

  • Think Python, by Allen Downey, which is mentioned above.

  • Computing for Biologists: Python Programming and Principles, by Libeskind-Hadas and Bush, is an introductory programming book written specifically for biologists. Some of the examples in the bootcamp are inspired by this book.

  • Python Essential Reference (4th Ed), by David Beazley. This is a long and quite complete reference. It is also very clearly written. If you are going to be doing more programming in Python in the future, this is a good book to have on your desk.

  • Python Distilled, by David Beazley. This is not yet released, but given Beazley’s other work, it promises to be a valuable reference, focusing on the essentials of the language.

  • Fluent Python, by Luciano Ramalho. This is a book to help you hone your Python skills and help you become a Pythonista. It covers more advanced programming techniques than we do in the bootcamp.

Griffin Chure’s templates for reproducible publishing