graduating to go - a jumpstart into the go programming language

57
Graduating to Go The Go Tour and Beyond in 2.5 Hours! Kaylyn Gibilterra Software Engineer, Capital One Overly Enthusiastic About Go @kgibilterra

Upload: kaylyn-gibilterra

Post on 21-Jan-2018

77 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Graduating To Go - A Jumpstart into the Go Programming Language

Graduating to GoThe Go Tour and Beyond in 2.5 Hours!

Kaylyn Gibilterra

Software Engineer, Capital One

Overly Enthusiastic About Go

@kgibilterra

Page 2: Graduating To Go - A Jumpstart into the Go Programming Language

Make a friend!

• Where are you from?

• What do you do?

• What technical experience do

you have (coding or not)

• Why are you interested in Go?

• Do you want to be Gopher

friends forever?

Page 3: Graduating To Go - A Jumpstart into the Go Programming Language

Why I love Go

Page 4: Graduating To Go - A Jumpstart into the Go Programming Language

You are already a Gopher

Page 5: Graduating To Go - A Jumpstart into the Go Programming Language

Outline1. Installation

2. Variables & Functions

3. Loops & Conditionals

4. Structs, Arrays, Slices, & Maps

5. Methods & Interfaces

6. Concurrency

7. APIs

Page 6: Graduating To Go - A Jumpstart into the Go Programming Language

Installation

https://golang.org/doc/install

https://play.golang.org/

brew install go

Page 7: Graduating To Go - A Jumpstart into the Go Programming Language

Workspace

Page 8: Graduating To Go - A Jumpstart into the Go Programming Language

Testing Your Installation

• Create $HOME/go/src/hello

• go build

• https://play.golang.org/

Page 9: Graduating To Go - A Jumpstart into the Go Programming Language

Go Syntaxhttps://tour.golang.org

Page 10: Graduating To Go - A Jumpstart into the Go Programming Language

Variables

Page 11: Graduating To Go - A Jumpstart into the Go Programming Language

Variables

Page 12: Graduating To Go - A Jumpstart into the Go Programming Language

Variables(Imports & Exports)

Page 13: Graduating To Go - A Jumpstart into the Go Programming Language

Functions

Page 14: Graduating To Go - A Jumpstart into the Go Programming Language

Functions

Page 15: Graduating To Go - A Jumpstart into the Go Programming Language

Functions

Page 16: Graduating To Go - A Jumpstart into the Go Programming Language

Exercise

• Declare 2 integers, 2 strings, and 2 booleans

• One should be set to it’s zero value and one

should be initialized to whatever you want

• Print out those variables

• Write a function that prints out all of these variables

https://play.golang.org/p/aRwLHoz0Nf

Page 17: Graduating To Go - A Jumpstart into the Go Programming Language
Page 18: Graduating To Go - A Jumpstart into the Go Programming Language

For Loop

Page 19: Graduating To Go - A Jumpstart into the Go Programming Language

For Loop

Page 20: Graduating To Go - A Jumpstart into the Go Programming Language

While Loop

Page 21: Graduating To Go - A Jumpstart into the Go Programming Language

Infinite Loop

Page 22: Graduating To Go - A Jumpstart into the Go Programming Language

If Statements

Page 23: Graduating To Go - A Jumpstart into the Go Programming Language

If Statements

Page 24: Graduating To Go - A Jumpstart into the Go Programming Language

Exercise• Write a function that imports the library “time” to check what time

it is now and print out if it falls inside the time of this conference,

the WIT Experience

• var day := time.Date(Year, Month, Day, Hour, Minute, Second,

Nanosecond, Timezone)

• var now := time.Now()

• in the Play environment, time is always set to:

2009-11-10 23:00:00 +0000 UTC m=+0.000000000

• Convert this into a while loop where the program continually

runs until it is WIT Experience time

https://play.golang.org/p/3BPc7f9ucZ

Page 25: Graduating To Go - A Jumpstart into the Go Programming Language

Exercise

Page 26: Graduating To Go - A Jumpstart into the Go Programming Language

Exercise

Page 27: Graduating To Go - A Jumpstart into the Go Programming Language

