Slide 1

Slide 1 text

LinuxFest Northwest 2016

Slide 2

Slide 2 text

LinuxFest Northwest 2016 How to Raise a Gopher in Record Time Tiffany Jernigan @tiffanyfayj

Slide 3

Slide 3 text

LinuxFest Northwest 2016 Who Am I? • - Software Engineer* • Georgia Tech - Electrical Engineering • Docker PDX Meetup - Co-organizer • I like gymnastics, reading mysteries, drawing, spending time with family and friends, sour gummies... • I am learning French (J’apprends le français) *My thoughts don’t reflect those of Intel

Slide 4

Slide 4 text

LinuxFest Northwest 2016 Who Are You? • You've heard about Go • You're interested in learning the language • You want to start on the right foot • You’re interested in learning more • You want to help someone else learn

Slide 5

Slide 5 text

LinuxFest Northwest 2016 Why Learn Go? • Adapted for concurrent I/O • Readable • Fast • Compiles into single binaries • Great for • Distributed systems • Microservices Can’t use this excuse as easily :P

Slide 6

Slide 6 text

LinuxFest Northwest 2016 Outline • Where to Begin? • More Websites • Tools • Training • Coding Practice • Communities • Conferences

Slide 7

Slide 7 text

LinuxFest Northwest 2016 Where to Begin?

Slide 8

Slide 8 text

LinuxFest Northwest 2016 Where to Begin? • Tour of Go • https://tour.golang.org • Available in many languages • Available offline • Basics through concurrency • Examples • Exercises

Slide 9

Slide 9 text

LinuxFest Northwest 2016 Where to Begin? • Godocs • https://golang.org/pkg • What are they? http://blog.golang. org/godoc-documenting-go-code • Offline godoc -http=:6060

Slide 10

Slide 10 text

LinuxFest Northwest 2016 Where to Begin? • Source code • https://golang.org/src • https://github.com/golang/go

Slide 11

Slide 11 text

LinuxFest Northwest 2016 More Websites

Slide 12

Slide 12 text

LinuxFest Northwest 2016 Code Examples • Go by Example • https://gobyexample.com/ • Has code as well as explanations and output • Shows more general concepts

Slide 13

Slide 13 text

LinuxFest Northwest 2016

Slide 14

Slide 14 text

LinuxFest Northwest 2016

Slide 15

Slide 15 text

LinuxFest Northwest 2016 Code Examples • Socket Loop • https://www.socketloop.com/ • Has code comments and output • Not as verbose as Go by Example • Generally longer code blocks

Slide 16

Slide 16 text

LinuxFest Northwest 2016

Slide 17

Slide 17 text

LinuxFest Northwest 2016 Blogs • Official Golang blog • https://blog.golang.org/ • Written by Googlers who work on Go • Detailed descriptions of every big release

Slide 18

Slide 18 text

LinuxFest Northwest 2016 Blogs • Dave Cheney’s blog • http://dave.cheney.net/ • Frequent and very informative posts • My go to for learning about channels • http://dave.cheney. net/tag/channels • http://dave.cheney.net/resources-for- new-go-programmers

Slide 19

Slide 19 text

LinuxFest Northwest 2016

Slide 20

Slide 20 text

LinuxFest Northwest 2016 Blogs • Bill Kennedy’s blog • https://www.goinggo.net/

Slide 21

Slide 21 text

LinuxFest Northwest 2016

Slide 22

Slide 22 text

LinuxFest Northwest 2016 Blogs • Gopher Academy • https://blog.gopheracademy.com/ • Written by several people

Slide 23

Slide 23 text

LinuxFest Northwest 2016 Training

Slide 24

Slide 24 text

LinuxFest Northwest 2016 Online Training • Todd McLeod • https://www.youtube. com/user/toddmcleod • https://github. com/GoesToEleven/GolangTraining • Pluralsight • Nigel Poulton https://app.pluralsight. com/library/courses/go-fundamentals

Slide 25

Slide 25 text

LinuxFest Northwest 2016 Workshops • Ultimate Go by Ardan Labs/Bill Kennedy • https://www.ardanlabs.com/ultimate- go • https://github. com/ardanlabs/gotraining • Basics through more advanced concepts • Examples and exercises • On site assistance

Slide 26

Slide 26 text

LinuxFest Northwest 2016 Books • The Go Programming Language by Alan A.A. Donovan and Brian W. Kernighan • http://www.gopl.io/ • Go in Action by Bill Kennedy, Brian Ketelsen, and Erik St. Martin • https://www.manning.com/books/go- in-action • Code samples https://github. com/goinaction/code

Slide 27

Slide 27 text

LinuxFest Northwest 2016

Slide 28

Slide 28 text

LinuxFest Northwest 2016 Tools

Slide 29

Slide 29 text

LinuxFest Northwest 2016 Editors • Go Playground https://play.golang.org/ • Vscode (what I use--with vscode-go) https://code.visualstudio.com/ • Can have Delve debugger • Sublime (with GoSublime) https://www. sublimetext.com/ • Vim (with vim-go) http://www.vim.org/ • And there are many more

Slide 30

Slide 30 text

LinuxFest Northwest 2016 Tools • Gofmt • https://golang.org/cmd/gofmt/ • Formats your code to the Go standard format • I have format on save set

Slide 31

Slide 31 text

LinuxFest Northwest 2016 Tools • Autocomplete • https://github.com/nsf/gocode • Start typing and it will show options • Very helpful for learning

Slide 32

Slide 32 text

LinuxFest Northwest 2016 Tools • Godef • https://github.com/rogpeppe/godef • Jumps to where the code you’re looking at is defined

Slide 33

Slide 33 text

LinuxFest Northwest 2016 Tools • Goimports • https://godoc.org/golang. org/x/tools/cmd/goimports • Automatically will add packages you’ve used to the imports when you save

Slide 34

Slide 34 text

LinuxFest Northwest 2016 Coding Practice

Slide 35

Slide 35 text

LinuxFest Northwest 2016 Testing <-> Features • Testing testing testing! • Unit tests (require less context) • Integration tests (requires broader understanding of the project) • Features (once you get the big picture) • Repeat

Slide 36

Slide 36 text

LinuxFest Northwest 2016 Projects • Recreating previous projects you’ve done • Finding a project to do • Golang Github wiki • https://github. com/golang/go/wiki/Projects

Slide 37

Slide 37 text

LinuxFest Northwest 2016

Slide 38

Slide 38 text

LinuxFest Northwest 2016 Coding Challenges • These aren’t Go specific, but you have the option of using Go • https://www.hackerrank.com/ • https://www.codeeval.com/ • Starting up again soon are the monthly Go Challenges • http://golang-challenge.org

Slide 39

Slide 39 text

LinuxFest Northwest 2016 Communities

Slide 40

Slide 40 text

LinuxFest Northwest 2016 Communities • Coworkers/mentors • Communities at work • Gopher Slack • http://bit.ly/1zUTGKh • Go-nuts Google Group • https://groups.google.com/forum/#! forum/golang-nuts

Slide 41

Slide 41 text

LinuxFest Northwest 2016

Slide 42

Slide 42 text

LinuxFest Northwest 2016

Slide 43

Slide 43 text

LinuxFest Northwest 2016 Meetups/Organizations • Local Go Meetups (e.g. PDXGo) • http://http://www.meetup.com/ • For everyone • GoBridge • http://golangbridge.org/ • For underrepresented communities • Women Who Go • http://www.womenwhogo.org/ • For people identifying as women

Slide 44

Slide 44 text

LinuxFest Northwest 2016 Conferences

Slide 45

Slide 45 text

LinuxFest Northwest 2016 Conferences • The large scale version of meetups • More talks • More people • Many are Go-specific https://github. com/golang/go/wiki/Conferences

Slide 46

Slide 46 text

LinuxFest Northwest 2016 Conferences • GopherCon • https://www.gophercon.com/ • Videos https://www.youtube. com/channel/UCx9QVEApa5BKLw9r8c nOFEA/playlists • Slides https://github.com/gophercon/

Slide 47

Slide 47 text

LinuxFest Northwest 2016 Conferences • GopherCon India • http://www.gophercon.in/ • GopherCon Dubai • http://www.gophercon.ae/ • GopherCon China

Slide 48

Slide 48 text

LinuxFest Northwest 2016 Conferences • GolangUK • http://golanguk.com/ • dotGo • http://www.dotgo.eu/ • https://www.youtube. com/user/dotconferences/playlists

Slide 49

Slide 49 text

LinuxFest Northwest 2016 Conferences • GothamGo • http://gothamgo.com/ • And there are others too!

Slide 50

Slide 50 text

LinuxFest Northwest 2016 Image Credits • Gopher on horse: • GopherAcademy, LLC • All Gopher images are from or based on: • Go mascot designed by Renée French and copyrighted under the Creative Commons Attribution 3.0 • XKCD

Slide 51

Slide 51 text

LinuxFest Northwest 2016 Thanks! @tiffanyfayj

Slide 52

Slide 52 text

Thank you! Evaluate this session Session videos will be posted to the LinuxFest Northwest YouTube channel. http://lfnw.org/node/4017