Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Using Go to teach Go

Using Go to teach Go

Wondering what steps you can take to help teach Go or train junior Gophers? Here are my slides from Golang Sheffield meetup group 6/12/18 that cover my experiences of mentoring juniors.

William Gough

December 06, 2018
Tweet

More Decks by William Gough

Other Decks in Technology

Transcript

  1. Using Go to teach Go:
    A guide to mentoring Junior Gophers.
    By Will Gough.
    @whg_codes
    https://devtheweb.io

    View full-size slide

  2. Who am I?
    - Software Engineer @ Bet365 // Manchester
    - Started writing Go full-time in June @ Bet365. Writing as a hobby for 2ish years.
    - Previously worked for LadBible Group and Ampersand Commerce writing Node
    APIs, Laravel, and React apps.

    View full-size slide

  3. ➔ Context
    What, how, and why?
    ➔ Resources
    The tools at our disposal.
    ➔ Solutions
    Automated mentoring...

    View full-size slide

  4. Context
    Month 1
    Learning the basics,
    reading all materials.
    Month 2
    Start on their first training
    project.
    Month 3
    Start on their second
    training project.
    Finished!
    Juniors now ready to
    start hacking away at
    microservices.

    View full-size slide

  5. Provided Reading
    - The Go Programming Language.
    - Brian Kernighan, Alan A. A. Donovan
    - Site Reliability Engineering
    - Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall
    Richard Murphy
    - Concurrency in Go
    - Katherine Cox-Buday
    - Designing Data-Intensive Applications
    - Martin Kleppmann

    View full-size slide

  6. Additional Resources
    - Gophercises
    - Gobyexample
    - Learn go by tests
    - JustForFunc Youtube Channel
    - Gophers slack channel

    View full-size slide

  7. AutomatingzZz
    - Awesome Go toolchain
    - A ton of bash scripts
    - Makefiles
    - Pre-commit hooks
    - A load testing CLI
    - Automatic pprof web view

    View full-size slide

  8. What worked
    - Pair Programming
    - Online Resources
    - Pre-commit hooks & tooling
    - Self-directed learning
    - Hard to balance workload and
    mentoring on a 3 juniors.
    - Training materials lacked context and
    information on other important parts
    of being a developer e.g Git, JIRA
    - Everybody learns differently, it can’t
    be done in a one-size fits all.
    What didn’t

    View full-size slide

  9. My top tips for mentoring:
    Don’t take advantage
    of what you consider
    basic knowledge.
    Always encourage
    them to ask
    questions.
    Create opportunities
    for different types of
    learners.

    View full-size slide

  10. Any questions?
    @whg_codes
    https://devtheweb.io

    View full-size slide