Graduating To Go - A Jumpstart into the Go Programming Language
-
Upload
kaylyn-gibilterra -
Category
Technology
-
view
79 -
download
2
Transcript of Graduating To Go - A Jumpstart into the Go Programming Language
![Page 1: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/1.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/2.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/3.jpg)
Why I love Go
![Page 4: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/4.jpg)
You are already a Gopher
![Page 5: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/5.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/6.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/7.jpg)
Workspace
![Page 8: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/8.jpg)
Testing Your Installation
• Create $HOME/go/src/hello
• go build
• https://play.golang.org/
![Page 10: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/10.jpg)
Variables
![Page 11: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/11.jpg)
Variables
![Page 12: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/12.jpg)
Variables(Imports & Exports)
![Page 13: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/13.jpg)
Functions
![Page 14: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/14.jpg)
Functions
![Page 15: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/15.jpg)
Functions
![Page 16: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/16.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/17.jpg)
![Page 18: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/18.jpg)
For Loop
![Page 19: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/19.jpg)
For Loop
![Page 20: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/20.jpg)
While Loop
![Page 21: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/21.jpg)
Infinite Loop
![Page 22: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/22.jpg)
If Statements
![Page 23: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/23.jpg)
If Statements
![Page 24: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/24.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/25.jpg)
Exercise
![Page 26: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/26.jpg)
Exercise
![Page 27: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/27.jpg)
Additional Info
![Page 28: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/28.jpg)
Structs, Arrays, Slices,
& Maps
![Page 29: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/29.jpg)
Structs
![Page 30: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/30.jpg)
Arrays
![Page 31: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/31.jpg)
Slices
![Page 32: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/32.jpg)
Arrays & Slices
![Page 33: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/33.jpg)
Slice Range & Append
![Page 34: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/34.jpg)
Maps
![Page 35: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/35.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/36.jpg)
![Page 38: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/38.jpg)
![Page 39: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/39.jpg)
Methods & Interfaces
![Page 40: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/40.jpg)
Methods
![Page 41: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/41.jpg)
Interfaces
![Page 42: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/42.jpg)
Interfaces
![Page 43: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/43.jpg)
Concurrency
![Page 44: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/44.jpg)
Goroutines
![Page 45: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/45.jpg)
Channels
![Page 46: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/46.jpg)
Channels
![Page 47: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/47.jpg)
Buffered Channel
![Page 48: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/48.jpg)
Write an API
![Page 49: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/49.jpg)
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 51: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/51.jpg)
![Page 52: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/52.jpg)
![Page 53: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/53.jpg)
![Page 54: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/54.jpg)
![Page 55: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/55.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/56.jpg)
Thank you!Kaylyn Gibilterra
@kgibilterra
![Page 57: Graduating To Go - A Jumpstart into the Go Programming Language](https://reader030.fdocuments.us/reader030/viewer/2022021508/5a6487927f8b9a27568b5b77/html5/thumbnails/57.jpg)
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: