Twee mannen en twee vrouwen volgen een training bij Startel.
Klassikale / virtuele training

Introduction to Go Programming (English)

  • Start gegarandeerd
  • Beginner
  • 4 dagen
  • Engels

The Go Programming Introduction course is designed to teach developers the essentials of one of today’s most powerful and efficient programming languages. From fundamental concepts to advanced patterns for building large-scale applications, this course equips you with the skills to write clean, high-performance code. Whether you are an experienced developer expanding your expertise or a beginner building a strong foundation, Go provides the perfect balance between speed and simplicity.

9.2
  • Ervaren en gecertificeerde trainers
  • Meer dan 25 jaar ervaring in opleiden

Develop your Go programming skills

This Go programming course includes hands-on assignments, comprehensible theory and professional guidance. This will enable you to put the knowledge and skills you have acquired into practice.

About the Go Programming Introduction course

This course is entirely in English.

This Go Programming Introduction course, updated to Edition 2024 (1.25) is a course designed for developers eager to explore the Go programming language, from its fundamental building blocks to advanced patterns for large-scale applications. Whether you're a seasoned programmer looking to add Go to your skillset or a newer developer aiming to build a solid foundation in a modern, high-performance language, this course will guide you through all you need to know to get started with Go.

Go is a programming language that stands out from the crowd by providing means to improve on both program performance as well as developer productivity. It has it's roots in the Google and is the defacto language to go to for creating Cloud Native coding.

Who is this Go Programming course for?

This course is suitable for:

  • Software developers who want to learn Go to build efficient, scalable applications.
  • Backend engineers seeking an introduction to a language designed for speed, simplicity and powerful concurrency.
  • Systems and DevOps engineers who want to leverage Go for tooling, scripting, or infrastructure management.
  • Students and new programmers who are ready to expand their programming expertise with a language tailored for today’s development needs.

Course objectives for this Go course

What You Will Learn:

  • Master Go Fundamentals
    • Begin with core concepts such as datatypes, control structures, and functions, which lay the groundwork for writing efficient, reliable Go code. Emphasis is on writing Idiomatic Go.
  • Explore Data Structures and Concurrency
    • Gain hands-on experience with Go’s unique data structures, such as slices, maps, and structs, and delve into Go’s powerful concurrency model using goroutines and channels.
  • Learn Advanced Project Patterns and Architectures
    • As you progress, you’ll discover how to organize large Go projects, follow test-driven development (TDD) practices, implement dependencyinjection, and apply advanced design patterns like hexagonal architecture.
  • Interoperate with Other Languages
    • Learn to bridge Go with languages like C, expanding Go’s utility in multi-language environments and  enhancing your ability to integrate Go with legacy code or external libraries.
  • Expand into New Frontiers with WebAssembly (WASM)
    • Understand how to compile Go code to WebAssembly, enabling you to run Go applications in web environments and explore exciting new possibilities with Go-WASM interoperability.

By the end of the course, you will be equipped with the skills to confidently write, structure, and optimize Go applications, making you proficient in a language known for its simplicity, efficiency, and versatility in developing modern software solutions.

Recommended prerequisites

Prior experience in other programming languages like Python, Javascript, C, C++ or Java is considered helpful.

The course will provide foundational knowledge and gradually introduce more advanced topics, ensuring accessibility for beginners and depth for more experienced programmers.

Course Outline Introduction to Go Programming

Day 1: Fundamentals of Go Programming

Part 1: Course Overview & Go Basics

  • Introduction to the course and objectives.
  • Overview of Go language and its philosophy.
  • Setting up the Go environment (installation and configuration).
  • Choosing and installing development tools.
  • Introduction to Go packages.

Part 2: First Steps in Go

  • Writing your first Go program.
  • Understanding Go’s building blocks.
  • Reserved keywords and naming conventions.
  • Exploring the Go standard library.
  • Variables and constants (declaration, lifetime, and scope).
  • Understanding pointers in Go.

