The Perl and Raku Conference 2023 in Toronto
Attending this event?
Back To Schedule
Friday, July 14 • 9:00am - 5:00pm
Class: Introduction to Go (PAID)

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Go hits a nice sweet spot between ease of coding, speed of execution, and modern features such as type inferencing, concurrency, and a minimalist but useful OO system.

In this class, I’ll introduce you to Go basics including syntax, the type system, OO in Go, packages and package management, and concurrency.

This is a hands-on course. Each lecture section is followed by a hands-on exercise section where you put what you’ve just learned into practice. I will work with each student individually as needed to help you get the most from these exercises.

This class is aimed at anyone who wants to learn Go. You must have experience programming in at least one other language, but no assumptions are made about what language that is, nor are you expected to be familiar with Go.
Students are expected to bring a laptop with the most recent version of Go installed and an editor of their choice. You will also be expected to follow the instructions in the class’s git repository in order to obtain a copy of the class slides and exercises.

Here are what some past students of this class have said:
  • “Dave’s Intro to Go class got me up and running with Go quickly. The many exercises throughout the day helped the material sink in.” - John Thompson
  • “The class was engaging with a series of sections: learning a new concept, coding the concept and validating the code against pre-written tests.” - Anonymous Student
Class Outline
  • $GOPATH, Toolchain, and the Ecosystem
  • From Zero to Code
    • Basic variables, types, and scope
    • Functions
    • Naming
    • If statements
    • Imports
  • More Types
    • Strings, arrays, slices, and maps
    • Type conversion
    • Structs
    • Pointers
  • More Statements
    • Loops and switch
  • Error Handling
  • Unit Testing with “go test”
  • Types, Interfaces, and OO in Go
    • Methods, Constructors, and Accessors
    • Interfaces
    • Runtime type checking
    • Type assertion and type switch
  • Concurrency
    • Goroutines
    • Channels
    • sync.WaitGroup
  • Go Package Management
    • Importing packages
    • go get
    • dep
    • gopkg.in

avatar for Dave Rolsky

Dave Rolsky

Senior Software Engineer, MongoDB
Dave Rolsky begin his development career with Perl in 1999, and has created or contributed to dozens of Perl CPAN modules, including DateTime, Log::Dispatch, Moose, and more. More recently, he has also developed in Rust and Go.Way back when, he co-wrote Embedding Perl in HTML with... Read More →

Friday July 14, 2023 9:00am - 5:00pm EDT

Attendees (1)