Home

Quant boot camp

Below is the agenda we follow to build a University web page and personal website, and learn some financial concepts while developing Python programming skills. Not necessarily in that order.

Agenda

  1. Overview of your online employment portfolio
    1. Your U of M home page.
    2. resume
    3. LinkedIn page
    4. personal website hosted with GitHub Pages. You'll need to create a free GitHub account. Use an appropriate name for your account, as it will be visible to potential employers.
  2. Install tools: GitHub client, Anaconda, Atom. We assume you have a word processor such as Google doc or MS Word.
    1. Install the Atom text editor.
    2. Create a GitHub account with a professional username.
    3. Install GitHub Desktop. NOTE: if you are running Linux, there is no desktop client as of this writing. When it is time to work with git (coming up later in the agenda), follow the instructions at github.
    4. Install Anaconda if you don't already have it. We prefer the 2.7 edition of Python, and recommend the graphical installer.
    5. Follow step one of the Conda 30 minute test drive
  3. Getting started with GitHub
    1. From GitHub Desktop, click on the '+' in the upper left to create a new repository, create a GitHub repository named Quant-python. For Windows, I suggest using the Local Path 'C:\Users\yourUserName\Documents\GitHub\'.
    2. Launch Atom (on Windows, you can launch it from GitHub Desktop via the icon in the upper right). Create a README.md file using Atom in your Quant-python directory. Add this text to it: “These are programs I’ve written while learning Python. The implementation is in Jupyter notebooks."
    3. In GitHub Desktop, refresh the Changes tab in your Quant-python project, and Publish. Then commit your changes (set Summary to something like "initial commit"), and sync.
    4. Log in to GitHub in your browser, and navigate to your Quant-python repo. You should see your files listed, and your README.md file has been rendered as HTML.
  4. Creating your GitHub home page
    1. Go to GitHub Pages, and follow the directions to create your website hosted at yourusername.github.io.
    2. You could continue to write your own HTML. But we aren't really here to do that, and we want something simple but already designed, so we will use the GitHub Pages templates. Go to GitHub.com, and go to your yourusername.github.io repository. Click on Settings, and scroll down to the Automatic Page Generator button. Click it.
    3. Discussion: what should go on your web page? At a minimum, this is a good place to elaborate on your work, fleshing out what you say on your CV and LinkedIn. I recommed the following sections: Education, Skills (starting with Python), Employment. Upload files, and make good use of links. Add a screenshot of your progress on Project Euler. Perhaps tell a story about the hardest problem you've ever solved, and show some evidence of your work. You can start with this markdown.
  5. Getting started with Jupyter and Python
    1. Jupyter runs Python in your browser, using a Jupyter Notebook. The Notebook requires a local server to be running, which you will start using a shell script. Notebooks support Markdown, and python code with full access to everything you got from Anaconda. We will start by downloading the stubbed notebook python-basics-notebook-empty.ipynb. Click on the notebook, and you will see it displayed as you will see it in Jupyter. Click on the Raw button, select File->Save as..., change "Save as type:" to "All files" (otherwise you will end up with an unusable text file), and change the name to "python-basics-notebook.ipynb" before saving in your Quant-python directory.
    2. Launch Anaconda2->Jupyter Notebook, and navigate to your Quant-python directory.
    3. simple data types: int, float, boolean, string
    4. control structures: for loops, if/else
    5. collection data types: lists, dictionaries
    6. for loops with collections
    7. functions
    8. commit your work in GitHub Desktop, and sync.
    9. Go to GitHub in your browser, and navigate to python-basics-notebook-empty.ipynb. You should see your files listed. Copy the URL, and add a link from your GitHub home page to your new notebook.
  6. Additional Python practice
    1. As before, we will start with a stubbed notebook, python-secret-notebook-empty.ipynb. Save it in your Quant-python directory. We'll use it for problems in Project Euler.
    2. commit your work via GitHub Desktop, and sync. Add a link to the notebook from your GitHub home page.
    3. Other practice problems you might consider...
      1. Google Code Jam
      2. Programming Praxis
  7. Python applied to interview questions
    1. As before, we will start with a stubbed notebook, python-interview-notebook-empty.ipynb. Save it in your Quant-python directory.
    2. Solve interview problems 1.1, 3.1, 3.5, 3.8, 3.10, 3.11, 4.4, 5.10.
    3. commit your work via GitHub Desktop, and sync. Add a link to the notebook from your GitHub home page.
  8. Python applied to quantitative finance
    1. In your python directory, create a finance subdirectory.
    2. Create a README.md file using Atom in your finance subdirectory. Add this text to it: “These are programs I’ve written to solve quantitative finance problems, making use of the numpy and pandas libraries."
    3. You can start from scratch, or get the stubbed notebook, python-black-scholes-merton.ipynb. Save it in your finance directory.
    4. Work on the in-class exercise for Black-Scholes-Merton, commit, and add a link from your GitHub home page..