Part 3: Basic Data Types and Constants

  • Overview of Go’s basic data types.
  • Handling numbers, strings, and booleans.
  • UTF-8 and Go’s foundation in Unicode.
  • Working with strings in Go.
  • Introduction to the iota constant generator.

Part 4: Working with Collections

  • Understanding complex data types in Go.
  • Arrays and slices: creation and manipulation.
  • Maps: key-value storage in Go.

Part 5: Structs in Go

  • Understanding structs and their usage.
  • Literal structs and handling data with structs.
  • Struct embedding for composition.
  • Working with anonymous fields in structs.

Part 6: Functions in Go

  • Declaring and calling functions.
  • Using variadic and recursive functions.
  • Understanding function objects and anonymous functions.
  • Working with deferred functions for cleanup.

Day 2: Packages, Modules, and Error Handling

Part 1: Packages and Code Organization

  • Understanding packages in Go.
  • Types of packages and their usage.

Part 2: Modules in Go

  • Introduction to Go modules and their history.
  • Semantic versioning principles.
  • Creating and managing your own modules.

Part 3: Testing, benchmarking and profiling in Go

  • Testing in Go.
  • Benchmarking in Go.
  • Profiling in Go.
  • Profile Guided Optimization.

Part 4: Error Handling

  • Effective error handling in Go.
  • Using panic and recover.
  • Error handling patterns and best practices.

Day 3: OOP, Generics and GO Standard Library

Part 1: Object-Oriented Programming in Go

  • Introduction to Object-Oriented principles in Go.
  • Go’s approach to OOP and what it lacks.
  • Structs and pointer receivers as alternatives.
  • Data hiding and encapsulation.

Part 2: Interfaces and Contracts

  • Creating and using interfaces to enforce contracts.
  • Interface satisfaction and type assertions.
  • Using interface switches for flexible code.

Part 3: Generics in Go

  • Concept of Generics.
  • Using Generics in the std. library.

Part 4: I/O and Networking

  • File operations and file handling in Go.
  • JSON serialization and marshalling.
  • Building an HTTP server in Go.
  • Introduction to building RESTful APIs.

Part 5: Templating in Go

  • Working with Go templating for dynamic content.

Part 6: Defensive programming in Go

  • What to look out for while programming in Go.
  • How to enforce security.

Day 4: Advanced Topics in Go

Part 1: Iterators in Go

  • Concept of Iterators.
  • Iterators in the Go std. library.
  • Writing your own Iterator.
  • Testing Iterators.

Part 2: Concurrency in Go

  • Introduction to concurrency concepts.
  • Using goroutines, waitgroups, and channels.
  • Buffered vs. unbuffered channels.
  • Working with multiple channels and managing data flow.
  • Using mutexes and atomic operations for critical sections.
  • Patterns and best practices for concurrency.

Part 3: Test-Driven Development (TDD) in Go

  • Introduction to TDD principles and practices.
  • Writing tests with Go’s testing package.
  • Structuring test suites and testing for edge cases.
  • Using table-driven tests in Go.

Part 4: Dependency Injection and Design Patterns

  • Introduction to dependency injection concepts.
  • Implementing dependency injection in Go.
  • Common design patterns for Go, including singleton, factory, and adapter.
  • Organizing projects for scalability and maintainability.

Part 5: Organizing a Go Project

  • Structuring a large-scale Go project: packages, modules, and folder structure.
  • Hexagonal architecture (Ports and Adapters).
  • Managing dependencies with Go modules and vendoring.
  • Code review and refactoring best practices.

Part 6: Using GO in containers

  • Using KO.
  • Setting up a KO project.
  • GO and CI/CD.

Part 7: Introduction to WebAssembly

  • Overview of WebAssembly and its use cases.
  • Why use WebAssembly with Go.
  • Compiling Go to WebAssembly (WASM).
  • Interacting with JavaScript from WebAssembly Go code.
  • Setting up and testing a basic Go-WASM application in a web environment.

Beschikbare opties voor de Go Programming training

  • Klassikaal / virtueel

    € 2995 excl. BTW

  • Incompany

    Prijs op maat

Start gegarandeerd

Trainingen met ‘start gegarandeerd’ gaan altijd door op de geplande datum.

