Go Programmeren
Lesgeld
Cursus Go Programmeren
In de cursus Go Programmeren leer je de basisprincipes van de Go-programmeertaal. De cursus begint met een bespreking van de syntax van Go, inclusief data types, type inference, arrays, control flow en operators. Ook het verschil tussen rvalues en lvalues wordt behandeld, evenals het belang van immutable data.
Functions en Closures
Vervolgens wordt ingegaan op functions en parameter passing in Go. Het onderscheid tussen call by value en call by
Cursus Go Programmeren
In de cursus Go Programmeren leer je de basisprincipes van de Go-programmeertaal. De cursus begint met een bespreking van de syntax van Go, inclusief data types, type inference, arrays, control flow en operators. Ook het verschil tussen rvalues en lvalues wordt behandeld, evenals het belang van immutable data.
Functions en Closures
Vervolgens wordt ingegaan op functions en parameter passing in Go. Het onderscheid tussen call by value en call by reference wordt duidelijk uitgelegd. Daarnaast komen variadic functions, recursion en closures aan bod, die essentieel zijn voor het ontwikkelen van complexe applicaties in Go.
Pointers in Go
Daarna besteden we aandacht aan het gebruik van pointers in Go. We bespreken het verschil met pointers in C, pointer arithmetic, nil pointers en het concept van pointers tot pointers. Dit zijn belangrijke onderwerpen voor het begrijpen van geheugenbeheer in Go.
Klassen en Interfaces
Ook de implementatie van klassen in Go is een belangrijk onderdeel van de cursus. We behandelen de twee manieren waarop Go een alternatief biedt voor traditionele inheritance: embedding, dat kan worden gezien als een geautomatiseerde vorm van composition of delegation, en het gebruik van Go interfaces, die runtime polymorphism mogelijk maken.
Error Handling in Go
Daarnaast leer je de specifieke manier van error handling in Go, met het error en panic interface. We besteden ook aandacht aan het recover interface en de analyse van stack traces, wat cruciaal is voor het debuggen van Go-toepassingen.
Concurrency in Go
Tenslotte wordt de cursus afgesloten met een diepgaand kijkje in concurrency in Go. We bespreken Go routines, het verzenden en ontvangen van data met channels, worker pools en synchronisatie mechanismen. Dit zijn essentiële concepten voor het bouwen van efficiënte en schaalbare applicaties in Go.
Voor meer informatie over Go, bekijk de officiële Go-documentatie. Als je ook geïnteresseerd bent in andere programmeertalen, overweeg dan onze Cursus Carbon Programmeren.
Doelgroep Cursus Go Programmeren
De cursus Go Programmeren is bedoeld voor developers die willen leren programmeren in de de taal Go en de mogelijkheden ervan willen leren kennen.
Voorkennis training Go Programmeren
Om aan deze cursus deel te nemen is voorafgaande kennis van en ervaring met programmeren in een moderne programmeertaal zoals Java, C# of Python noodzakelijk.
Uitvoering cursus Go Programmeren
De theorie wordt behandeld aan de hand van presentaties. Illustratieve demo’s worden gebruikt om de behandelde concepten te verduidelijken. Er is voldoende gelegenheid om te oefenen en afwisseling van theorie en praktijk. De cursustijden zijn van 9.30 tot 16.30.
Certificering cursus Go Programmeren
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Go Programmeren.
Modules
Module 1 : Intro Go
- 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
Module 2 : Language Syntax
- 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
Module 3 : Operators and Control Flow
- 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
- 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
Module 5 : Arrays
- 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
Module 6 : Pointers
- 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
- 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
Module 8 : Error Handling
- 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
Module 9 : Concurrency
- 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