Share
Embed
Transcript
52 slides
-
LinuxFest Northwest 2016 How to Raise a Gopher in Record
Time Tiffany Jernigan @tiffanyfayj -
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 -
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 -
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 -
LinuxFest Northwest 2016 Outline • Where to Begin? • More
Websites • Tools • Training • Coding Practice • Communities • Conferences -
LinuxFest Northwest 2016 Where to Begin? • Tour of Go
• https://tour.golang.org • Available in many languages • Available offline • Basics through concurrency • Examples • Exercises -
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 -
LinuxFest Northwest 2016 Where to Begin? • Source code •
https://golang.org/src • https://github.com/golang/go -
LinuxFest Northwest 2016 Code Examples • Go by Example •
https://gobyexample.com/ • Has code as well as explanations and output • Shows more general concepts -
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 -
LinuxFest Northwest 2016 Blogs • Official Golang blog • https://blog.golang.org/
• Written by Googlers who work on Go • Detailed descriptions of every big release -
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 -
LinuxFest Northwest 2016 Blogs • Gopher Academy • https://blog.gopheracademy.com/ •
Written by several people -
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 -
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 -
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 -
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 -
LinuxFest Northwest 2016 Tools • Gofmt • https://golang.org/cmd/gofmt/ • Formats
your code to the Go standard format • I have format on save set -
LinuxFest Northwest 2016 Tools • Autocomplete • https://github.com/nsf/gocode • Start
typing and it will show options • Very helpful for learning -
LinuxFest Northwest 2016 Tools • Godef • https://github.com/rogpeppe/godef • Jumps
to where the code you’re looking at is defined -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
LinuxFest Northwest 2016 Conferences • GopherCon • https://www.gophercon.com/ • Videos
https://www.youtube. com/channel/UCx9QVEApa5BKLw9r8c nOFEA/playlists • Slides https://github.com/gophercon/ -
LinuxFest Northwest 2016 Conferences • GopherCon India • http://www.gophercon.in/ •
GopherCon Dubai • http://www.gophercon.ae/ • GopherCon China -
LinuxFest Northwest 2016 Conferences • GolangUK • http://golanguk.com/ • dotGo
• http://www.dotgo.eu/ • https://www.youtube. com/user/dotconferences/playlists -
LinuxFest Northwest 2016 Conferences • GothamGo • http://gothamgo.com/ • And
there are others too! -
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 -
Thank you! Evaluate this session Session videos will be posted
to the LinuxFest Northwest YouTube channel. http://lfnw.org/node/4017