Momenteel geen startgarantie?
Neem contact met ons op

Kies voor groei, net als deze organisaties

Ervaringen van onze deelnemers

  • Foto van klant (Gerrit Meijering) die aan zijn werkplek zit.

    Startel heeft altijd een passend aanbod op onze vraag.

    Startel ken ik al heel lang. Toen zij nog op hun vorige locatie in Roden zaten, en ik nog bij mijn vorige werkgever werkte, volgde ik al cursussen en trainingen bij ze.
    Gerrit Meijering
    Lees gehele testimonial
  • Sten Numan aan het bellen in het Yelgo kantoor.

    Door onze samenwerking met Startel kunnen we onze mensen helpen om continu te groeien.

    Door onze samenwerking met Startel kunnen we onze mensen helpen om continu te groeien.
    Sten Numan
    Lees gehele testimonial
  • Foto van klant (Jons van der Heul) die aan het werk is.

    Startel bood me de springplank naar een nieuwe carrière.

    Startel heeft veel trainingen om uit te kiezen en tussen sommige zit best wat overlap. In overleg met mij hebben ze een basispakket op maat voor me samengesteld bestaande uit drie cursussen.
    Jons van der Heul
    Lees gehele testimonial
  • Foto van klant (Alex Tabak) die aan het typen is.

    De manier waarop Startel opleidt, geeft veel vertrouwen.

    Maar er zijn ook mensen die bijscholing nodig hebben. Zoals de man die ooit systeembeheerder was bij een grote universiteit en die de afgelopen tien jaar door omstandigheden thuis heeft gezeten.
    Alex Tabak
    Lees gehele testimonial
  • Foto van klant (Edwin Schoonbeek) die een boek leest.

    Je merkt aan alles dat Startel geen statisch bedrijf is

    De droom is om Cyber Security Officer (CSO) te worden. Met deze opleidingen ontdek ik of dit beroep echt bij me past. Het fascineert me om de veiligheid in een bedrijf te waarborgen, vooral omdat we steeds meer te maken krijgen met digitale uitdagingen.
    Edwin Schoonbeek
    Lees gehele testimonial
Bekijk alle testimonials

Terugbelverzoek

Vul hieronder jouw gegevens in, zodat wij telefonisch contact met je kunnen opnemen.

Terugbelverzoek
Vul hieronder jouw gegevens in, zodat wij telefonisch contact met je kunnen opnemen.
Vul hieronder aanvullende informatie in over jouw vraag, zodat wij jou zo goed mogelijk kunnen helpen.
Wij zijn dé IT-opleider van het noorden
  • Train bij ons in Drachten of op jouw eigenlocatie.
  • Klanten geven ons een 9.2
  • Erkende trainers.
  • Ontvang een certificaat na deelname!
Fredou Nieuwenhuis wijst met een pijl naar rechts.
x

Offerte incompany

Vul hier al je gegevens in waarvoor je een offerte wilt ontvangen.

"*" geeft vereiste velden aan

(Incompany) offerte aanvragen
Vul hier al je gegevens in waarvoor je een offerte wilt ontvangen.
Vul hier jouw naam in*
Vermeld eventuele specifieke wensen en het aantal deelnemers.
Wij zijn dé IT-opleider van het noorden
  • Train bij ons in Drachten of op jouw eigen locatie.
  • Klanten geven ons een 9.2
  • Erkende trainers.
  • Ontvang een certificaat na deelname!

Kom je er niet uit?
Laat ons je helpen!

Contact opnemen

Pieter Fokkema op de foto.
x

Download Brochure

"*" geeft vereiste velden aan

Brochure downloaden
Vul hier al je gegevens in om de brochure te downloaden.
Wij zijn dé IT-opleider van het noorden
  • Train bij ons in Drachten of op jouw eigen locatie.
  • Klanten geven ons een 9.2
  • Erkende trainers.
  • Ontvang een certificaat na deelname!

Kom je er niet uit?
Laat ons je helpen!

Contact opnemen

Pieter Fokkema op de foto.
x