Coder Social home page Coder Social logo

datascience-exam's Introduction

Bombora Data Science: Interview Exam


Welcome!

From all of us at Bombora Data Science, we're excited to get to know you! To do so, we'd like to begin by engaging in a few exercises exploring concepts we're interested in (and hope you are as well).

NOTE: We'll be leveraging open tools and public repositories. Ethics and professional aspirations should drive you to work creatively, enthusiastically, and independently. Clearly, you should leverage all resources you can, but please, do not share this exam or your solutions with any other entity, man or machine. :)

Thank you so much! Now, get comfortable and let's go!

Instructions

Overview

We're going to leverage typical analysis and development workflows used by our team to conduct an interview exam. In short, you'll:

  • clone this repo and setup a working directory
  • open the exam Jupyter notebook in an POSIX environment of your choice (web or local), using a language (kernel) of your choice (you can choose between Scala, R, Haskell, Ruby, Python 2/3, Julia or even Bash)
  • answer two questions of your choice
  • add, commit, and push your solution + resume (and other docs, if you wish) to your remote repo
  • send us completed exam submittal via a pull request PR

Details

0. Configure exam params:

Define a few parameters used throughout the exam:

  • your-gh-username: your GitHub username.
  • ds-position: the title of the position you're applying to, specified in the email you recieved (e.g., data-engineer-2017-q2, data-scientist-intern-2017-q3)
  • mylastname-myfirstname: your name, backwards of course!

If you're a POSIX shell user (e.g., linux or osx), you can set these params via environment variables so future commands won't have to be manually modified!

export GH_USERNAME='carlsagan'
export DS_POSITION='data-science-director'
export DS_EXAM_NAME='sagan-carl'

1. Make your own copy of repo

Fork repo to your GitHub account

It's the button above that looks like the one below (you can click either):

Fork

Local Clone

On your local machine, with git installed:

git clone [email protected]:$GH_USERNAME/datascience-exam.git
cd datascience-exam

Checkout $DS_POSITION branch

Develop against a branch titled for the position you're applying to:

git checkout $DS_POSITION

2. Setup your exam working directory

  1. Create your exam directory:

    mkdir ./submittals/$DS_POSITION/$DS_EXAM_NAME
  2. Copy exam notebook (ds-interview-exam.ipynb) to your exam directory:

    cp ds-interview-exam.ipynb ./submittals/$DS_POSITION/$DS_EXAM_NAME/

3. Setup Jupyter Notebook Environment

3.1 Launch Jupyter

You have two options:

  1. Upload the included ds-interview-exam notebook to try.jupyter.org (easy and recommended):

    • open try.jupyter.org,
    • Upload this notebook to Jupyter session
      • click upload in upper right corner
      • select the local notebook file (e.g., your copy of data-science-exam.ipynb)
    • click on notebook to open.
  2. or, create a local conda env, if you prefer (much) more control of packages, (difficult):

    • install conda / miniconda.
    • create bombora-datascience-exam conda environment, via (from repo root): conda env create -f bombora-datascience-exam.yml
    • activate conda environment, via: source activate bombora-datascience-exam
    • launch Jupyter, via: jupyter notebook
    • open your copy of ds-interview-exam.ipynb notebook

3.2 Setup Jupyter

Note: for those not familiar with Jupyter notebook, please view the Welcome to ... intro notebooks included in file listing. Also, you can review the Notebook Basics tutorial.

After opening your notebook, you'll need to select a language kernel of your choice, (you can choose between Scala, R, Haskell, Python 2 or 3, Julia or even Bash).

  • from menubar of the opened notebook, select * Kernel > Change Kernel > *

4. Solve TWO problems, one from each section.

  1. Take note that there are two sections, they are:

    • 1. Algo + Data Structures
    • 2. Prob + Stats
  2. Take 10 minutes to review questions across each section.

  3. Select and answer ONE question from EACH section, or to be totally explicit:

    • select and answer a question from section 1 (e.g., either Q1.1 or Q1.2).
    • select and answer a question from section 2 (e.g., either Q2.1, Q2.2, Q2.3, Q2.4, or Q2.5).

This is you, shining. Think, Hack, Solve, Repeat. Enjoy this part. :)

5. Commit results and push to your remote repo.

  • copy your resume (and additional docs) to your exam directory:
    cp path/to/my-resume.pdf ./submittals/$DS_POSITION/$DS_EXAM_NAME/
    # (optional)
    cp path/to/my-other-docs.pdf  ./submittals/$DS_POSITION/$DS_EXAM_NAME/
  • add your exam directory and commit
    git add ./submittals/$DS_POSITION/$DS_EXAM_NAME
    git commit -m "Exam submittal for $DS_POSITION"
  • push to remote repo
    git push origin $DS_POSITION

6. Open Pull Request to submit exam

To submit, please open a PR to the $DS_POSITION branch of the repo.

Questions?

Open an issue in the GH repo, we provide a button right here, for your convenience.

Issue

Finished, what's next?

Go enjoy your day—you deserve it!

<script async defer src="https://buttons.github.io/buttons.js"></script>

datascience-exam's People

Contributors

nehalecky avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.