Go for Experienced Programmers
23 January 2025
8:30am to 5:00pm
Venue to be confirmed.
Lunch and tea breaks will be provided.
|
Go for Experienced Programmers
Topic
You’re an experienced programmer looking to get up and running quickly with Go. You want the knowledge, tools, and techniques to write idiomatic, professional-grade Go using fun exercises that get you comfortable with the language and its ecosystem. This is the workshop you’re looking for.
This immersive and hands-on workshop equips you with the essential knowledge and practical experience to become a proficient Go developer. Throughout this intensive training, you’ll discover the core principles and advanced techniques that make Go a standout language for building robust and high-performance applications.
What a student is expected to learn
- Comprehensive Introduction: Gain a solid understanding of Go’s syntax, data types, control flow, and package management system.
- Go Tools: Get to know the tool chain for building, testing, benchmarking, and profiling your programs.
- Effective Error Handling: Discover Go’s approach to error handling and techniques for creating robust, failure-resistant code.
- Testing: Use the standard library package and other community favorites along with advanced techniques for testing.
- Benchmarking: Take advantage of built-in performance optimization tools.
- Generics: Understand how to leverage parametric polymorphism to remove boilerplate from your code.
- HTTP Servers and Clients: Learn how to write resilient servers and clients along with techniques such as throttling and backoff.
- Concurrency: Learn how to use goroutines, channels, and how thread synchronization works. Leverage techniques such as worker pools, semaphores, and pipelines to take full advantage of Go concurrency.
- Dependency Management: Go beyond the standard library to work with third-party packages securely. You’ll publish your own packages, learn to isolate your CI build from repository outages, and more.
- OpenTelemetry: Build observable Go applications by instrumenting them to emit traces and metrics.
Some of what you’ll work on during the workshop
- Build command line tooling
- Build a REST API with a Database
- Write a Highly-Concurrent Port Scanner
- Write a Load Balancer
- Build a URL Shortener and deploy with AWS Lambda and DynamoDB
- Work with Large Language Models (LLMs) in your projects
Prerequisites
Preparation
- Have a GitHub account
- Have an OpenAI account
- Have an AWS account and the awscli configured locally (the services we use will fit comfortably with the free tier AWS provides)
- Install Docker
- Have a functioning Go environment installed with Go 1.22 or later
- Use an editor/IDE with Go plugin installed
|