Additional Info

Page 28: Graduating To Go - A Jumpstart into the Go Programming Language

Structs, Arrays, Slices,

& Maps

Page 29: Graduating To Go - A Jumpstart into the Go Programming Language

Structs

Page 30: Graduating To Go - A Jumpstart into the Go Programming Language

Arrays

Page 31: Graduating To Go - A Jumpstart into the Go Programming Language

Slices

Page 32: Graduating To Go - A Jumpstart into the Go Programming Language

Arrays & Slices

Page 33: Graduating To Go - A Jumpstart into the Go Programming Language

Slice Range & Append

Page 34: Graduating To Go - A Jumpstart into the Go Programming Language

Maps

Page 35: Graduating To Go - A Jumpstart into the Go Programming Language

Exercise: Quicksort

1. Given an unsorted list:

2. Select a pivot number:

3. Put the pivot in the correct position for the sorted array

with all smaller elements before it, and all greater

elements after:

4. Recursively continue on the smaller and greater halves of

the list:

3 5 2 1 6 4

3 5 2 1 6 4

3 2 1 4 6 5

3 2 1 6 54

https://play.golang.org/p/tk4si__CyW

Page 36: Graduating To Go - A Jumpstart into the Go Programming Language
Page 37: Graduating To Go - A Jumpstart into the Go Programming Language

https://play.golang.org/p/w6QAle3Thq

Page 38: Graduating To Go - A Jumpstart into the Go Programming Language
Page 39: Graduating To Go - A Jumpstart into the Go Programming Language

Methods & Interfaces

Page 40: Graduating To Go - A Jumpstart into the Go Programming Language

Methods

Page 41: Graduating To Go - A Jumpstart into the Go Programming Language

Interfaces

Page 42: Graduating To Go - A Jumpstart into the Go Programming Language

Interfaces

Page 43: Graduating To Go - A Jumpstart into the Go Programming Language

Concurrency

Page 44: Graduating To Go - A Jumpstart into the Go Programming Language

Goroutines

Page 45: Graduating To Go - A Jumpstart into the Go Programming Language

Channels

Page 46: Graduating To Go - A Jumpstart into the Go Programming Language

Channels

Page 47: Graduating To Go - A Jumpstart into the Go Programming Language

Buffered Channel

Page 48: Graduating To Go - A Jumpstart into the Go Programming Language

Write an API

Page 49: Graduating To Go - A Jumpstart into the Go Programming Language

Java

•Jersey

•Spring

•Play Framework

•RestExpress

•Restlet

•Spark Framework

•Kotlin

C/C++

•libmicrohttpd

•jansson

•Kore

Python

•Django

•Tastypie

•Flask

•Falcon

•Bottle

•Eve

API Frameworks

Page 50: Graduating To Go - A Jumpstart into the Go Programming Language

Hello World API

https://play.golang.org/p/G08TUIjVMp

Page 51: Graduating To Go - A Jumpstart into the Go Programming Language
Page 52: Graduating To Go - A Jumpstart into the Go Programming Language
Page 53: Graduating To Go - A Jumpstart into the Go Programming Language
Page 54: Graduating To Go - A Jumpstart into the Go Programming Language
Page 55: Graduating To Go - A Jumpstart into the Go Programming Language

Go Tour - https://tour.golang.org

Books

• Go in Action

• The Go Programming Language

Online Resources

• Go By Example

• Effective Go

• The Go Language Spec

Code

• github.com/golang/go

• github.com/ardanlabs/gotraining

Blogs / Podcasts

• The Go Blog

• Gopher Academy

• Go Time

Gopher Slack - https://invite.slack.golangbridge.org/ #ghc2017

Gopher Resources

Page 56: Graduating To Go - A Jumpstart into the Go Programming Language

Thank you!Kaylyn Gibilterra

@kgibilterra

Page 57: Graduating To Go - A Jumpstart into the Go Programming Language

https://github.com/egonelbre/gophers

https://github.com/ashleymcnamara/gophers

https://github.com/tenntenn/gopher-stickers/tree/master/png

https://github.com/shalakhin/gophericons

Image Credits: