Git Product home page Git Product logo

go-slides's People

Contributors

anzboi avatar camscale avatar joshcarp avatar juliaogris avatar pentaphobe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

go-slides's Issues

Add Go for Java dev slides

Sam Uong asked for this to be added.
IIRC he mentioned:

  • not everything is Object Oriented, use (pure) functions where you can - more testable & readable
  • don't worry about interfaces before implementation
  • don't overstructure
  • don't worry about patterns
  • don't worry about frameworks (use libraries rather than frameworks)

Needs maybe some more research on the internet.

Create lab directories on go-training

NN_lab_name for :

  • Lab 1 - Fibonacci
  • Lab 2 - Bubble sort
  • Lab 3 - Letter frequency
  • Lab 4 - Numeronym
  • Lab 5 - Stringer
  • Lab 6 - CRUD puppy with interface
  • Lab 7 - Errors
  • Lab 8 - Project Layout
  • Lab 9 - JSON puppy
  • Lab 10 - Puppy REST
  • Lab 11 - Puppy Notifications

Rework Ping Server example

  • In last course people reported strongly diverting results.
  • Re-run sample code.
  • Work out if the load of concurrent requests can be increased (something todo with open socket limit in OS)
  • Include chart of go vs java performance: x axis: thousands of concurrent requests, y-axis: median & 90th percentile response time.

Add section on JSON

  • JSON (un)marshal
  • JSON en|de code (and difference to marshal)
  • JSON tags on structs, omit empty
  • When to use pointers (when JSON properties are optional and null value is insufficient sentinel)

Create slides and samples for errors

  • How is error represented in go
  • Language's design philosophy on error handling
  • How to create error values
  • How to implement a custom error type
  • How are errors handled

Create test samples

One of the biggest things missing from samples is good examples of testing. In particular examples for...

  • native testing
  • testify
  • suites with testify

Slide for further topics of interest.

Would like a slide with links for more topics that aren't covered in the course in detail or at all,
eg:

  • Benchmarks
  • CPU and memory profiling
  • Code coverage
  • Compiler features (GOOS, GOARCH, CGO)
  • Modules

These are out of scope of the course, but interesting topics in their own right. Any more ideas?

Improve lab setup slides

Add information on tagging logic
Link approval checklist https://github.com/anz-bank/go-course#pre-pr-checklist

Explain labelling for own PR:

We use labels to avoid concurrent reviews and filter more easily on PRs that require action.
When your PR is ready:

  • label with lab number e.g. lab1
  • label with Ready for review (first time and after changes)
  • wait for review and labels Changes requestedor Approved by colleague
  • wait for code CODEOWNER (trainer) to approve and add tag Merge me
  • merge PR

Explain labelling for reviewing others' PRs:

Review somebody else's PR in order to get own PR merged.
Add link to review comments of other PR to own PR descriptions (does not have to be the same lab).

  • add label Under review while reviewing
  • add label Changes request or Approved by colleague when review is done

Address various comments from Reuben

re: slide 35, zero values

nitpicks:

re: slide 38, fibonacci

aside:

re: slide 41, letter frequency

aside:

  • extension: it's often more useful to sort by frequency. i.e. sort (letter, count) items first by count (descending), then by letter.

re: slide 43, numeronyms

what is a "numeronym"?
is there some standard way to generate them or are they just a handcrafted lookup table?

re: slide 51, "concurrency"

aside: re "concurrency vs parallelism", i found this discussion of parallel vs concurrent interesting:

http://yosefk.com/img/n/parallelism-centric.png

https://yosefk.com/blog/parallelism-and-concurrency-need-different-tools.html

Draft promo mail

  • Include signup form
  • Link to slides
  • Dates
  • Location
  • Optional pre-word:
    • Tour of Go
    • Install Go 1.12 tool chain
    • Instal Golangci-lint
    • Repo forking and cloning instructions
    • Repo building instructions

Update README.md

  • include new trainers and reference to new training in go-slides README.md
  • update Pre-PR checklist go-training. add: review other PR section
  • update Build, test etc. section: remove install and add build

`git remote update` stuck on https url

When I was running these two commands:

git remote add upstream https://github.com/anz-bank/go-course.git
git remote update

git remote update will output:

Fetching origin
Fetching upstream
fatal: unable to access 'https://github.com/anz-bank/go-course.git/': Operation timed out after 300031 milliseconds with 0 out of 0 bytes received
error: Could not fetch upstream

Using the SSH url [email protected]:ethanyoung/go-course.git for the upstream can solve this problem.

Update lab setup instruction

Update slides and README.md of go-training repo

Pre-requsites

Repo cloning instructions

  1. Fork https://github.com/anz-bank/go-training to your github account
  2. Clone https://github.com//go-training.git

Explain labelling for own PR:

We use labels to avoid concurrent reviews and filter more easily on PRs that require action.
When your PR is ready:

  • label with lab number e.g. lab1
  • label with Ready for review (first time and after changes)
  • wait for review and labels Changes requestedor Approved by colleague
  • wait for code CODEOWNER (trainer) to approve and add tag Merge me
  • merge PR

Explain labelling for reviewing others' PRs:

Review somebody else's PR in order to get own PR merged.
Add link to review comments of other PR to own PR descriptions (does not have to be the same lab).

  • add label Under review while reviewing
  • add label Changes request or Approved by colleague when review is done

Move `Why Go` out of `Demo` section

The "Motivation & Demo" section is a little disjoint. The Motivation slide would work better in the "History and Overview" section, leaving the demo as a separate section. This also allows the demo to be presented by a different presenter to the overview.

♻️Eng-edu: restructure & rename repo

Rework this repo to become a generic ANZ engineering education location for slides.

  • Rename repo from go-slides to slides or anz-slides or similar
  • Move everything go-training specific into content/gotraining/ including pingserver
  • Use generic GCP project (anztraining and anzedu have already been acquired by @juliaogris)
  • Use generic short URL for training location edu.anz or similar would be cool
  • Move go present files (top level *.go) into tool/ or present/

Update feedback slide

Remove feedback slide or replace with something available on corp network or ask people to use phones?

Create DL for course participants

Create an outlook Distribution List (DL) with all training participants.
Include instructors & Marcelo, Sam & Brendan in list

  • Send an outlook calendar invitation for all training dates to DL. No lecture 10 June! (public holiday)
  • Send a reminder email with and advise people to join #go-course even if they don’t have any questions. No lecture on 10 June!!

Document branch deployment for PR review

Update the README.md to include instructions on how to deploy your local changes that you have submitted for review. A reviewer needs to see the final result so all PRs that change the slides should be accompanied by a PR deployment.

It may be possible to automate this, such that the PR version is deployed on PR creation and update and deleted when the PR is closed, but I'm not sure how github and gcloud are integrated since I need admin on the repo and gcp project to find that out.

Create slides and samples for channels

  • What is a Channel
  • How to create a channel
  • Buffered vs. Unbuffered channels
  • Write to a buffered and unbuffered channel
  • Read from an buffered and unbuffered channel
  • Read using range and using boolean to determine channel state (open/closed)
  • Passing channel direction as function argument.

Work out lecture recording

What would it require to record the lectures?
My meeting?
Can we record audio and slides?
Audio, video and slides?

Can we put it on youtube? (everything else is open source).

Somebody also mentioned putting recordings on OWL or so. Another thing to chase down possilby.

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.