Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time

Getting started with Breakthrough Listen

This document is aimed primarily at students working with us at Berkeley SETI Research Center as part of the Breakthrough Listen internship program, but may be of interest to other audiences.

Most of the projects our interns work on require some basic astronomy knowledge as well as some programming skills, typically in Python. When working through the following material, if you are an expert Python programmer, for example, you can skip the basics, but you still may find that some of the material specifically related to how we use Python for our projects is new to you. So please skim through the parts you are familiar with, and focus more on the parts you are not.

The search for extraterrestrial intelligence is a field that bridges observational astronomy, instrument design and engineering, computing, and programming, and touches on other areas such as the search for planets and the basics of biology. Many projects at Berkeley SETI Research Center involve our work with radio telescopes, particularly the Green Bank and Parkes telescopes. Here's what we would like you to know:

Computer skills

The O'Reilly books are a good place to learn about many aspects of modern computing. Some institutions (including UC Berkeley) and public libraries have a subscription to electronic versions of the O'Reilly catalog, as well as other books of interest. Try accessing or borrow the physical books from your local library. You'll find lots of books about Unix, Python, SQL, and many other topics.

Before starting work with us, we recommend that you update your operating system to the latest version. For Mac OS, please also install Xcode to ensure that you have up to date compilers. You'll also need the Xcode command line tools, which you can install by typing xcode-select --install in a terminal once Xcode is installed. We also recommend that you install the MacPorts package manager - note the dependencies on Xcode here.

Basic Unix skills

Unix is the basis of the operating systems that we use on pretty much all of our computers at Berkeley SETI. If it's not Unix proper, it's a variant such as Linux or MacOS. You'll need to know how to open a terminal window, as well as basic commands like cd, ls, mv, etc. and how to ssh into a remote machine as well as how to run a VNC session (many of us use Chicken on our Macs for this). You'll also be writing shell scripts as part of your internship.

Here's a good introduction to doing all this on a Mac.

If you only have a PC running Windows, try installing Ubuntu Linux as a dual-boot system, following the instructions at, or install the Windows Subsystem for Linux, Then follow the Unix tutorial above, or a similar tutorial specifically for Ubuntu (e.g. Chapter 7 of Ubuntu: Up and Running).

You'll also need to learn how to use the git version control system, so take a look at

Many folks here edit code in vi or emacs but another great visual editor to try is Atom.


There are several O'Reilly books focused on learning Python (e.g., or you can learn online at,,, or a variety of other sites. Here's a tutorial focused on Python for astronomers:

If you already have some programming experience, there's a great intro to Python as part of Kaggle's data science curriculum at - this also covers machine learning, data visualization, SQL, and a bunch of other really useful stuff.

If you don't have Python installed (or even if you do, for example the system Python on OSX), we recommend installing the Anaconda distribution, which comes with lots of packages that you'll need pre-installed.

Once you are familiar with Python, skills that you'll find useful for our research include familiarity with these packages:

Danny Price also has a nice intro to some of the Python tools we use in our work at

If you are familiar with all of the above, and want to dig a little deeper into visualization tools, you might be interested in Bokeh.

Other languages

Many of our interns are also familiar with C++, Javascript (including D3.js), PHP, R, IDL, Matlab, and other packages. If you are just starting out, we'd suggest learning Python, but if you already have extensive experience in one of the above environments, we encourage you to develop code in the environment in which you are most comfortable.

Common tasks we find ourselves dealing with include interfacing with SQL databases, visualizing data for the web (D3 is nice for that but there are other good options too), manipulating and analyzing data files on the command line, and setting up tools to simplify how various machines talk to each other across the network. Often this involves writing code to glue aspects of code running on a variety of sub-systems together.

Astronomy basics

Can you explain the following terms in one or two sentences? Right ascension, declination, altitude and azimuth, B1950 and J2000 coordinates, arcseconds, parsecs, Galactic and equatorial coordinates, exoplanet, transit, resolving power, signal-to-noise ratio, luminosity, flux?

If not, pick up an astronomy textbook and do some background reading, or check out an astronomy course online. Lectures 1, 4, 11, and 21 from may be useful.

To get a feel for how the positions of objects on the sky change over time and from different locations, you might want to check out the free planetarium software, Stellarium. You can also plot graphs showing how objects rise and set at different observing sites, etc. using iObserve.

Howard Isaacson's "Intro to Astro" course includes some introductory astronomy material as well as covering Unix basics, Python, LaTeX, etc.

If you're just beginning to explore the astronomy literature, here's a guide to finding and understanding research papers.

BL science

Now would be a good time, if you haven't done so already, to read through the basic strategy of the Breakthrough Listen search. The material at starts on a basic level; click through pages 1 - 4, and it gets more in-depth as you go. You don't need to read page 5, which duplicates some of the material presented here.

Now you've done a lot of background reading, you probably want to learn how to find ET. Please read carefully through the material in that document, which describes the BL radio search. Intern projects may involve data analysis, data visualization, RFI identification and mitigation, interacting with databases, machine learning, or other aspects of the search for ET. If you are working on a radio SETI project and are able to download and display some filterbank files using blimpy before starting your internship, you'll be off to a great head start. As well as using blimpy to load files into Python, blimpy also includes command line tools such as watutil that you can run in your terminal. There's also a standalone utility, watplot, developed by one of our former interns, that enables interactive viewing of filterbank and hdf5 files.

Some intern projects also involve analysis of optical data including from the Automated Planet Finder, TESS, and Kepler missions. If you're working directly with TESS or Kepler lightcurve data you'll probably be using the lightkurve package.

Radio astronomy

A good introduction to radio astronomy is at - working through chapters 1 - 3 would be useful. There is also a free ebook at

Both of these radio astronomy primers go into more depth than you will need to know for your summer project, but it's still good to have a handle on the basics. Terms it would be good to be familiar with include Jansky, interferometer, sidelobe, system temperature, spectrometer, correlator, and beamformer.

There are PDFs and videos used for training observers on the Green Bank Telescope that may also be of interest.

Social media, videos, etc.

We encourage you to follow us on Facebook, Twitter, Instagram, and YouTube.