Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LFNW2016

 LFNW2016

How to Raise a Gopher in Record Time

tiffany jernigan

April 23, 2016
Tweet

More Decks by tiffany jernigan

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. LinuxFest Northwest 2016 Outline • Where to Begin? • More

    Websites • Tools • Training • Coding Practice • Communities • Conferences
  5. LinuxFest Northwest 2016 Where to Begin? • Tour of Go

    • https://tour.golang.org • Available in many languages • Available offline • Basics through concurrency • Examples • Exercises
  6. 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
  7. LinuxFest Northwest 2016 Where to Begin? • Source code •

    https://golang.org/src • https://github.com/golang/go
  8. LinuxFest Northwest 2016 Code Examples • Go by Example •

    https://gobyexample.com/ • Has code as well as explanations and output • Shows more general concepts
  9. 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
  10. LinuxFest Northwest 2016 Blogs • Official Golang blog • https://blog.golang.org/

    • Written by Googlers who work on Go • Detailed descriptions of every big release
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. LinuxFest Northwest 2016 Tools • Gofmt • https://golang.org/cmd/gofmt/ • Formats

    your code to the Go standard format • I have format on save set
  17. LinuxFest Northwest 2016 Tools • Autocomplete • https://github.com/nsf/gocode • Start

    typing and it will show options • Very helpful for learning
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. LinuxFest Northwest 2016 Conferences • GopherCon • https://www.gophercon.com/ • Videos

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

    GopherCon Dubai • http://www.gophercon.ae/ • GopherCon China
  27. LinuxFest Northwest 2016 Conferences • GolangUK • http://golanguk.com/ • dotGo

    • http://www.dotgo.eu/ • https://www.youtube. com/user/dotconferences/playlists
  28. 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
  29. Thank you! Evaluate this session Session videos will be posted

    to the LinuxFest Northwest YouTube channel. http://lfnw.org/node/4017