fbpx

Course Go Programming

Region:
  • Content
  • Training
  • Modules
  • General
    General
  • Reviews
  • Certificate
  • Course Go Programming : Content

    In the course Go Programming participants learn to develop applications using the concise and efficient Go programming language. Go is syntactically similar to C, but with the added benefits of memory safety, garbage collection and structural typing. The concurrency mechanisms in Go are based on Communicating Sequential Processes (CSP) and Go programs can get the best out of multicore machines. Go is a fast statically typed and compiled language but feels like a dynamically typed and interpreted language.

    Go Intro

    The course starts with a discussion of Go's syntax with data types, type inference, arrays, control flow and operators. The difference between rvalues ​​and lvalues ​​is also covered and attention is paid to immutable data.

    Functions and Closures

    The functions and parameter passing in Go is treated. The distinction between call by value and call by reference is explained. Variadic functions, recursion and closures are also discussed.

    Pointers

    Then it's time to pay attention to the use of pointers in Go. The difference with pointers in C is explained as well as pointer arithmetic, nil pointers and pointers to pointers.

    Classes

    Classes in Go are also part of program. The course explains the two ways in which Go offers an alternative to traditional inheritance. The first is embedding and can be seen as an automated form of composition or delegation. The second is the use of Go interfaces, which provide runtime polymorphism.

    Error Handling

    Also the specific way of error handling in Go with the error and panic interface is discussed. In this respect attention is also paid to the recover interface and the analysis of stack traces.

    Concurrency

    Finally concurrency in Go with Go routines, sending and receiving with channels and worker pools and synchronization mechanisms are covered.

  • Course Go Programming : Training

    Audience Course Go Programming

    The course Go Programming is intended for developers who want to learn how to program in the Go language and who want to examine its capabilities.

    Prerequisites training Go Programming

    To participate in this course prior knowledge of and experience with programming in a modern programming language such as Java, C# or Python is necessary.

    Realization course Go Programming

    The theory is treated on the basis of presentations. Illustrative demos are used to clarify the concepts. There is ample opportunity to practice and theory and exercises are interchanged. The course times are from 9.30 to 16.30.

    Certification course Go Programming

    Participants receive an official certificate Go Programming after successful completion of the course.

    Course Go Programming
  • Course Go Programming : Modules

    Module 1 : Intro Go

    Module 2 : Language Syntax

    Module 3 : Operators and Control Flow

    Origins of Go
    Features of Go
    Compilation Model
    Type Inference
    Concurrency Support
    Go Routines
    Native Binaries
    Intentionally Exclusions
    Inheritance
    Operator Overloading
    Installing Go
    Comments
    Go Programs
    Identifiers
    Data Types
    Integers and Floats
    Strings and Booleans
    Derived Types
    Variable Declaration
    Static Type Declaration
    Type Inference
    lvalues and rvalues
    Constants
    String Literals
    UTF-8 Sequences
    Immutability
    Operator Types
    Miscellaneous Operators
    Operator Precedence
    if and else
    Nested if
    switch Statement
    select Statement
    for Loop
    Nested Loops
    Infinite Loops
    range Keyword
    break and continue
    goto Statement

    Module 4 : Functions

    Module 5 : Arrays

    Module 6 : Pointers

    Function Definition
    Function Declaration
    Calling Functions
    Local and Global Variables
    Parameters
    Return Values
    Call by Value and by Reference
    Functions as Values
    Function Closures
    Methods
    Variadic Functions
    Recursion
    Array Types
    Declaring Arrays
    Initializing Arrays
    Accessing Array Elements
    Multi Dimensional Arrays
    Passing Arrays
    Variables and Adresses
    Slices
    Nil Slice
    Subslicing
    len() and cap() Functions
    append() and copy() Functions
    Address Operator
    Pointer Type
    Accessing Pointers
    Pointer Arithmetic
    Comparison C Pointers
    Uage of Pointers
    Dereferencing Pointers
    Nil Pointers
    Array of Pointers
    Pointer to Pointer
    Pointers as Parameters
    Type Casting

    Module 7 : Data Structures

    Module 8 : Error Handling

    Module 9 : Concurrency

    User Defined Data Types
    type Statement
    struct Keyword
    Structure Definition
    Accessing Structure Members
    Passing Structures
    Pointers to Structures
    Object Oriented Programming
    Structs versus Classes
    Composition over Inheritance
    Polymorphism
    Maps, Keys and Values
    make() and delete() Function
    Interfaces
    Error is Type
    Error Interface
    Panic Interface
    Reasons for Panic
    Comparison to Exceptions
    Using Multiple Return Values
    Unrecoverable Error
    Programmer Error
    Defer Execution
    Recover Interface
    Runtime panics
    Goroutines
    Stack Trace
    Analyzing Stack Traces
    Concurrency versus Parallelism
    Goroutines versus Threads
    Multiplexing
    Channels
    Race Conditions and Deadlock
    Multiple Goroutines
    Declaring Channels
    Sending and Receiving with Channels
    Blocking by Default
    Unidirectional Channels
    Buffered Channels
    Worker Pools
    WaitGroup
    Select and Mutex
  • Course Go Programming : General

    Course Forms

    All our courses are classroom courses in which the students are guided through the material on the basis of an experienced trainer with in-depth material knowledge. Theory is always interspersed with exercises.

    Customization

    We also do custom classes and then adjust the course content to your wishes. On request we will also discuss your practical cases.

    Course times

    The course times are from 9.30 to 16.30. But we are flexible in this. Sometimes people have to bring children to the daycare and other times are more convenient for them. In good consultation we can then agree on different course times.

    Hardware

    We take care of the computers on which the course can be held. The software required for the course has already been installed on these computers. You do not have to bring a laptop to participate in the course. If you prefer to work on your own laptop, you can take it with you if you wish. The required software is then installed at the start of the course.

    Software

    Our courses are generally given with Open Source software such as Eclipse, IntelliJ, Tomcat, Pycharm, Anaconda and Netbeans. You will receive the digital course material to take home after the course.

    Lunch

    The course includes lunch that we use in a restaurant within walking distance of the course room.

    Locations

    The courses are planned at various places in the country. A course takes place at a location if at least 3 people register for that location. If there are registrations for different locations, the course will take place at our main location, Houten which is just below Utrecht. A course at our main location also takes place with 2 registrations and regularly with 1 registration. And we also do courses at the customer’s location if they appreciate that.

    Evaluations

    At the end of each course, participants are requested to evaluate the course in terms of course content, course material, trainer and location. The evaluation form can be found at https://www.klantenvertellen.nl/reviews/1039545/spiraltrain?lang=en. The evaluations of previous participants and previous courses can also be found there.

    Copyright

    The intellectual property rights of the published course content, also referred to as an information sheet, belong to SpiralTrain. It is not allowed to publish the course information, the information sheet, in written or digital form without the explicit permission of SpiralTrain. The course content is to be understood as the description of the course content in sentences as well as the division of the course into modules and topics in the modules.

  • Course Go Programming : Reviews

  • Course Go Programming : Certificate