Go for Java developers

Apply your Java experience to quick start your journey with the Go language


Since its creation in 2009, Go has quickly gained momentum as a lightweight, open source language for implementing mission critical business applications. In this training, you’ll apply your existing knowledge of Java to get a firm grasp of Go’s key concepts and language features.

Through hands-on exercises and examples, you’ll learn how to define variables and functions, use control structures and data types, and get a taste of more advanced topics like error handling and concurrency. By the end of the training, you can clearly identify the use cases that make Go shine and leverage the language to write your first programs.


4 hours

What you'll learn

  • How to create, structure, compile and run a Go program
  • Use the Go standard library to implement typical business functionality
  • How to implement maintainable code with packages, custom data types and formatting rules
  • Understand commonalities and differences between Java and Go, such as data types, error handling, resource cleanup and easy binary creation
  • Get a glimpse of Go’s concurrency capabilities


  • Working knowledge of Java language constructs and tooling
  • Familiarity with Java 8 lambdas is useful but not required


  • Go overview
    • The Go programming language
    • Why should you learn it?
    • Killer features and their use cases
  • General comparison between Java and Go
    • Commonalities & differences in a nutshell
    • What do you need to get started?
  • Getting started with a simple example
    • Creating a "Hello World" example in both languages
    • Compiling and running the program in Java and Go
    • Hands-on exercise: Writing and running a simple Go program
  • Go basics
    • The typical Go project structure
    • Declaring and importing packages
    • Defining and using variables
    • Understanding functions
    • Code formatting rules and comments
    • Hands-on exercise: Using variables and functions in a Go program
  • Using control structures
    • Using conditional statements
    • Iterating over a collection
    • Hands-on exercise: Implementing control flow with conditionals
  • Using simple data types
    • Declaring and using Boolean variables
    • Declaring and using Characters and Strings
    • Representing numeric types
    • Hands-on exercise: Using typical data types in Go program
  • Using collection data types
    • Arrays: working with fixed-sized collections
    • Using dynamically-sized views of arrays with slices
    • Representing key-value pairs with maps
    • Hands-on exercise: Iterating over different collection types
  • Defining custom types
    • User-defined types with structs
    • Implying behavior with interfaces
    • Inheritance, polymorphism and type inference
    • Hands-on exercise: Building custom data types
  • Error handling
    • Handling errors instead of throwing them
    • Handling critical errors
    • Hands-on exercise: Applying typical error handling usage patterns
  • Notable differences between Java and Go
    • Pointers and references
    • Generics
    • Concurrency
    • Closing resources
    • Garbage collection
  • Summary and Q&A

Ready? Let's talk!

We're here to help. If you'd like to learn more, get in touch with us.