Probabilistic Programming and Bayesian Methods for Hackers